OOP in Java: Classi e Oggetti

 

In questa parte vedremo come vengono realizzati i concetti della OOP in Java.

Definire una classe

La definizione di una classe in Java avviene tramite la parola chiave class seguita dal nome della classe. Affinché una classe sia visibile ad altre classi e quindi istanziabile è necessario definirla public:
 
public class Prima
{
}
[adsense:block:adcontenuto]
 
N.B. In Java ogni classe deriva dalla classe base cosmica Object: quindi anche se non lo scriviamo esplicitamente, il compilatore si occupa di stabilire la relazione di ereditarietà fra la nostra classe e la classe Object! Le parentesi { e } individuano l’inzio e la fine della classe ed, in generale, un blocco di istruzioni.
È bene usare la lettera maiuscola iniziale per il nome della classe; inoltre il nome della classe deve essere lo stesso del nome del file fisico, cioé in questo caso avremmo Prima.java. Affinché una classe realizzi un ADT è necessario definire i dati e le operazioni.

Garantire l’incapsulamento: metodi pubblici e attributi privati

 

Come si è detto, uno dei princìpi della OOP è l’incapsulamento: quindi è necessario definire dati (membri nella terminologia Java) privati e le operazioni (detti anche metodi in Java) pubbliche.
Definiamo l’ADT Persona in Java; per adesso supponiamo che la persona abbia tre attributi nome, cognome, anni e due metodi creaPersona(...) e stampaDati(...):
 
[adsense:block:adcontenuto]
 
public class Persona
{
/* questo metodo inizializza gli attributi nome,
cognome ed anni
*/
public void creaPersona(String n,String c,int a)
{
nome = n;
cognome = c;
anni = a;
}
// questo metodo stampa gli attributi
public void stampaDati()
{
System.out.println("Nome: "+nome);
System.out.println("Cognome: "+cognome);
System.out.println("Età: "+anni);
}
// attributi
private String nome;
private String cognome;
private int anni;
}
 
Abbiamo definito quindi gli attributi private ed i metodi public: l’incapsulamento è garantito!
 
Riflettiamo un attimo sulla sintassi:
 
attributi: la dichiarazione di un attributo richiede il modificatore di accesso (usare sempre private!), il tipo dell’attributo (String, int, etc. che può essere sia un tipo primitivo che una classe - ed il nome dell’attibuto (anni, nome, etc.);
metodi: la dichiarazione di un metodo richiede invece: il modificatore di accesso (può essere sia public che private, in questo caso però il metodo non potrà essere invocato da un oggetto - è bene usarlo per “funzioni di servizio”), il tipo di ritorno che può essere: o un tipo primitivo o una classe o void: cioè il metodo non restituisce alcuna informazione.
 
Se il tipo di ritorno è diverso da void, deve essere usata l’istruzione return valore_da_restituire; come ultima istruzione del metodo; il valore_da_restituire deve avere un tipo in match col tipo di ritorno (devono essere gli stessi tipi). Segue quindi il nome del metodo e fra parentesi tonde si specificano gli argomenti (anche detti firma del metodo): anche essi avranno un tipo (primitivo o una classe) ed un nome; più argomenti vanno separati da una virgola. La lista degli argomenti può essere vuota.
 
Nel nostro caso gli argomenti passati al metodo creaPersona(...) servono per inizializzare gli attributi: con l’assegnamento nome = n; stiamo dicendo che all’attributo nome stiamo assegnandogli la variabile n. // viene usato per i commenti su una singola linea, mentre /* e */ vengono usati per scrivere commenti su più linee (il compilatore ignora i commenti).
 
Il metodo println(...) della classe System è usato per scrivere l’output a video e + serve per concatenare stringhe.
La classe, così come è stata definita, non serve ancora a molto: vogliamo creare oggetti che siano istanze di questa classe, sui quali possiamo invocare dei metodi.
 
L'articolo verrà continuato al più presto!

 

Risorse per sviluppo: 

Ti potrebbero anche interessare:

Cifrario basato su macchinario e cifrario di Atbash

Il primo esempio di cifratura basata su un ‘macchinario’ si può far risalire ad una testimonianza tra il 360 e il 390 dovuta ad Enea il tattico, generale della lega arcadica, in un trattato di cifre il cui XXI capitolo tratta appunto di messaggi segreti. In questo viene descritto un disco sulla zona esterna del quale erano contenuti 24 fori, ciascuno corrispondente ad una lettera dell'alfabeto.

Risorse per sviluppo: