JAVALAB#003 – Costruttori, attributi, metodi e metodi statici

Questo è il codice del programma scritto in laboratorio:

Lab_20081121.java

public class Lab_20081121 // --- MAIN
{
	public static void main(String[] argv)
	{
		//istanza della classe Rettangolo
		Rettangolo rettangolo;
 
		//Richiamo del costruttore per l'instanziazione dell'oggetto
		rettangolo = new Rettangolo();
 
		//-------------
		rettangolo.setBase(5);
		rettangolo.stampaBase();
	}
 
	public static void stampa(String s)
	{
		System.out.println(s);
	}
}
 
class Rettangolo
{
	//ATTRIBUTI
	private double base;
	private double altezza;
 
	//COSTRUTTORE
	public Rettangolo()
	{
		stampaBase();
	}
 
	//METODI
	public void setBase(double tbase) //Assegna la base al rettangolo
	{
		base = tbase;
	}
 
	public double getBase() //Prende il valore della base del rettangolo
	{
		return base;
	}
 
	public void stampaBase() //Stampa a schermo del valore della base
	{
		Lab_20081121.stampa( "" + getBase() );
	}
}

Testo dell’esercizio da svolgere in laboratorio:

  1. Campi della classe privati
  2. Metodi per accedere e modificare i campi della classe
  3. Metodo per richiedere base e altezza da tastiera
  4. Costruttore che imposta al momento dell’instanziazione dell’oggetto base e altezza uguali a 1
  5. Metodo statico per calcolare il perimetro

import java.util.*;
 
public class Rettangolo
{
	//Attributi
	private double base, altezza;
 
	//Costruttore
	public Rettangolo() //Costruttore che inizializza una base e un'altezza di default
	{
		base = 1;
		altezza = 1;
		stampa("Base: "+base+", Altezza: "+altezza);
	}
 
	//Metodi
	public void setBase(double tbase) //Assegnazione di un valore alla base
	{
		base = tbase;
	}
 
	public double getBase() //Prelevamento del valore della base
	{
		return base;
	}
 
	public void setAltezza(double taltezza) //Assegnazione di un valore all'altezza
	{
		altezza = taltezza;
	}
 
	public double getAltezza() //Prelevamento del valore dell'altezza
	{
		return altezza;
	}
 
	public void getBaseEAltezzaDaTastiera()
	{
		//Oggetto per la gestione dell'input da tastiera
		Scanner in = new Scanner(System.in);
 
		//Stampa di un messaggio e richiesta del valore della base
		stampa("Inserisci il valore della base: ");
		base = in.nextDouble();
 
		//Stampa di un messaggio e richiesta del valore dell'altezza
		stampa("Inserisci il valore dell'altezza");
		altezza = in.nextDouble();
	}
 
	//Metodi Statici
	public static void stampa(String s) //Metodo per la stampa del testo
	{
		System.out.println(s);
	}
 
	public static double perimetro(double base, double altezza) //Metodo per il calcolo del perimetro dati base e altezza
	{
		return (base * 2) + (altezza * 2);
	}
 
	public static double area(double base, double altezza) //Metodo per il calcolo dell'area dati base e altezza
	{
		return base * altezza;
	}
 
	public static double diagonale(double base, double altezza) //Metodo per il calcolo della diagonale dati base e altezza
	{
		return Math.sqrt(Math.pow(base, 2) + Math.pow(altezza, 2));
	}
}

Per fare una prova potete scrivere un main molto semplice come questo:

public static void main(String[] argv)
{
	Rettangolo r = new Rettangolo();
	Rettangolo.stampa( ""+Rettangolo.diagonale(r.getBase(), r.getAltezza()) );
}

About the Author

Hello everyone! I'm Andrea Rastelli, a 23 year old programmer, designer, 3D animator and compositor. You may follow me on Twitter and Facebook