Resumos

Apontamentos universitários em formato Markdown do Obsidian.

Introduzione (parte 1)

download Descarregar MD

Programmare 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++;
        }
    }
}