Slides:

Schema della lezione:
Obiettivo: Presentare le struttura fondamentali del linguaggio Java
- Anatomia di un programma Java
- Commenti
- Tipi di dati
- Variabili, assegnazioni ed inizializzzioni
- Operatori
- Stringhe
- Controllo del flusso
- Gestione di numeri grandi
- Array
Materiale bibliografico:
- Horstmann, Cap. 3
- Alcuni errori (di traduzione) rilevati sul libro:
- Pagina 51 (centro pagina): il paragrafo che inizia "I numeri
interi lunghi hanno prefisso...." dovrebbe essere "I numeri
interi long hanno prefisso..."
- Pagina 74 (e seguenti): quello che viene chiamato (sic!) "organo standard di
output" (all'inizio del paragrafo "Lettura dell'input")
deve essere chiamato "standard output" oppure "descrittore
di standard output". Lo stesso vale per lo standard input.
- Pag. 102 (primi due righi): la
traduzione di "Array index out of bound" è "indice dell'array
esterno ai limiti" non "elemento esterno ai limiti dell'array".
- Pag. 109: (descrizione del metodo sort nella API java.util.arrays)
"adottando un algoritmo Quicksort messo a punto" è
semplicemente "adottando un algoritmo Quicksort".
Altri link interessanti:
- "The
JavaTM Language Specification, Second Edition" di Gosling, Joy,
Steele e Bracha (HTML,
PDF).
- Importante: le convenzioni da usare quando si programma in Java sono
disponibili attraverso "Code
Conventions for the JavaTM Programming Language". In particolar
modo, per quanto riguarda la lezione 2, sono utili: "Perchè
usare convenzioni", "Indentazione",
"Commenti",
"Dichiarazioni", "Statement".
- La Frequently Asked Question
di Java.
- Il download
della versione J2SE 1.4.2, (che contiene anche link per scaricare la
documentazione e Sun ONE). Sono disponibili le novità
della versione J2SE 1.4 rispetto alla versione 1.3
Domande per la auto-verifica della comprensione degli argomenti
Le domande più difficili vengono indicate con (*)
- Quanti tipi diversi di commenti sono disponibili in Java?
- Cosa significa che Java è un linguaggio fortemente tipizzato (strongly
typed)?
- (*) E perché i progettisti hanno deciso che Java dovesse
essere fortemente tipizzato?
- Perché la forte tipizzazione di Java permette di scoprire a tempo di
compilazione l'errore della linea di codice
if (x=0) che invece
in C non viene rivelato?
- Cosa sono le parole riservate di un linguaggio di programmazione?
- Come si definiscono le costanti in Java?
- Quale è la differenza tra l'operatore >> e l'operatore >>>? E perché
è necessario avere più prodotti?
- Cosa è la priorità degli operatori? E la associatività? Ed a cosa
servono? (cioè potremmo farne a meno?)
- (*) In che maniera la "soluzione" adottata dal linguaggio Java per
la definizione di un tipo stringa rappresenta un compromesso tra efficienza e
modularità?
- (*) Perchè è stato scelto di avere sia una classe
String
(stringhe non modificabili) che la classe StringBuffer (con stringhe
modificabili)? Non poteva bastare StringBuffer ?
- In che cosa l'uso degli array in Java ricorda i "puntatori" in C?
|