JAVALAB#002 – Lezione ripasso + Esercizi

Costruzione della classe Palla e definizione di attributo, metodo e costruttore di una classe.
Suddivisione della struttura del codice su due file:
Lab_20081114.java
Palla.java

// - Lab_20081114.java
public class Lab_20081114
{
	public static void main(String[] argv)
	{
		Palla p = new Palla( 5, "Rosso", "Plastica");
		Palla q = new Palla(10, "Verde", "Ghisa");
 
		System.out.println("-------------------");
 
		p.assegnaRaggio(20);
 
		System.out.println("Raggio della palla P: " + p.prendiRaggio());
		System.out.println("Colore della palla P: " + p.prendiColore());
 
		System.out.println("\n\nRaggio della palla Q: " + q.prendiRaggio());
		System.out.println("Colore della palla Q: " + q.prendiColore());
	}
}
// - Palla.java
class Palla
{
	//ATTRIBUTI
	int raggio;
	String materiale;
	String colore;
 
	//COSTRUTTORE
	public Palla(int t_raggio, String t_colore, String t_materiale)
	{
		raggio = t_raggio;
		colore = t_colore;
		materiale = t_materiale;
		System.out.println("Oggetto Palla Creato");
	}
 
	//METODI
	public int prendiRaggio()
	{
		return raggio; //Valore di ritorno del metodo prendiRaggio
	}
 
	public void assegnaRaggio(int temp_raggio)
	{
		raggio = temp_raggio;
	}
 
	public String prendiColore()
	{
		return colore;
	}
 
	public void assegnaColore(String temp_colore)
	{
		colore = temp_colore;
	}
}

Definizione della classe Rettangolo con i metodi per il calcolo della diagonale, del perimetro e dell’area, a partire dall’impostazione di base e altezza.
Lab_20081114_2.java

// --- MAIN
public class Lab_20081114_2
{
	public static void main(String[] argv)
	{
		Rettangolo r = new Rettangolo();
		r.assegnaBase(14);
		r.assegnaAltezza(11);
 
		System.out.println("La diagonale è: "+r.calcolaDiagonale());
		System.out.println("L'area è: "+r.calcolaArea());
		System.out.println("Il perimetro è: "+r.calcolaPerimetro());
	}
}
 
// --- CLASSE RETTANGOLO
class Rettangolo
{
	//ATTRIBUTI
	int base;
	int altezza;
 
	//COSTRUTTORE
	//---------------------
 
	//METODI
	public void assegnaBase(int temp_base)
	{
		base = temp_base;
	}
 
	public int prendiBase()
	{
		return base;
	}
 
	public void assegnaAltezza(int temp_altezza)
	{
		altezza = temp_altezza;
	}
 
	public int prendiAltezza()
	{
		return altezza;
	}
 
	//Metodo di calcolo della diagonale
	public double calcolaDiagonale()
	{
		int a = (base*base) + (altezza*altezza);
		diagonale = Math.sqrt(a);
		return diagonale;
	}
 
	//Metodo di calcolo del perimetro
	public int calcolaPerimetro()
	{
		int perimetro = (base+altezza) * 2;
		return perimetro;
	}
 
	//Metodo di calcolo dell'area
	public int calcolaArea()
	{
		int area = base * altezza;
		return area;
	}
}

Implementazione di prime funzionalità di diegno su terminale, a partire dall’eleborazione del concetto di “matrice di punti” e scrittura del codice per il disegno di un cerchio di caratteri.
LabDrawCircle.java

public class LabDrawCircle
{
	public static void main(String[] argv)
	{
		int[][] m = new int[50][50];
 
		//Disegno della circonferenza
		for (int i=0; i<360; i++)
		{
			int i_x = (int)(20 * Math.cos( Math.toRadians(i) ));
			int i_y = (int)(13 * Math.sin( Math.toRadians(i) ));
 
			i_x = 20 + i_x;
			i_y = 20 + i_y;
 
			m[i_y][i_x] = 1;
		}
 
		//Stampa della matrice
		for (int i=0; i<m.length; i++)
		{
			for (int j=0; j<m[i].length; j++)
			{
				if (m[i][j] == 1)
					System.out.print("#");
				else
					System.out.print(" ");
			}
			System.out.println();
		}
	}
}

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