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

Made with Slides.com