Java - Metodi di Classe

Ciao, futuri programmatori Java! Oggi, entreremo nel mondo affascinante dei metodi di classe Java. Non preoccupatevi se siete nuovi nella programmazione – vi guiderò attraverso questo viaggio passo per passo, proprio come ho fatto per innumerevoli studenti durante gli anni della mia docenza. Allora, solleviamo le maniche e iniziamo!

Java - Class Methods

Cos'sono i Metodi di Classe Java?

Immagina di costruire un robot. Il corpo del robot è come una classe in Java, e le azioni che può compiere – come ondare, parlare o ballare – sono come metodi. I metodi di classe sono essenzialmente i comportamenti o le azioni che gli oggetti di una classe possono eseguire.

Perché i Metodi di Classe sono Importanti?

I metodi di classe sono i cavalli da soma della programmazione Java. Consentono di:

  1. Organizzare il codice in porzioni gestibili
  2. Riutilizzare il codice senza ripeterci
  3. Eseguire compiti specifici quando vengono richiamati

Creazione (Dichiarazione) dei Metodi di Classe Java

Iniziamo creando il nostro primo metodo. Ecco un esempio semplice:

public class Robot {
public void wave() {
System.out.println("Il robot sta ondando!");
}
}

In questo esempio, abbiamo creato una classe chiamata Robot con un metodo chiamato wave(). Analizziamo il codice:

  • public: Questo è un modificatore di accesso. Significa che il metodo può essere accessibile dall'esterno della classe.
  • void: Questo è il tipo di ritorno. void significa che il metodo non restituisce alcun valore.
  • wave(): Questo è il nome del metodo, seguito da parentesi.
  • Il codice all'interno delle parentesi graffe {} è il corpo del metodo.

Metodo con Parametri e Valore di Ritorno

Ora, creiamo un metodo più complesso:

public class Calculator {
public int add(int a, int b) {
return a + b;
}
}

Qui, add() è un metodo che:

  • Prende due parametri (int a e int b)
  • Restituisce un valore int (la somma di a e b)

Accesso ai Metodi di Classe Java

Per utilizzare un metodo, dobbiamo prima creare un oggetto della classe (a meno che non sia un metodo statico, ma ci arriveremo più tardi). Ecco come fare:

public class Main {
public static void main(String[] args) {
Robot myRobot = new Robot();
myRobot.wave();

Calculator myCalc = new Calculator();
int result = myCalc.add(5, 3);
System.out.println("5 + 3 = " + result);
}
}

Output:

Il robot sta ondando!
5 + 3 = 8

Creiamo oggetti (myRobot e myCalc) e poi utilizziamo la notazione a punti per richiamare i loro metodi.

La Parola Chiave this nei Metodi di Classe Java

La parola chiave this si riferisce all'istanza dell'oggetto corrente. È particolarmente utile quando hai un parametro con lo stesso nome di una variabile di istanza. Per esempio:

public class Person {
private String name;

public void setName(String name) {
this.name = name;  // 'this.name' si riferisce alla variabile di istanza
}
}

Metodi Pubblici vs. Metodi Statici di Classe

Metodi Pubblici

I metodi pubblici sono metodi di istanza. Appartengono agli oggetti della classe e possono accedere alle variabili di istanza. Abbiamo già visto esempi di questi.

Metodi Statici

I metodi statici appartengono alla classe stessa, non a una istanza specifica. Possono essere chiamati senza creare un oggetto. Per esempio:

public class MathHelper {
public static int square(int number) {
return number * number;
}
}

// Utilizzo:
int result = MathHelper.square(4);  // result è 16

I metodi statici non possono accedere alle variabili di istanza né utilizzare la parola chiave this.

Il Metodo finalize()

Il metodo finalize() viene chiamato dal garbage collector prima di distruggere un oggetto. Viene utilizzato per operazioni di pulizia. Tuttavia, generalmente non si raccomanda di fare affidamento su finalize() per la gestione delle risorse.

public class ResourceHeavyObject {
protected void finalize() throws Throwable {
try {
// Codice di pulizia qui
System.out.println("L'oggetto sta being finalized");
} finally {
super.finalize();
}
}
}

Mettere Tutti i Pezzi Insieme

Creiamo un esempio più complesso che mostra vari aspetti dei metodi di classe:

public class BankAccount {
private String accountHolder;
private double balance;

public BankAccount(String accountHolder) {
this.accountHolder = accountHolder;
this.balance = 0.0;
}

public void deposit(double amount) {
if (amount > 0) {
this.balance += amount;
System.out.println("Depositato: $" + amount);
} else {
System.out.println("Importo di deposito non valido");
}
}

public void withdraw(double amount) {
if (amount > 0 && amount <= this.balance) {
this.balance -= amount;
System.out.println("Prelevato: $" + amount);
} else {
System.out.println("Importo di prelievo non valido o fondi insufficienti");
}
}

public double getBalance() {
return this.balance;
}

public static double convertToCurrency(double amount, String currency) {
switch (currency.toLowerCase()) {
case "eur":
return amount * 0.85;
case "gbp":
return amount * 0.74;
default:
return amount;
}
}
}

public class Main {
public static void main(String[] args) {
BankAccount myAccount = new BankAccount("John Doe");

myAccount.deposit(1000);
myAccount.withdraw(500);

System.out.println("Saldo corrente: $" + myAccount.getBalance());

double balanceInEuros = BankAccount.convertToCurrency(myAccount.getBalance(), "EUR");
System.out.println("Saldo in Euro: €" + balanceInEuros);
}
}

Questo esempio dimostra:

  • Metodi di istanza (deposit(), withdraw(), getBalance())
  • Un metodo statico (convertToCurrency())
  • L'uso della parola chiave this
  • Parametri e valori di ritorno dei metodi

Output:

Depositato: $1000.0
Prelevato: $500.0
Saldo corrente: $500.0
Saldo in Euro: €425.0

Conclusione

Congratulations! Avete appena fatto un grande passo nel vostro viaggio Java, imparando i metodi di classe. Ricordate, la pratica fa perfetto. Prova a creare le vostre classi e metodi, esperimenta con diversi tipi di metodi e non avere paura di fare errori – è così che impariamo!

Nei miei anni di insegnamento, ho trovato che gli studenti che eccellono sono quelli che sono curiosi e persistenti. Allora, continua ad esplorare, a programmare e, soprattutto, divertiti! Java è uno strumento potente, e sei ben sulla strada per padroneggiarlo.

Buon coding, futuri maestri Java!

Credits: Image by storyset