Precedente Progr. Distribuita Successiva

3: Programmazione OO (1)

[Slide]
 [Schema]
 [Riferimenti]
 [Link]
[Auto-verifica]

[Inizio pagina]

Slides:


[Inizio pagina]

Schema della lezione:

Obiettivo: Presentare i principi della programmazione orientata ad oggetti ed alcuni esempi di programmazione in Java

  •  Programmazione orientata ad oggetti
  •  Unified Modeling Language
  •  Alcune semplici classi (Date e Gregorian Calendar)
  •  Creazione di nuove classi
  •  Campi e metodi statici
  •  Parametri dei metodi
  •  Costruzione di oggetti ed inizializzazione

[Inizio pagina]

Materiale bibliografico:

  • Horstmann,

    Cap. 4 (fino a paragrafo 6 incluso)

    • Alcuni errori (di traduzione) rilevati sul libro:
      • Pag. 119 (rigo 5): "strutture dati" invece di "strutture di dati".
      • Pag. 123 (Nota, ultima frase): "Il programma può essere scaricato da ...". Aggiungo anche che il programma a cui si riferisce la Nota non è shareware ma è una versione try-and-buy (che quindi scade dopo un qualche tempo).
      • Pag. 131 (secondo rigo): "il numero di millisecondi sia positivi che negativi" dovrebbe essere "il numero sia positivo che negativo di millisecondi" (i millisecondi non sono negativi o positivi, il numero lo è).
      • Pag. 134 (esempio di codice a centro pagina, preceduto dal paragrafo "Per contro, per sapere..."). Il secondo rigo di codice deve essere "calendar.setTime(hireDay)" e non "Calendar.setTime(hireDay)"
      • Pag. 140 (rigo 9 cioè l'ultimo rigo del programma): la linea di codice, invece di "private Day hireDay;" deve essere "private Date hireDay;".
      •  Pag. 159 (inizio del primo rigo del paragrafo 4.5): il termine "scienza informatica" (o più avanti nel paragrafo "scienze informatiche") sarebbe "informatica" (che in americano si dice "computer science").
      • L'esempio a pag. 152 va bene compreso: la variabile istanza nextId risulta private e quindi non modificabile dall'esterno. Questo è corretto perché deve essere modificata solamente tramite setId(). Penso che quello che intende quando parla di "Employee.nextId" è che di fatto il metodo setId() accede alla variabile statica. 

[Inizio pagina]

Altri link interessanti:

  • Unified Modeling Language (UML):

[Inizio pagina]

Domande per la auto-verifica della comprensione degli argomenti

Le domande più difficili vengono indicate con (*)
  •  Quali sono gli obiettivi della programmazione ad oggetti?
  •  Quali sono i principi della programmazione ad oggetti ed in che maniera permettono di ottenere gli obiettivi succitati?
  •  Perché si usa il diagramma delle classi UML?
  •  Quali sono le relazioni (presentate) tra classi in UML?
  •  Quali caratteristiche della programmazione orientata ad oggetti possono essere "simulate" da un linguaggio procedurale e quali (invece) sono non ottenibili?
  •  Quale è la differenza fondamentale tra la classe Date e la classe GregorianCalendar? Perché rappresentano un buon esempio di progettazione orientata ad oggetti?
  •  In che maniera il modificatore di accesso private aiuta il programmatore a rispettare alcuni principi di programmazione orientata ad oggetti?
  •  Quali sono i parametri di un metodo? E di un metodo statico?
  •  Un metodo statico può essere richiamato da un oggetto? Ed un metodo non statico può essere richiamato dalla classe (cioè con il nome della classe)?
  • Tramite overloading dei metodi è possibile avere due metodi (con lo stesso nome!) che abbiano come parametri (int matricola, int voto) e (int voto, int codiceEsame)?
  •  A che può servire un blocco di inizializzazione ?

Modificato il: 28/11/2003
Vittorio Scarano
Dipartimento di Informatica ed Applicazioni "R.M. Capocelli"
Università degli Studi di Salerno
vitsca@unisa.it