La programmazione orientata agli oggetti (OOP) è un paradigma di programmazione che si concentra sull'uso di oggetti, che rappresentano istanze di classi, per modellare dati e funzionalità. Java è un linguaggio di programmazione che supporta pienamente la programmazione orientata agli oggetti.
In Java, tutto è rappresentato come oggetto. Le classi in Java definiscono le proprietà e i comportamenti degli oggetti, mentre gli oggetti sono istanze di classi che possono essere create e utilizzate per rappresentare i dati.
In sintesi, Java è considerato completamente orientato agli oggetti poiché segue tutti i principi fondamentali della programmazione orientata agli oggetti, come l'ereditarietà, l'incapsulamento, l'astrazione e la polimorfismo.
Le classi rappresentano un modo efficace per strutturare il codice, consentendo ai programmatori di creare facilmente oggetti con proprietà specifiche. Grazie alle classi, le variabili e le funzioni correlate vengono memorizzate insieme in un unico posto. Questo rende molto più semplice la scrittura di codice efficiente e organizzato! Utilizzando le classi, i programmatori possono risparmiare tempo riutilizzando gli stessi metodi di manipolazione dei dati che si trovano spesso in queste strutture.
Cosa sono i package
In Java, i package sono un modo per organizzare le classi e altri file sorgente in categorie logiche. Un package è semplicemente una cartella che contiene un insieme di file Java. Ogni classe che scrivi in Java deve essere inserita in un package, oppure puoi utilizzare il package di default che viene fornito con Java.
La creazione di un package ti permette di organizzare le tue classi in modo logico e di evitare collisioni di nomi con classi scritte da altri sviluppatori. Ad esempio, se stai scrivendo un'applicazione per la gestione delle finanze, potresti creare un package chiamato "com.finance.app" per organizzare le tue classi.
Per creare un package, devi specificare il nome del package all'inizio del tuo file sorgente, prima della dichiarazione della classe. Ad esempio:
package com.finance.app;
public class FinancialManager {
...
}
In questo esempio, la classe "FinancialManager" appartiene al package "com.finance.app".
Quando vuoi utilizzare una classe da un altro package, devi importare esplicitamente il package. Ad esempio:
import com.finance.app.FinancialManager;
public class Main {
public static void main(String[] args) {
FinancialManager manager = new FinancialManager();
...
}
}
Convenzione dei nomi dei package
In Java, c'è una convenzione comune per la denominazione dei nomi dei package che viene seguita dalla maggior parte degli sviluppatori. La convenzione consiste nell'utilizzare una struttura di nomi inversi basati sui nomi di dominio.
Ad esempio, se il tuo sito web è "www.example.com", potresti creare un package con questa struttura: "com.example.appname". Questa convenzione garantisce che i nomi dei package siano unici a livello globale e facili da identificare.
È importante seguire questa convenzione per evitare conflitti di nomi con altre librerie o pacchetti che potresti voler utilizzare nel tuo progetto. Inoltre, seguendo questa convenzione rendi il tuo codice più facile da comprendere e mantenere anche per altri sviluppatori che potrebbero lavorare sul tuo progetto in futuro.
In sintesi, la convenzione dei nomi dei package in Java consiste nell'utilizzare una struttura di nomi inversi basata sui nomi di dominio per garantire l'unicità e la facile identificabilità dei package.
Creazione di una classe in Java
Adesso che conosciamo cosa sono le classi e come si classificano, vediamo come crearne una in Java. Iniziamo aprendo il nostro editor di testo e creiamo il package "it.lucaterribili.tutorial". Al suo interno creiamo il file "MyClass.java" e definiamo la base della nostra classe.
package it.lucaterribili.tutorial;
public class MyClass {
}
Questo crea la struttura di base della classe. La parola chiave "public" indica a Java che questa classe è accessibile da qualunque punto del programma, mentre "MyClass" è il nome della classe che possiamo scegliere noi. Tra le parentesi graffe {} inseriamo tutto il codice necessario per il nostro programma.
Successivamente, creiamo alcune variabili di istanza all'interno della classe:
package it.lucaterribili.tutorial;
public class MyClass {
private int myVar;
private String myStr;
}
Aggiungiamo poi 4 metodi, ossia i getter e i setter delle due proprietà che abbiamo appena definito. I getter e i setter sono metodi che vengono utilizzati per accedere e modificare i valori degli attributi di una classe in Java. I getter sono metodi che restituiscono il valore di un attributo mentre i setter sono metodi che ne impostano il valore.
package it.lucaterribili.tutorial;
public class MyClass {
private int myVar;
private String myStr;
public int getMyVar() {
return myVar;
}
public void setMyVar(int myVar) {
this.myVar = myVar;
}
public String getMyStr() {
return myStr;
}
public void setMyStr(String myStr) {
this.myStr = myStr;
}
}
Fatto, abbiamo scritto la nostra prima classe in Java, operazione fondamentale per la programmazione orientata agli oggetti. Le classi ci permettono di creare modelli per rappresentare i dati e le funzionalità che sono importanti per il tuo progetto.