01 - Introduction

Introduzione al linguaggio Java

Java è un linguaggio di programmazione sviluppato da Sun Microsystems (ora parte di Oracle) negli anni '90. È stato progettato per essere portabile, sicuro e robusto, utilizzato ampiamente nello sviluppo di applicazioni web, mobili e enterprise.


Paradigmi di programmazione

Un paradigma di programmazione è un approccio o uno stile di programmazione che guida il modo in cui i programmi vengono strutturati e scritti. Esistono diversi paradigmi di programmazione, ognuno con i propri principi e pratiche.


Paradigma Procedurale

Il paradigma procedurale è uno dei più antichi e si basa sulla concettualizzazione dei programmi come una sequenza di istruzioni o procedure. Le caratteristiche principali includono:


Paradigma Orientato agli Oggetti (OOP)

L'OOP si basa sul concetto di oggetti e classi per organizzare e strutturare il codice. Ogni oggetto rappresenta un'entità del mondo reale e le classi sono le blueprint degli oggetti. Le caratteristiche principali includono:


Paradigma Funzionale

Il paradigma funzionale si basa su funzioni matematiche e evita lo stato e i cambiamenti di stato. Le caratteristiche principali includono:

Paradigma Logico

Il paradigma logico si basa sulla logica formale e sulla dichiarazione di fatti e regole. Il programma consiste in una serie di enunciati logici e il motore di inferenza esegue le query su questi enunciati. Esempio principale è Prolog.


Linguaggi Interpretati e linguaggi Compilati

I linguaggi di programmazione possono essere interpretati o compilati:

Interpretazione Vs Compilazione

Compilazione, Interprete e Compilatore


JRE (Java Runtime Environment)

Il JRE è un insieme di strumenti software che consente di eseguire applicazioni Java.


JDK (Java Development Kit)

Il JDK è un ambiente di sviluppo per Java, includendo il JRE e strumenti di sviluppo come il compilatore.


Build Automation: Maven

Maven è uno strumento di automazione del build e gestione delle dipendenze per progetti Java.


Struttura di un programma Java

Un programma Java è composto da una o più classi. Ogni classe può contenere variabili di istanza (campi), metodi (funzioni) e costruttori (per creare oggetti). La struttura base di un programma Java è:

  1. Dichiarazione del package (opzionale): Organizza le classi in namespace.
  2. Import delle classi di libreria (opzionale): Permette l'uso di classi di altri package.
  3. Definizione della classe: La classe contiene variabili, metodi e costruttori.
  4. Metodo main: Punto di ingresso del programma.

Esempio di un semplice programma Java:

package esempio;

import java.util.Scanner;

public class HelloWorld {
    private String messaggio;
    
    public HelloWorld(String messaggio) {
        this.messaggio = messaggio;
    }
    
    public void stampaMessaggio() {
        System.out.println(messaggio);
    }
    
    public static void main(String[] args) {
        HelloWorld hw = new HelloWorld("Hello, World!");
        hw.stampaMessaggio();
    }
}

Utilizzo delle classi di libreria

Le classi di libreria forniscono funzionalità predefinite che possono essere utilizzate nei programmi Java. Esempi includono java.util.ArrayList, java.io.File, e java.net.URL. L'uso delle librerie permette di risparmiare tempo e sforzo, evitando di riscrivere codice comune.

Esempio di utilizzo di una classe di libreria:

import java.util.ArrayList;

public class EsempioArrayList {
    public static void main(String[] args) {
        ArrayList<String> lista = new ArrayList<>();
        lista.add("Java");
        lista.add("Python");
        lista.add("C++");
        
        for (String linguaggio : lista) {
            System.out.println(linguaggio);
        }
    }
}

Import e concetto di Package

I package in Java organizzano le classi in namespace distinti per evitare conflitti di nome e migliorare la modularità del codice. Un package è simile a una cartella in un file system. Il comando import permette di utilizzare le classi di altri package senza dover specificare il percorso completo del package ogni volta.

Esempio di dichiarazione di un package e importazione di classi:

// Dichiarazione del package
package com.esempio;

// Importazione di classi di altri package
import java.util.ArrayList;
import java.util.HashMap;

public class EsempioPackage {
    public static void main(String[] args) {
        ArrayList<String> lista = new ArrayList<>();
        HashMap<String, Integer> mappa = new HashMap<>();
        
        lista.add("Java");
        mappa.put("Java", 1);
        
        System.out.println(lista);
        System.out.println(mappa);
    }
}

Utilizzare i package e gli import consente di organizzare meglio il codice, promuovendo la riusabilità e la manutenzione efficace del software.


IDE (Integrated Development Environment)

Cosa sono gli IDE

Un Integrated Development Environment (IDE) è un software che fornisce strumenti completi per lo sviluppo di applicazioni. Gli IDE sono progettati per semplificare il processo di scrittura, debugging e testing del codice sorgente, offrendo una gamma di funzionalità che migliorano la produttività degli sviluppatori.

Perché è necessario usare un IDE

Utilizzare un IDE offre diversi vantaggi, tra cui:

Funzionalità principali di un IDE

Le funzionalità principali di un IDE includono: