OOP
Introduzione alla OOP e HelloWorld.java
Idea di OOP
- OOP significa Object Oriented Programming
- Modo alternativo alla programmazione top-down "tradizionale"
- Definire nuovi TIPI di dati ( structure in C )
- scrivere delle classi -> istanziare oggetti
- Fondamentale la progettazione di classi
DIFFERENZA FONDAMENTALE
CLASSE
!=
OGGETTO
Classe: file che definisce come l'oggetto si deve comportare o il tipo
Oggetto: istanza di un particolare tipo di Classe
OOP - Esempio
Si vuole definire una classe che rappresenti le automobili.
- Definizione degli attributi di una classe
- se gli attributi appartengono logicamente alla stessa classe => CREARE UNA NUOVA CLASSE
- Definizione dei metodi della classe
NB: Attenzione particolare alla scelta dei nomi!
OOP - Esempio - Possibile Soluzione

NB: nuova classe motore
Nome della classe
costruttore
getter
setter
OOP - Esempio - Spiegazione

- Nome della classe -> nome del nuovo tipo di oggetto istanziato
- Lista degli attibuti della classe
- Metodo "speciale" chiamato Costruttore
- obbligatorio per ogni classe (spiegato meglio in seguito)
- Metodi Setter: usati per "settare" un valore ad uno o piu' attributi
- setMioAttributo( var : Tipo ) : void
- Metodi Getter: usati per accedere ad uno o piu attributi
- getMioAttributo() : Tipo
UML
- Unifided Modeling Language
- Usato per Progettare (Modeling) oggetti a livello concettuale
- Definisce
- Nome della classe
- Lista di attributi
- Lista di metodi
NB: UN PROGETTO COSTRUITO SECONDO OOP DEVE PARTIRE DALLA PROGETTAZIONE DEGLI OGGETTI COINVOLTI, MAI DAL CODICE
Regole Standard OOP
-
Incapsulamento (Information Hiding)
- metodi/attributi pubblici o privati
- in UML
- '+' = pubblico
- '-' = privato
- NB: nell'esempio precendete tutti gli attributi sono pubblici => viola l'information hiding
- Ereditarieta' (spiegato in seguito)
Ok... tante nozioni, ma come scrivo
praticamente un programma Java?
HelloWorld.java
/**
* Hi! Im a comment
*/
public class HelloWorld{
public static void main( String[] args ){
//Hi! Im an another comment!
System.out.println( "Hello World" );
}
}
- struttura standard per le classi
- NB: nome classe == nome file
- molte somiglianze con C
- metodo main
- println
- commenti
- parametri ( String[] )
Ends
andrea.ghz@gmail.com
andreaghizzoni.github.io
@_ghzz
OOP
By AndreaGhizzoni
OOP
First introduction to OOP and HelloWorld.java
- 572