Mentre lavoriamo in qualsiasi linguaggio di programmazione, creiamo molte variabili e funzioni nel codice. Queste funzioni e variabili possono essere di tipo definito dall'utente e alcune di esse sono integrate. Una funzione integrata di cui potresti aver sentito parlare è la funzione del costruttore. La funzione del costruttore è la stessa funzione del titolo del titolo di classe invocato dall'oggetto Classe automaticamente quando l'oggetto è stato creato. Viene generalmente utilizzato nel codice per inizializzare direttamente alcuni valori variabili. Il costruttore può essere di categoria predefinita senza parametri e può essere di categoria parametrizzata. All'interno di questa guida oggi, discuteremo dell'uso di entrambi questi tipi di costruttori all'interno dei nostri esempi di codice C# implementati su Ubuntu 20.04. Cominciamo con il lancio del terminale e aggiorna il sistema prima di eseguire qualsiasi cosa sulla shell tramite il pacchetto "APT".
Esempio # 01: costruttore predefinito
Iniziamo con la presentazione dell'utilizzo del costruttore predefinito all'interno del nuovo file in Ubuntu 20.04. Per questo, prova a utilizzare le istruzioni eterne "touch" di Ubuntu per generare un file che deve contenere il ".Estensione CS ”alla fine per la programmazione C#. Il file è stato generato correttamente nella nostra attuale directory di lavoro secondo l'elenco "LS".
Apri il tuo file dalla directory home utilizzando l'editor di testo per una visualizzazione di codice più accattivante e colorata come di seguito. Dobbiamo avviare questo codice con l'utilizzo dello spazio dei nomi del sistema, che è un must in quasi tutti i codici C# per le funzioni per scopi generali. Successivamente, abbiamo avviato un nome di classe "test" e inizializzato un costruttore pubblico "test ()" al suo interno per visualizzare alcuni messaggi di testo sullo schermo utilizzando la funzione WriteLine () dalla classe Console di "sistema" dello spazio dei nomi. Questo costruttore è il valore predefinito, quindi non contiene parametri. Abbiamo usato la funzione del driver principale () qui, che è un must in ogni programma. Utilizza lo stesso metodo WriteLine () per visualizzare un messaggio di visualizzazione diverso nella schermata Shell. Ora, devi capire che senza creare un oggetto di "test" di classe, non saremo in grado di eseguire il costruttore. Quindi, abbiamo usato il nome della classe per creare l'oggetto "OBJ", seguito dall'inizializzatore "nuovo" per gli oggetti. Quando eseguiamo questo programma, la console.L'istruzione di funzione WriteLine () verrà eseguita per prima. Quindi, la creazione di questo oggetto chiamerà la funzione del costruttore "test" per eseguire la console.Dichiarazione WriteLine ().
Tornando al terminale, abbiamo compilato il nostro programma C# con il compilatore "MCS" C# su Ubuntu 20.04. Il file "EXE" per questo file C# è stato generato sulla compilation secondo l'istruzione "LS". Abbiamo usato questo file "exe" per eseguire il codice compilato C# con MCS-Runtime. È stato visualizzato il messaggio String di funzione principale (), quindi il messaggio String del costruttore.
Esempio # 02: costruttore in un'altra classe
Abbiamo dimostrato l'implementazione di un costruttore all'interno della stessa classe in cui è stato creato l'oggetto della sua classe. Ora guarderemo il costruttore con l'oggetto della sua classe in un'altra classe. È necessario aprire lo stesso file C# per aggiornare il codice. Qui, abbiamo usato due classi, "test" e "nuovo".
La classe di test contiene il costruttore predefinito "test", mentre la nuova classe contiene una funzione driver principale () per questo programma. Abbiamo usato la funzione WriteLine () della Class Console per lo spazio dei nomi per visualizzare alcuni messaggi di testo sulla shell sull'esecuzione di Main () e la funzione "Test" del costruttore. Abbiamo creato un oggetto di classe "test" all'interno della funzione principale () della classe "nuovo".
Successivamente, abbiamo salvato questo codice e compilato. Dopo, abbiamo eseguito il suo file "EXE" sulla shell con il "mono-ruscello". La funzione principale () è stata eseguita e visualizzata il rispettivo messaggio. Successivamente, il costruttore della classe di test è stato chiamato usando l'oggetto e ha visualizzato il suo messaggio di stringa.
Esempio # 03: predefinito vs. Costruttore parametrizzato
Il costruttore parametrizzato può essere utilizzato per inizializzare le variabili con i valori passati dalla funzione principale () o dall'utente a tempo di esecuzione. All'interno di questo codice del programma, abbiamo creato un "test" a classe singola e dichiarato due variabili, i.e., variabile intero "età" e stringa variabile "nome". Dopo questo, abbiamo implementato il costruttore predefinito "test" di questa classe senza valori parametrici. Viene utilizzato solo per visualizzare alcuni messaggi sulla shell usando la funzione WriteLine (). Successivamente, abbiamo definito un costruttore parametrizzato "test", prendendo due valori dalla funzione principale () e inizializza le variabili "età" e "nome". Prima di ciò, ha anche visualizzato il semplice messaggio che il metodo "Impostazione dei valori tramite costruttore" utilizzando il metodo WriteLine (). La funzione "show ()" definita dall'utente sta semplicemente utilizzando le variabili "età" e "nome" nella sua istruzione WriteLine () per visualizzare i loro valori sulla shell. Nel suo metodo principale (), abbiamo visualizzato alcuni messaggi di testo e creato l'oggetto Classe. Abbiamo usato questo oggetto "OBJ" per chiamare la funzione "mostra" per visualizzare il messaggio. Questo programma sarà in grado di eseguire il costruttore parametrizzato? Passiamo alla parte dell'esecuzione per vedere cosa succede.
Dopo aver compilato il file di codice con MCS ed aver eseguito il file EXE con mono-r-r-r-r-r-. È stato visualizzato il messaggio String di funzione principale () e il costruttore predefinito è stato eseguito secondo la creazione dell'oggetto. La funzione show () è stata eseguita e visualizzata i valori null in cambio. Questo perché non abbiamo passato alcun valori al costruttore parametrizzato al momento della creazione di oggetti nella funzione principale ().
Risolviamo questo problema aggiornando di nuovo il nostro codice. Abbiamo assegnato direttamente un valore intero e stringa ai parametri del costruttore di "test" di classe durante la creazione di un oggetto "OBJ". Dopo questo, lo stesso oggetto è stato utilizzato per chiamare la funzione show () per visualizzare i valori.
Questa volta, la funzione principale () ha saltato l'esecuzione del costruttore predefinito ed ha eseguito il costruttore parametrizzato poiché i valori sono stati passati al costruttore al momento della creazione di oggetti. Questo è il motivo per cui i valori delle variabili "età" e "nome" sono stati visualizzati anche con il metodo show () usando lo stesso oggetto "obj" della classe "test".
Se si desidera eseguire entrambi i costruttori uno dopo l'altro, è necessario creare oggetti diversi. Quindi, abbiamo creato un oggetto "OBJ1" per la chiamata del costruttore predefinita e l'oggetto "OBJ2" per la chiamata del costruttore parametrizzato e il suo valore assegnato. Poiché abbiamo assegnato il valore al costruttore parametrizzato usando l'oggetto "obj2", dobbiamo usare lo stesso oggetto "obj2" per chiamare la funzione show () per visualizzare i valori. Altrimenti, non funzionerà.
Nella compilazione e nell'esecuzione del codice, il messaggio di funzione principale (), entrambi i messaggi del costruttore e la funzione show () sono stati eseguiti, come mostrato di seguito:
Conclusione
All'interno del paragrafo introduttivo dell'articolo, abbiamo discusso dell'uso dei costruttori nella programmazione insieme ai loro tipi. Abbiamo anche discusso di come una funzione di costruttore sia diversa dalle normali funzioni definite dall'utente o integrate come il metodo principale (). Abbiamo elaborato l'utilizzo dei costruttori predefiniti e parametrizzati attraverso i nostri esempi e spiegato chiaramente il loro confronto. Inoltre, abbiamo discusso dei modi semplici e diversi per chiamare entrambi i tipi di costruttori usando gli oggetti di classe.