mirror of
https://github.com/Steffo99/appunti-magistrali.git
synced 2024-11-25 03:34:17 +00:00
Importa Programmazione ad oggetti da Steffo99/appunti-universitari
This commit is contained in:
parent
9bdeeb2da7
commit
a5c6c51f6c
4 changed files with 108 additions and 0 deletions
|
@ -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.
|
|
@ -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**.
|
|
@ -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
|
|
@ -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
|
||||||
|
- ...
|
Loading…
Reference in a new issue