Vai al contenuto principale
Pubblicato il

Classi e Oggetti in Java

Condividi:

Introduzione

Java, essendo un linguaggio orientato agli oggetti, ha le sue fondamenta costruite attorno al concetto di classi e oggetti. In questo articolo, esploreremo questi concetti fondamentali e come si interconnettono nella costruzione di applicazioni robuste.

Cosa sono le Classi?

Le classi in Java possono essere considerate come modelli o blueprint per creare oggetti. Incapsulano i dati dell'oggetto e i metodi per operare su quei dati.

  • Attributi: Rappresentano le proprietà di un oggetto. Ad esempio, un'auto ha colore, marca e modello come attributi.
  • Metodi: Rappresentano il comportamento. Continuando con l'esempio dell'auto, i metodi potrebbero essere avvia(), frena() e accelera().

Cosa sono gli Oggetti?

Un oggetto è un'istanza di una classe. Quando creiamo un oggetto, stiamo essenzialmente creando un'istanza di quella classe, dotata di un proprio stato e comportamento.

Concetti Fondamentali della OOP

  1. Incapsulamento: Si riferisce al raggruppamento di dati (attributi) e metodi che operano su quei dati in un'unica unità (ovvero, una classe).
  2. Ereditarietà: Consente a una classe di ereditare attributi e metodi da un'altra classe. Questo promuove il riutilizzo del codice.
  3. Polimorfismo: Capacità di un oggetto di assumere molte forme. Il polimorfismo in Java viene ottenuto tramite l'overloading e l'overriding dei metodi.

Esempio Pratico

Consideriamo un esempio in cui abbiamo una classe che rappresenta un "Nemico" in un gioco.

package com.caffeinealgorithm.programaremjava;

public class ClassiEOggetti {
  private int vite = 5;

  public void attacco() {
    System.out.println("Sono stato attaccato e ho perso una vita.");
    vite -= 1;
  }

  public void verificaVita() {
    if (vite <= 0)
      System.out.println("Sono morto perché non ho più vite.");
    else
      System.out.printf("Sono ancora in combattimento e ho %d vite.\n", vite);
  }
}

Nell'esempio precedente, la classe ClassiEOggetti ha un attributo vite e due metodi, attacco() e verificaVita().

package com.caffeinealgorithm.programaremjava;

public class Main {
  public static void main(String[] args) {
    var nemico1 = new ClassiEOggetti();
    var nemico2 = new ClassiEOggetti();

    nemico1.attacco(); // Sono stato attaccato e ho perso una vita.
    nemico1.attacco(); // Sono stato attaccato e ho perso una vita.
    nemico1.attacco(); // Sono stato attaccato e ho perso una vita.
    nemico1.verificaVita(); // Sono ancora in combattimento e ho 2 vite.
    nemico2.verificaVita(); // Sono ancora in combattimento e ho 5 vite.
  }
}

Conclusione

Le classi e gli oggetti sono i pilastri del paradigma di programmazione orientata agli oggetti in Java. Capire come lavorano insieme è essenziale per scrivere programmi Java efficienti e scalabili.

Happy coding!