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:

Sezione Hosting per Drupal!

E' attualmente in sviluppo una sezione del sito interamente dedicata agli hosting per drupal, quindi hosting linux configurati e pensati appositamente per sfruttare al massimo delle risorse il nostro caro cms. La sezione sarà arricchita da classifiche, comparazioni e caratteristiche vincenti e non di ogni singolo provider e relativa offerta.
Blog: 

Drupal-Patch AuthorContact: Aggiungere campi al modulo di contatto dell'autore

L'Author Contact è un utilissimo modulo per Drupal che predispone un blocco con una form di contatto all'autore del nodo. Ecco rilasciata la patch per estendere i campi disponibili e renderlo un po simile a webform

Drupal: 

Come creare velocemente un business online

Molte persone mi chiedono quali sono le fasi necessarie per creare velocemente un business online. La risposta è sorprendentemente semplice. O meglio: semplice si ma il "velocemente" potrebbe non esser per tutti. Qualsiasi attività o lavoro online difficilmente riesce a portare le soddisfazioni volute in poco tempo. Ma questa appunto è una variabile che dipende per lo più dal tuo grado di conoscenze e passioni iniziali.

Internet Marketing: 

La moderna crittografia a chiave asimmetrica

Più di recente è stato proposto un approccio alternativo che risolve brillantemente i limiti della crittografia a chiave segreta. Esso si basa sull’uso non di una singola chiave, bensì di coppie di chiavi: ciascuna coppia è costituita da una chiave pubblica (Kp), normalmente utilizzata per cifrare, e da una chiave privata o segreta (Ks) normalmente utilizzata per decifrare. 

Risorse per sviluppo: 

Codici medioevali e il disco cifrante

Nel medioevo i cifrari sono soprattutto monografici: nomi e frasi convenzionali vengono sostituiti da simboli speciali. Un altro noto cifrario basato su un macchinario fu il disco cifrante dovuto al famoso architetto L.B.Alberti: il disco era composto di due cerchi cifranti concentrici, uno esterno fisso con 24 caselle contenenti 20 lettere latine maiuscole (inclusa la Z, con U=V ed escluse H J K W Y) ed i numeri 1 2 3 4 per il testo in chiaro; ed uno interno mobile, con le 24 lettere latine minuscole per il testo cifrato.

Risorse per sviluppo: