From a5c6c51f6c88dc7ceee4a48a5a7265f5ce352033 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Tue, 4 Jun 2024 10:40:38 +0200 Subject: [PATCH] Importa Programmazione ad oggetti da Steffo99/appunti-universitari --- .../1 - Appunti/0 - Informazioni sul corso.md | 49 +++++++++++++++++++ .../1 - Introduzione agli oggetti.md | 29 +++++++++++ .../1 - Appunti/2 - Java Development Kit.md | 9 ++++ .../1 - Appunti/3 - Tipi di Java.md | 21 ++++++++ 4 files changed, 108 insertions(+) create mode 100644 3 - Programmazione ad oggetti/1 - Appunti/0 - Informazioni sul corso.md create mode 100644 3 - Programmazione ad oggetti/1 - Appunti/1 - Introduzione agli oggetti.md create mode 100644 3 - Programmazione ad oggetti/1 - Appunti/2 - Java Development Kit.md create mode 100644 3 - Programmazione ad oggetti/1 - Appunti/3 - Tipi di Java.md diff --git a/3 - Programmazione ad oggetti/1 - Appunti/0 - Informazioni sul corso.md b/3 - Programmazione ad oggetti/1 - Appunti/0 - Informazioni sul corso.md new file mode 100644 index 0000000..b75d2e2 --- /dev/null +++ b/3 - Programmazione ad oggetti/1 - Appunti/0 - Informazioni sul corso.md @@ -0,0 +1,49 @@ +# Programmazione ad Oggetti + +Docente: **Giacomo Cabri** ([email](mailto:giacomo.cabri@unimore.it)), **Nicola Capodieci** ([email](mailto:nicola.capodieci@unimore.it)) + +[Pagina del corso](http://didattica.agentgroup.unimore.it/wiki/index.php/Programmazione_ad_Oggetti) (password: `pogill`) + +Crediti: **9 CFU** + +Orario di ricevimento: **Lunedì dalle 15:00 alle 17:00** + +## Materiale + +Libri: +- Programmazione a oggetti in Java: dai fondamenti a Internet, G. Cabri, F. Zambonelli (ISBN: ?) + +Millemila altri testi elencati sul sito + +## Esame + +Due prove: + +- Prova scritta (34% del voto) +- Progetto (66% del voto) + +### Prova scritta + +E' uno sbarramento, una prova facile in cui si deve implementare con carta e penna un'entità di base di Java con il polimorfismo. + +Passando la prova scritta, si è ammessi al Progetto. + +#### Regole + +Iscriversi entro 3 giorni dalla data dell'appello. + +Il voto della prova scritta vale 1 anno. + +Consegnare uno scritto sovrascrive il voto precedente; ci si può ritirare per non sovrascrivere il voto. + +### Progetto + +A una certa data, i prof. pubblicheranno una traccia per il progetto da sviluppare; sarà poi valutato codice e presentazione all'orale. + +Conterrà incapsulamento, ereditarietà, polimorfismo, interfaccia grafica, input/output e generics. + +Richiede documentazione autogenerata in HTML. + +Portare sorgenti, compilati, documentazione. + +E' possibile presentare qualcosa di diverso dalla proposta del docente, ma deve essere approvato. diff --git a/3 - Programmazione ad oggetti/1 - Appunti/1 - Introduzione agli oggetti.md b/3 - Programmazione ad oggetti/1 - Appunti/1 - Introduzione agli oggetti.md new file mode 100644 index 0000000..8ceabbb --- /dev/null +++ b/3 - Programmazione ad oggetti/1 - Appunti/1 - Introduzione agli oggetti.md @@ -0,0 +1,29 @@ +# Introduzione agli oggetti + +Per rendere più comoda la scrittura di codice, dobbiamo avere un meccanismo che protegga alcune componenti del codice dal misuso. + +Supponiamo di voler implementare un contatore. + +Esso avrà: + +- 1 attributo + - Valore contatore +- 3 operazioni + - Definizione + - Incremento + - Lettura + +Devo prevenire tutte le operazioni all'infuori di queste, come il decremento. + +In C non possiamo farlo: nulla impedisce al programmatore di fare ad esempio `cont++`! + +Ci serve allora una soluzione. +Immaginiamoci un linguaggio che abbia costrutti per: + +- livelli più alti di astrazione +- protezione migliore dei dati +- migliore riutilizzo del codice + +Vogliamo che ci dia un errore se viene eseguito `cont++`, ad esempio. + +Vogliamo definire dei **vincoli**. diff --git a/3 - Programmazione ad oggetti/1 - Appunti/2 - Java Development Kit.md b/3 - Programmazione ad oggetti/1 - Appunti/2 - Java Development Kit.md new file mode 100644 index 0000000..f36dbbd --- /dev/null +++ b/3 - Programmazione ad oggetti/1 - Appunti/2 - Java Development Kit.md @@ -0,0 +1,9 @@ +# Java Development Kit (JDK) + +I tools forniti dal JDK sono: + +- `javac`, il compilatore +- `java`, un interprete +- `jdb`, il debugger +- `appletviewer`, un visualizzatore di applet +- tanti altri diff --git a/3 - Programmazione ad oggetti/1 - Appunti/3 - Tipi di Java.md b/3 - Programmazione ad oggetti/1 - Appunti/3 - Tipi di Java.md new file mode 100644 index 0000000..919e257 --- /dev/null +++ b/3 - Programmazione ad oggetti/1 - Appunti/3 - Tipi di Java.md @@ -0,0 +1,21 @@ +# Tipi del Java + +## Primitivi + +- byte (8 bit) +- short (16 bit) +- int (32 bit) +- long (64 bit) +- float (IEEE 754 | 32 bit) +- double (IEEE 754 | 64 bit) +- char (UTF-16) +- boolean (1 bit) + +## Wrapper + +Esistono classi Wrapper che trasformano i dati primitivi in delle classi: + +- Byte +- Short +- Integer +- ...