Progettare la classe Macchina

Progettare e realizzare una classe che modella una macchina. Le funzioni che vogliamo considerare sono molto semplici:
  • aggiungere carburante;
  • percorrere una data distanza;
  • verificare il livello del serbatoio;
Ad esempio si vuole poter scrivere:
Macchina miaMarea = new Macchina();
miaMarea.aggiungiGas (30);
miaMarea.percorri (50);
System.out.println (miaMarea.livello());
Questo implica che abbiamo individuato i metodi della nostra classe che ne regolano il comportamento:
  • void aggiungiGas (double ammontare)
  • void percorri (double distanza)
  • double livello ()
/**
	Aggiunge carburante al serbatoio.
	@param ammontare la quantità di carburante aggiunta
*/
public void aggiungiGas (double ammontare)
{
	// corpo del metodo
}

/**
	Ispeziona il livello del carburante.
	@return la quantità di carburante
*/
public double livello ()
{
	// corpo del metodo in seguito
}
Lo stato di ciascuna macchina può essere descritta da una variabile d'istanza gas che definiremo con accesso private in modo che solo i costruttori e i metodi della classe possano accedervi. Il costruttore di un oggetto della classe potrà inizializzare a 0 la variabile d'istanza gas, come segue:
Macchina ()
{
	gas = 0;
}
È anche ragionevole poter disporre di un costruttore con un parametro che indichi la quantitità di carburante da aggiungere inizialmente al serbatoio, e quindi possiamo anche definire un secondo costruttore:
ContoBancario (double gasIniziale)
{
	gas = gasIniziale;
}
La nostra classe Macchina sarà quindi definita dal codice:
public class Macchina
{
	private double gas;
	private double consumo;

	public Macchina (double un_consumo)
	{
		gas = 0;
		consumo = un_consumo;
	}
	
	// metodi
}
Definiamo ora i metodi aggiungiGas, percorri, livello. Il campo gas è stato dichiarato private e solo i metodi aggiungiGas e percorri potranno modificarne il valore, mentre il metodo livello potrà leggerne il valore attuale. Il metodo percorri inoltre consuma carburante in funzione della distanza percorsa ma anche in funzione del consumo della particolare macchina. Questa informazione non è nota a priori e quindi deve essere assegnata al singolo oggetto alla sua creazione.

Per effettuare una prova della classe Macchina occorre definire una classe TestMacchina.


inizio lezione La classe Macchina

Copyright © 2005. Alberti. DICo, Università degli Studi di Milano.
argomento precedente argomento prossimo