GNU/Linux >> Linux Esercitazione >  >> Linux

Procedura:Introduzione alla programmazione – Programmazione orientata agli oggetti

Serie di istruzioni

Questa è la parte 5 di una serie di 5 parti per Introduzione alla programmazione

  1. Introduzione alla programmazione:per iniziare
  2. Introduzione alla programmazione:il tuo primo programma
  3. Introduzione alla programmazione:variabili, tipi e manipolazione dei dati
  4. Introduzione alla programmazione:controllo del flusso
  5. Introduzione alla programmazione:programmazione orientata agli oggetti

Ritorno per la lezione finale

E bello rivederti! Sono felice che tu sia tornato per questo articolo finale in questa serie di Introduzione alla programmazione su Atlantic.NET. Hai imparato molto finora e questo articolo non farà eccezione.

In questo articolo esploreremo l'orientamento agli oggetti, che è una metodologia di programmazione in cui crei oggetti che rappresentano le cose che desideri modellare e poi fai eseguire a tali oggetti varie attività.

Vuoi sapere la cosa migliore? L'hai già fatto. Ora devi solo capire cosa hai fatto e sarai a posto.

.

Oggetti casuali

Innanzitutto, ricorda che nell'articolo precedente, ho finito per darti due righe di codice che non ho ancora spiegato. Ecco ancora le due righe:

Random random = new Random(); // Object orientation stuff
int answer = random.Next(10) + 1; // Give me a random number less than 10 and add one

La prima riga è la più sconosciuta a noi a questo punto. Inizieremo con la nuova parola chiave, che è, beh, new . Cosa new fa è istanziare un oggetto. Istanziare significa creare un'istanza di qualcosa e, in questo caso, stiamo creando un'istanza di una classe chiamata Random() .

Quindi questa prima riga crea un nuovo oggetto da Random() class e quindi lo assegna a una variabile di tipo Random e il cui nome è casuale . È un sacco di casualità per un computer che non è affatto casuale! Questa ripartizione può essere d'aiuto se trovi questa spiegazione confusa.

Innanzitutto, hai il tipo di variabile. Finora abbiamo usato int e string tipi, quindi qui stiamo introducendo un nuovo tipo o, in realtà, un tipo di classe chiamato Random .
Secondo, abbiamo il nome della variabile. Quando si lavora con le variabili negli articoli precedenti, abbiamo usato nomi di variabili come input e valore . Nota che in questo caso stiamo usando un nome di variabile random (l'abbiamo messo in minuscolo per aiutarti a distinguerlo), anche se potrebbe essere quasi tutto ciò che ti piace, come numero oppure hey_there_human_can_you_get_me_a_cookie_please_kthxbye .
Terzo, e questa è letteralmente la parte nuova, è il modo in cui assegniamo un valore alla variabile. In articoli precedenti, l'abbiamo impostato sull'output di Console.ReadLine() metodo o un valore fisso come 8 o “Hello world!”. Ora stiamo usando un approccio leggermente diverso perché stiamo creando un nuovo oggetto con il new parola chiave.

.

Prima di passare alla riga successiva, facciamo una piccola revisione.
.

Una rassegna di classi, oggetti, proprietà e metodi

Nell'orientamento agli oggetti, i due concetti più importanti sono classi e oggetti. L'hai appreso brevemente nel secondo articolo di questa serie quando ho spiegato che puoi pensare alle classi come modelli e oggetti come ciò che crei da quei modelli, ad esempio una torta (oggetto) da una ricetta (classe).

Una classe, essendo il modello per gli oggetti, definisce quali saranno gli oggetti attraverso proprietà e metodi. Quando crei un oggetto usando il new parola chiave, ottieni un oggetto univoco che ha proprietà e metodi definiti dalla classe.

Ad esempio, potresti voler creare una nuova torta da una determinata ricetta. Così facendo, puoi dire di istanziare la ricetta e ottenere un oggetto torta. La torta è unica rispetto a tutte le altre torte realizzate con quella ricetta, quindi le modifiche apportate a una torta non influiscono sulle altre torte; mettere la glassa su una torta non mette la glassa su tutte le torte.

Le proprietà sono i valori che definiscono cos'è un oggetto. Potrebbe essere più semplice se si pensa a una proprietà come a una sorta di variabile collegata a un oggetto. Ad esempio, per un oggetto torta, il tipo di glassa o ripieno può essere una proprietà.

I metodi definiscono cosa può fare un oggetto. Ad esempio, un'auto può guidare. Non hai davvero bisogno di sapere come funziona un motore; puoi semplicemente dire all'auto di avviarsi e l'auto si occuperà di ciò che deve fare per far girare il motore e portarti sulla buona strada. Una delle cose belle dell'orientamento agli oggetti è che non ci interessa davvero il funzionamento alla base del metodo, né è necessario. Questo è il concetto di astrazione di cui abbiamo anche discusso in precedenza.

Poiché abbiamo già discusso delle torte, possiamo immaginare metodi per la torta come AddFilling e WrapInPaper ciò aggiungerebbe o regolerebbe la proprietà di riempimento o designerebbe una torta come avvolta nella carta, ad esempio.

.

Spesso puoi riconoscere che hai a che fare con oggetti e classi dall'uso di punti o "punti". Ad esempio, nell'output del nostro programma, utilizziamo Console.ReadLine() (definito "Console dot ReadLine"). La prima parte prima del punto determina la classe o l'oggetto e la seconda parte dopo il punto determina le proprietà oi metodi che desideriamo invocare.

Come si fa a distinguere tra proprietà e metodi? Il più delle volte, i metodi avranno parentesi mentre le proprietà no. Puoi dire, ad esempio, che il comando Console.ReadLine() chiede alla Console classe o oggetto per invocare il ReadLine() metodo perché "ReadLine" è seguito da parentesi.

Per le proprietà, scoprirai che interagisci con esse più o meno allo stesso modo in cui fai con le normali variabili. Puoi eseguire operazioni matematiche, assegnare valori, leggere valori e così via, proprio come con int e string variabili. Infatti, se volessi cambiare un po' il nostro codice di gioco, potresti impostare le proprietà dei colori di primo piano e di sfondo della console come tali:

Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;

L'aggiunta di queste istruzioni farà sì che il testo venga scritto in bianco su sfondo blu la prossima volta che emetti qualcosa nel programma, come mostrato nella Figura 1 di seguito.

Figura 1:testo della console bianco su blu

Avresti potuto aspettarti che l'intera finestra fosse blu, giusto? Otteniamo solo le linee di output blu perché non abbiamo detto alla console di eliminare lo sfondo nero già presente. Possiamo realizzare questa modifica chiamando Clear() metodo sulla console:

Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.Clear();

Con questa aggiunta, otteniamo qualcosa sulla falsariga della Figura 2 di seguito.

Figura 2:finestra della console blu

In questo esempio, usi l'orientamento agli oggetti prima per assegnare valori alle proprietà sulla console e poi per chiedere alla console di fare qualcosa. Questo modello è comune nell'orientamento degli oggetti.

C'è un'altra cosa riguardo ai metodi che devi imparare ed è l'uso dei parametri . Fortunatamente, hai già utilizzato un parametro durante la scrittura di testo sulla console utilizzando WriteLine() metodo.

I parametri consentono di configurare la modalità di esecuzione di un metodo. Ad esempio, quando vuoi che la console scriva qualcosa, devi dirle cosa scrivere. Puoi farlo inserendo uno o più parametri tra parentesi dopo il nome del metodo.

Console.WriteLine(“this is a parameter”);

Finora, abbiamo utilizzato solo testo fisso per produrre qualcosa, ma possiamo anche passare variabili, proprietà o persino interi oggetti nei metodi. Ad esempio, il WriteLine() metodo, può ricevere un int variabile da passare alla console mostra il valore di quella variabile.

int i = 99;
Console.WriteLine(i);

Esattamente ciò che puoi fare con le varie classi e oggetti varia notevolmente. È necessario fare riferimento alla documentazione dell'API per ulteriori riferimenti su quali sono le capacità dei diversi oggetti. Alcuni strumenti di sviluppo, come Visual Studio, possono anche aiutarti enormemente suggerendo valori in base a ciò che vogliono i metodi o suggerendo proprietà e metodi disponibili quando inizi a digitare un oggetto o il nome di una classe.

In Visual Studio, ad esempio, puoi vedere tutte le proprietà della console digitando Console e "punto". Attendi una frazione di secondo e dovresti vedere un elenco di proprietà e metodi e persino la documentazione relativa a ciò che fanno le varie proprietà e metodi, come mostrato nella Figura 3 di seguito.

Figura 3:prompt di Visual Studio Intellisense

In Visual Studio, questa funzionalità è denominata IntelliSense e, se esegui lo sviluppo in Visual Studio, sarà una delle funzionalità più utili che puoi usare. Anche altri strumenti di sviluppo offrono funzionalità simili.

Infine, esiste un tipo speciale di metodo nell'orientamento agli oggetti chiamato costruttore . Un costruttore è un metodo chiamato quando crei un oggetto con new parola chiave. Questo metodo ti consente di eseguire attività come l'inizializzazione dei valori per l'oggetto ed è sempre il primo metodo chiamato in una durata di vita di un oggetto.

.

Torna al nostro gioco di indovinelli

Quando scriviamo Random random = new Random(); il Random() parte è il costruttore. Come altri metodi, può accettare parametri, che il metodo può quindi utilizzare per inizializzare le proprietà dell'oggetto.

Ora possiamo riportarlo alla seconda riga che abbiamo aggiunto per creare l'intero casuale per il nostro gioco.

int answer = random.Next(10) + 1;

Potresti aver notato che quando hai iniziato a digitare il testo (a meno che tu non lo abbia semplicemente copiato, anche questo va bene; dai un'occhiata alla Figura 4), IntelliSense di Visual Studio è apparso e ti ha detto cosa è il Next() metodo fa, come mostrato di seguito.

Figura 4. Casuale.Next()

Questo suggerimento ti dice che Random.Next() il metodo richiede un parametro di tipo int con un valore massimo di “maxValue”. Nota che il nome indicato non è un tipo ma più un descrittore:non è necessario chiamare i valori interi "maxValue".

Successivamente, impariamo che quando chiamiamo quel metodo con un int parametro, il metodo ci restituirà un intero casuale non negativo. Nel nostro gioco, lo assegniamo in un nome variabile di risposta quindi possiamo farvi riferimento in seguito.

Tuttavia, la documentazione afferma che il valore restituito è minore di il massimo. Quindi, quando passiamo a 10, otteniamo un valore inferiore a quello, quindi può essere solo fino a 9. Inoltre, il numero restituito da Next() non è negativo, quindi significa che può essere 0 e abbiamo bisogno di un numero compreso tra 1 e 10 inclusi.

Cosa otteniamo, in altre parole, quando chiamiamo random.Next(10) è un numero compreso tra 0 e 9. Aggiungendo 1 a quel numero, diventerà un numero compreso tra 1 e 10 prima di assegnarlo alla risposta .

Se ora rivisitiamo queste due righe, dovrebbe avere più senso quello che succede:

Random random = new Random();  
int answer = random.Next(10) + 1; 

Per prima cosa, creiamo un nuovo oggetto basato su Random classe, che chiamiamo casuale . Quindi, chiediamo che casuale invoca il suo Next() metodo e passare il valore 10 in quel metodo. Quindi, quando quel metodo è stato eseguito, aggiungiamo 1 al risultato, quindi memorizziamo il valore in un int chiamato risposta .

Questo è tutto! Hai finito! Ora, ogni volta che esegui questo programma, il tuo utente dovrà indovinare un valore casuale che hai indicato al computer di generare.

.

Guarda quanto sei arrivato lontano

Hai costruito e compreso, si spera, tutti gli aspetti di un semplice gioco per console. Durante questa serie, hai imparato molti aspetti della programmazione, da come vengono eseguiti i programmi, come creare applicazioni, come scrivi il codice, quale codice scrivere, variabili, loop, rami, oggetti, classi.

Quello che dovresti sapere, tuttavia, è che ciò che hai imparato ora è semplicemente il fondamento di ciò che devi sapere come programmatore. Sia che tu voglia iniziare un percorso come sviluppatore o che tu voglia semplicemente imparare abbastanza per impressionare i tuoi amici, le lezioni in questi articoli dovrebbero essere un buon punto di partenza.

Spero che questa serie vi sia piaciuta e se siete interessati ad esplorarne di più. Assicurati di controllare anche gli altri articoli della comunità Atlantic. Ovunque questa serie ti porti da qui, goditi la tua programmazione! Assicurati di controllare le soluzioni di hosting VPS leader di mercato di Atlantic.Net.

Serie di istruzioni

Questa è la parte 5 di una serie di 5 parti per Introduzione alla programmazione

  1. Introduzione alla programmazione:per iniziare
  2. Introduzione alla programmazione:il tuo primo programma
  3. Introduzione alla programmazione:variabili, tipi e manipolazione dei dati
  4. Introduzione alla programmazione:controllo del flusso
  5. Introduzione alla programmazione:programmazione orientata agli oggetti

Linux
  1. Linguaggio di programmazione C - Introduzione

  2. Come iniziare a imparare un linguaggio di programmazione

  3. Come generare una password casuale in Linux usando /dev/random

  4. Come installare il linguaggio di programmazione R su Fedora 35

  5. Procedura:programmazione socket in Python

Procedura:Introduzione alla programmazione:variabili, tipi e manipolazione dei dati

Procedura:Programmazione orientata agli oggetti - Costruttori ed ereditarietà

Come installare il linguaggio di programmazione Go su Ubuntu 20.04

Come installare il linguaggio di programmazione Rust su AlmaLinux 8

Come installare il linguaggio di programmazione Rust su Linux

Come installare GoLang (Go Programming Language) su Linux