Vai al contenuto

Introduzione a Java e alla programmazione a oggetti

In questa lezione impari a

  • capire cos'è Java e perché è importante
  • comprendere le differenze tra C e Java
  • configurare Eclipse per programmare in Java
  • scrivere ed eseguire il primo programma Java
  • introduzione ai concetti base della OOP

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:

  • Applicazioni desktop
  • Applicazioni web e server
  • App Android
  • Sistemi enterprise di grandi dimensioni

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

Attenzione: 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

⭐ Facile

Esercizio 1 – modifica hello world.

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!

⭐ Facile

Esercizio 2 – Calcolatrice base.

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

⭐⭐ Medio

Esercizio 3 – info personali.

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

⭐⭐ Medio

Esercizio 4 – area e perimetro.

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

⭐⭐ Medio

Esercizio 5 – conversione temperature.

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

⭐ Facile

Esercizio 6 – media di tre numeri.

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.)