☕ Lezione 1

Introduzione a Java e Programmazione ad Oggetti

Benvenuti nel mondo Java!

🎯 Obiettivi della lezione

📚 Cos'è Java?

Java è un linguaggio di programmazione orientato agli oggetti creato da Sun Microsystems nel 1995 (ora di proprietà Oracle). È uno dei linguaggi più usati al mondo per sviluppare:

💡 Caratteristica principale: "Write Once, Run Anywhere"

Il codice Java viene compilato in bytecode, che può essere eseguito su qualsiasi sistema che abbia installata la Java Virtual Machine (JVM). Questo significa che lo stesso programma funziona su Windows, Linux, Mac senza modifiche!

🔄 Differenze tra C e Java

Dal paradigma procedurale a quello ad oggetti

Il C è un linguaggio procedurale: il programma è organizzato in funzioni che operano su dati.

Java è orientato agli oggetti: il programma è organizzato in classi e oggetti che contengono sia dati che funzioni.

Caratteristica C Java
Paradigma Procedurale Orientato agli Oggetti
Gestione memoria Manuale (malloc/free) Automatica (Garbage Collector)
Puntatori Sì, espliciti No, gestiti automaticamente
Compilazione Codice nativo Bytecode per JVM
Portabilità Limitata Multipiattaforma
Strutture dati struct class

💻 Configurare Eclipse

⚙️ Prerequisiti

Prima di usare Eclipse, assicurati di avere installato il JDK (Java Development Kit). Puoi scaricarlo da: oracle.com/java

Passi per creare il primo progetto:

  1. Apri Eclipse
  2. Vai su File → New → Java Project
  3. Dai un nome al progetto (es: "PrimoProgetto")
  4. Clicca su Finish
  5. Nel Package Explorer, espandi il progetto
  6. Fai clic destro su src → New → Class
  7. Dai un nome alla classe (es: "HelloWorld")
  8. Spunta public static void main(String[] args)
  9. Clicca su Finish

🚀 Il primo programma: Hello World

Ecco come appare il classico "Hello World" in Java:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

Confronto con il C

In C:

#include <stdio.h>

int main() {
    printf("Hello World!\n");
    return 0;
}

In Java:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

📖 Spiegazione riga per riga:

public class HelloWorld

→ Dichiara una classe pubblica chiamata HelloWorld. In Java, tutto il codice deve essere dentro una classe!

public static void main(String[] args)

→ È il metodo principale da cui parte l'esecuzione del programma (come la funzione main in C)

  • public: accessibile da ovunque
  • static: può essere chiamato senza creare un oggetto
  • void: non restituisce nulla
  • String[] args: array di stringhe per argomenti da riga di comando

System.out.println("Hello World!");

→ Stampa la stringa a video (equivalente a printf in C)

  • System.out: oggetto per output standard
  • println: metodo che stampa e va a capo
  • print: metodo alternativo che stampa senza andare a capo

▶️ Eseguire il programma in Eclipse

  1. Clicca con il tasto destro sul file Java
  2. Seleziona Run As → Java Application
  3. Oppure: premi il tasto verde di esecuzione ▶️ nella toolbar
  4. L'output apparirà nella Console in basso
Hello World!

🎨 Introduzione alla Programmazione ad Oggetti

La Programmazione Orientata agli Oggetti (OOP) è un paradigma di programmazione basato sul concetto di "oggetti", che possono contenere dati (chiamati attributi) e codice (chiamati metodi).

I quattro pilastri della OOP:

1️⃣ Incapsulamento

Nascondere i dettagli interni di un oggetto e fornire un'interfaccia pubblica per interagire con esso.

2️⃣ Ereditarietà

Creare nuove classi basate su classi esistenti, ereditando attributi e metodi.

3️⃣ Polimorfismo

Oggetti di classi diverse possono essere trattati attraverso la stessa interfaccia.

4️⃣ Astrazione

Nascondere la complessità mostrando solo le funzionalità essenziali.

Nelle prossime lezioni approfondiremo ognuno di questi concetti con esempi pratici!

📝 Esempio: Variabili e Tipi di Dati

Java ha tipi di dati simili al C, ma con alcune differenze:

public class TipiDati {
    public static void main(String[] args) {
        // Tipi primitivi (simili al C)
        int numero = 42;              // intero
        double decimale = 3.14;       // numero con virgola
        char carattere = 'A';         // singolo carattere
        boolean veroFalso = true;     // boolean (non esiste in C!)
        
        // String (tipo oggetto, non primitivo!)
        String testo = "Ciao Java!";
        
        // Stampa
        System.out.println("Numero: " + numero);
        System.out.println("Decimale: " + decimale);
        System.out.println("Carattere: " + carattere);
        System.out.println("Boolean: " + veroFalso);
        System.out.println("Testo: " + testo);
    }
}
Numero: 42 Decimale: 3.14 Carattere: A Boolean: true Testo: Ciao Java!

🔍 Differenze importanti con il C:

  • Le String sono oggetti, non array di char
  • Esiste il tipo boolean (true/false) invece di usare 0/1
  • Non serve il \n con println (va a capo automaticamente)
  • L'operatore + concatena le stringhe

✏️ Esercizi Guidati

Esercizio 1: Modifica Hello World

FACILE

Obiettivo: Modifica il programma HelloWorld per stampare il tuo nome e la tua classe.

Passi:

  1. Apri il file HelloWorld.java in Eclipse
  2. Cambia il messaggio in "Ciao, sono [TuoNome] della classe 3A"
  3. Aggiungi una seconda riga con System.out.println("Benvenuti al corso Java!");
  4. Esegui il programma

Output atteso:

Ciao, sono Mario della classe 3A Benvenuti al corso Java!

Esercizio 2: Calcolatrice Base

FACILE

Obiettivo: Creare un programma che esegue operazioni matematiche di base.

Codice da completare:

public class Calcolatrice {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        
        // Completa le operazioni
        int somma = a + b;
        int sottrazione = // ... completa tu
        int moltiplicazione = // ... completa tu
        int divisione = // ... completa tu
        
        System.out.println("Somma: " + somma);
        // Stampa anche le altre operazioni
    }
}

Output atteso:

Somma: 15 Sottrazione: 5 Moltiplicazione: 50 Divisione: 2

Esercizio 3: Info Personali

MEDIO

Obiettivo: Creare un programma che gestisce informazioni personali.

Requisiti:

  • Crea variabili per: nome (String), età (int), altezza in metri (double), studente (boolean)
  • Inizializza le variabili con i tuoi dati
  • Stampa tutte le informazioni in modo formattato

Suggerimento: Usa il + per concatenare stringhe e variabili

💪 Esercizi da Svolgere

Esercizio 4: Area e Perimetro

MEDIO

Scrivi un programma che calcola area e perimetro di un rettangolo.

  • Dichiara due variabili: base e altezza
  • Calcola area (base * altezza) e perimetro (2 * (base + altezza))
  • Stampa i risultati

Esercizio 5: Conversione Temperature

MEDIO

Crea un programma che converte una temperatura da Celsius a Fahrenheit.

  • Formula: fahrenheit = (celsius * 9/5) + 32
  • Dichiara una variabile celsius = 25
  • Calcola e stampa il valore in Fahrenheit

Esercizio 6: Media di Tre Numeri

FACILE

Scrivi un programma che calcola la media di tre numeri interi.

  • Dichiara tre variabili intere
  • Calcola la somma
  • Calcola la media (usa double per il risultato!)
  • Stampa il risultato

🎯 Concetti Chiave da Ricordare

  • Java è un linguaggio orientato agli oggetti
  • Tutto il codice deve stare dentro una classe
  • Il metodo main è il punto di partenza del programma
  • System.out.println() stampa e va a capo
  • Le String sono oggetti, non array di char
  • Java gestisce automaticamente la memoria (no malloc/free!)
  • Esiste il tipo boolean per valori vero/falso

📚 Approfondimenti

Vuoi saperne di più?

  • Cerca "JVM architecture" per capire come funziona Java internamente
  • Esplora la documentazione ufficiale: docs.oracle.com/javase/tutorial
  • Prova a scrivere programmi che usi quotidianamente (calcolatori, convertitori, etc.)