Resúmenes
Apuntes universitarios en formato Markdown desde Obsidian.
Introduzione (parte 1)
download Descargar MDProgrammare in Java
Cosa serve?
- Java Development Kite (JDK), a lezione utilizzeremo la open JDK versione 15
- Un editor di testo o un IDE di sviluppo (Eclipse)
Compilatore e macchina virtuale
- Codice sorgente: file .java
- Solitamente, il file .java contiene una sola dichiarazione e definizione di classe "esterna".
- Bytecode: file .class La Java virtual machine (JVM) interpreta il bytecode ed esegue il programma. La JVM è specifica per la piattaforma, ma l'ambiente di esecuzione è uniforme.
- Il file .java è compilato, il file .class è interpretato.
Hello World in Java
Create il file HelloWorld.java:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello world!");
}
}
Compilare ed eseguire un programma Java:
- Compilazione: javac HelloWorld.java
- Esecuzione: java HelloWorld, java -cp. HelloWorld (windows)
- La compilazione produce un file HelloWorld.class
- Il file .class contiene le istruzioni in un linguaggio intermedio, detto bytecode, che successivamente verrà interpretato.
Regole:
- Ogni file deve contenere una classe con esattamente lo stesso nome del file (anche le lettere maiuscole e minuscole)
- A differenza del C++, la keyword public, private o protected va inserita prima di ogni campo, metodo o classe.
- Il main riceve un array di stringhe che rappresentano i parametri da linea di comando del programma.
Parametri da linea di comando
> java AnApplication ciao mondo
ARGOMENTI: ciao e mondo
> java AnApplication
NESSUN ARGOMENTO DA LINEA DI COMANDO
- Ogni stringa di caratteri separata da spazio che segue l'invocazione di AnApplication è un parametro da linea di comando.
- Ogni parametro viene messo a disposizione come elemento dell'array args (nome arbitrario) passato al main.
- Se args è vuoto, nessun parametro è stato fornito.
Stampa su standard output
System.out.println("Questo e' un messaggio!")
- System è una classe della libreria java.lang (la libreria è inclusa automaticamente)
- out è un campo pubblico di System ed è uno oggetto della classe PrintStream (libreria java.io) collegato allo "standard output"
- println è un metodo della classe PrintStream per la stampa di vari tipi di dato
- Esiste anche il metodo print che è simile ma non va a capo dopo l'output
- Le stringhe sono oggetti della classe String
Convenzione sui nomi
Per naming convention si intende la regola di scrittura da utilizzare per la scelta dei nomi all'interno del programma. È importante perché gli altri programmatori che leggono il vostro codice assumono la notazione e quindi migliora la leggibilità del codice!
Le regole principali sono:
- I nomi delle classi iniziano per lettera minuscola. Nel caso in cui il nome della classe sia composto da più parole si deve utilizzare la lettera maiuscola per ogni parola. Ad esempio: class StudenteLavoratore
- I nomi delle variabili e dei metodi iniziano per lettera minuscola. Nel caso in cui il nome sia composto da più parole si deve utilizzare la lettera maiuscola per le parole successive alla prima. Ad esempio: int numeroIscritti
I tipi base
In Java abbiamo 8 tipi base:
- byte : 8 bit
- short: 16 bit
- int: 32 bit
- long. 64 bit
- float: 32 bit
- double: 64 bit
- boolean: 8 bit e può essere true o false
- char: 16 bit
Come in C++ le variabili si dichiarano tipo nome;. Esempi:
int a;
char c;
int a = 10;
Array
- È possibile creare un array A di un determinato tipo e di lunghezza N con l'istruzione: tipo[] A = new tipo[N];. Esempio,
int[] A = new int[10]; - Un array può essere creato assegnando dei valori
int[] A = {6,2,4,8}; - Per conoscere la size dell'array si può utilizzare il campo length. Nell'esempio precedente, A.length è uguale a 4.
- Come in C++, gli indici partono da 0 e arrivano alla lunghezza -1.
- Si può accedere ad una posizione usando le parentesi quadre. Esempio:
a[2] = 5;
Matrici
- È possibile creare una matrice M di un determinato tipo, R righe e C colonne, con l'istruzione: tipo[][] M = new tipo[R][C];. Esempio:
int[][] M = new int[2][3]; - Una matrice può anche essere creata assegnando dei valori
int[][] M = {{1,2,3},{4,5,6}}; - Per conoscere il numero di righe di una matrice si può utilizzare length. Nell'esempio precedente, M.length è uguale a 2. L'istruzione M[0].length restituisce 3.
- Si può accedere ad una posizione usando le parentesi quadre, m[0][1] = 7;.
- È possibile creare matrici dove ogni riga ha una dimensione diversa:
int[][] M = new int[2][]; m[0] = new int[3]; m[1] = new int[4];
If / else
Create il file ProvaIfElse.java
public class ProvaIfElse {
public staic void main(String[] args) {
int a = 0;
if(args.length > 2) {
a++;
System.out.println(a);
} else {
a--;
}
if(a == -1)
System.out.println(a);
}
}
Switch
Create il file ProvaSwitch.java
public class ProvaSwitch {
public staic void main(String[] args) {
switch(args.length) {
case 0:
System.out.println("Nessun parametro");
break;
case 1:
System.out.println("1 parametro");
break;
case 2:
System.out.println("2 parametri");
break;
default:
System.out.println(">2 parametri");
break;
}
}
}
Cicli FOR
Create il file ProvaFor.java
public class ProvaFor {
public staic void main(String[] args) {
String[] automobili = {"panda", "golf", "corsa"};
//FOR classico
for(int i = 0; i < automobili.length; i++) {
System.out.println("automobili[i]");
}
//FOR "enhanced"
for(String auto : automobili) {
System.out.println(auto);
}
}
}
Cicli WHILE
Create il file ProvaWhile.java
public class ProvaWhile {
public staic void main(String[] args) {
String[] automobili = {"panda", "golf", "corsa"};
//WHILE
int i = 0;
while(i < automobili.length) {
System.out.println(automobili[i]);
i++;
}
}
}