Dopo aver sviluppato il classico "Hello world" la scorsa lezione, oggi entreremo nel dettaglio con un pò di concetti teorici, tratteremo le Classi.
La base dei linguaggi di programmazione orientati ad oggetti, chiamati Object-oriented programming (OOP), è appunto il concetto di Oggetto, ma che cos'è un oggetto? Un oggetto è un istanza della classe, quindi andiamo a vedere in dettaglio cos'è e come si usa una classe.

Classe Persona
{codecitation class="brush: c#; gutter: false;"}
public class Persona
{
string nome;
string cognome;
//Altre variabili...
public Persona(string Nome, string Cognome)
{
//Imposta le proprietà iniziali della classe. Il Costruttore
nome = Nome;
cognome = Cognome;
}
public void appoggio1()
{ }
private void appoggio2()
{ }
}
{/codecitation}
Una classe è identificata anche come "tipo di dato", infatti porta con se sia la rappresentazione dei dati, sia le operazioni sugli stessi, in realtà il concetto di classe è più vasto.
{codecitation class="brush: c#; gutter: false;"}
//Crea un oggetto p che è istanza della classe Persona
Persona p = new Persona("Mario", "Rossi");
{/codecitation}
Per ogni classe istanziata, viene creato un'oggetto ed è invocato un metodo detto costruttore della classe. Il costruttore, così come avviene in Java e in C++, ha lo stesso nome della classe e non restituisce alcun valore (nel nostro esempio il metodo public Persona). In VB .NET, invece, il costruttore è definito in un metodo dichiarato come Sub New.
Il costruttore è utilizzato per impostare le proprietà che la classe deve avere al momento della sua creazione: nel nostro esempio, quando si crea una istanza della classe Persona, le sue variabili nome e cognome assumono i valori specificati nel relativo argomento del costruttore.
I Metodi
I metodi di una classe possono essere definiti come public, private, protected: queste parole chiave vengono solitamente chiamate modificatori di accesso.
Con public, una routine diventa accessibile da tutte le istanze della classe.Private, invece, impedisce che la routine sia visibile al di fuori della classe di in cui è definita.
Se non si specifica il modificatore di accesso, private è il valore predefinito. Ad esempio, utilizzando ancora la nostra classe Persona:
{codecitation class="brush: c#; gutter: false;"}
Persona p = new Persona("Mario", "Rossi");
//Corretto, Appoggio1 è public
p.appoggio1();
//Errato, Appoggio2 è private, quindi non è accessibile
p.Appoggio2();
{/codecitation}
Dichiarando una metodo della classe Persona come protected, essa sarà visibile nell'ambito in cui definiamo le classi che ereditano da Persona ma non potrà essere utilizzata nel codice in cui istanziamo oggetti di questa classe. In pratica, protected equivale a private, con la differenza che il metodo è visibile anche alle classi che ereditano da quella principale.
Dopo il modificatore di accesso del metodo, nella dichiarazione è necessario specificare il tipo di dato restituito.
È possibile indicare un qualsiasi tipo di dato: int, string, byte, void (se non deve restituire nulla), ect. Si può specificare anche il nome di una classe, poiché, ricordiamo, una classe è un tipo.
Per restituire il valore, è necessario utilizzare la parola chiave return, seguita da una qualsiasi espressione che abbia lo stesso tipo del valore di ritorno del metodo. Tale istruzione causa anche l'uscita dal metodo. Ad esempio:
{codecitation class="brush: c#; gutter: false;"}
public int Somma(int a, int b)
{
int somma = a + b;
return somma;
//Eventuale codice scritto qui non verrà eseguito.
}
{/codecitation}
In C# un metodo che restituisce un valore deve obbligatoriamente contenere la parola chiave return, altrimenti visual studio vi avvertirà che qualcosa non và nel codice.
I metodi che non restituiscono un valore, come Appoggio1() e Appoggio2(), hanno tipo void e quindi la parola chiave return non serve.
La base dei linguaggi di programmazione orientati ad oggetti, chiamati Object-oriented programming (OOP), è appunto il concetto di Oggetto, ma che cos'è un oggetto? Un oggetto è un istanza della classe, quindi andiamo a vedere in dettaglio cos'è e come si usa una classe.

Il concetto di classe è alla base di ogni linguaggio di programmazione orientato agli oggetti ed ha la potenza di definire le caratteristiche di un insieme di oggetti che hanno proprietà e compiono azioni uguali. Rappresenta tutti gli oggetti che appartengono ad una certa classe, appunto.
Un'esempio, si pensi alle persone: ogni persona è diversa da un'altra ma tutte hanno un nome, un cognome, una data di nascita e così via. Questi elementi comuni le fanno rientrare in un unico concetto. Un'unica classe.
Nella pratica, una classe è una collezione di variabili, metodi e proprietà. Anche in questo caso, C# riprende la sintassi di Java dove per definire una classe si usa il costrutto Class.
{codecitation class="brush: c#; gutter: false;"}
public class Persona
{
string nome;
string cognome;
//Altre variabili...
public Persona(string Nome, string Cognome)
{
//Imposta le proprietà iniziali della classe. Il Costruttore
nome = Nome;
cognome = Cognome;
}
public void appoggio1()
{ }
private void appoggio2()
{ }
}
{/codecitation}
Una classe è identificata anche come "tipo di dato", infatti porta con se sia la rappresentazione dei dati, sia le operazioni sugli stessi, in realtà il concetto di classe è più vasto.
{codecitation class="brush: c#; gutter: false;"}
//Crea un oggetto p che è istanza della classe Persona
Persona p = new Persona("Mario", "Rossi");
{/codecitation}
Per ogni classe istanziata, viene creato un'oggetto ed è invocato un metodo detto costruttore della classe. Il costruttore, così come avviene in Java e in C++, ha lo stesso nome della classe e non restituisce alcun valore (nel nostro esempio il metodo public Persona). In VB .NET, invece, il costruttore è definito in un metodo dichiarato come Sub New.
Il costruttore è utilizzato per impostare le proprietà che la classe deve avere al momento della sua creazione: nel nostro esempio, quando si crea una istanza della classe Persona, le sue variabili nome e cognome assumono i valori specificati nel relativo argomento del costruttore.
I Metodi
I metodi di una classe possono essere definiti come public, private, protected: queste parole chiave vengono solitamente chiamate modificatori di accesso.
Con public, una routine diventa accessibile da tutte le istanze della classe.Private, invece, impedisce che la routine sia visibile al di fuori della classe di in cui è definita.
Se non si specifica il modificatore di accesso, private è il valore predefinito. Ad esempio, utilizzando ancora la nostra classe Persona:
{codecitation class="brush: c#; gutter: false;"}
Persona p = new Persona("Mario", "Rossi");
//Corretto, Appoggio1 è public
p.appoggio1();
//Errato, Appoggio2 è private, quindi non è accessibile
p.Appoggio2();
{/codecitation}
Dichiarando una metodo della classe Persona come protected, essa sarà visibile nell'ambito in cui definiamo le classi che ereditano da Persona ma non potrà essere utilizzata nel codice in cui istanziamo oggetti di questa classe. In pratica, protected equivale a private, con la differenza che il metodo è visibile anche alle classi che ereditano da quella principale.
Dopo il modificatore di accesso del metodo, nella dichiarazione è necessario specificare il tipo di dato restituito.
È possibile indicare un qualsiasi tipo di dato: int, string, byte, void (se non deve restituire nulla), ect. Si può specificare anche il nome di una classe, poiché, ricordiamo, una classe è un tipo.
Per restituire il valore, è necessario utilizzare la parola chiave return, seguita da una qualsiasi espressione che abbia lo stesso tipo del valore di ritorno del metodo. Tale istruzione causa anche l'uscita dal metodo. Ad esempio:
{codecitation class="brush: c#; gutter: false;"}
public int Somma(int a, int b)
{
int somma = a + b;
return somma;
//Eventuale codice scritto qui non verrà eseguito.
}
{/codecitation}
In C# un metodo che restituisce un valore deve obbligatoriamente contenere la parola chiave return, altrimenti visual studio vi avvertirà che qualcosa non và nel codice.
I metodi che non restituiscono un valore, come Appoggio1() e Appoggio2(), hanno tipo void e quindi la parola chiave return non serve.
0 commenti:
Posta un commento