Imaginsystems


Tecniche di Programmazione - Codici Sorgenti - News Informatiche
Archivio Posts
Anno 2014

Anno 2013

Anno 2012
Statistiche
  • Views Home Page: 71.612
  • Views Posts: 542.451
  • Views Gallerie: 0
  • n° Posts: 210
  • n° Commenti: 224

JAVA - Esercizio n.1 di Programmazione Orientata agli Oggetti (POO)

JAVA -   Esercizio n.1 di Programmazione Orientata agli Oggetti (POO) 


Esercizio per il corso di Programmazione Orientata agli Oggetti (POO) , Uni Roma Tre .
L'obbiettivo dell'esercizio traslare contemporaneamente forme diverse esempio : Cerchio, Punto, Rettangolo .

CODICE JAVA : (File : GruppoDiForme.java )
public class GruppoDiForme implements Forma{
	
	private Forma[] forme;
	private int numeroForme;
	
	public GruppoDiForme(){
		this.numeroForme = 0;
		this.forme = new Forma[10];
	}
	
	public void aggiungiForma(Forma forma){
		this.forme[numeroForme] = forma;
	 	this.numeroForme++;
	}
	
	public void Trasla(int deltaX, int deltaY){
		for(int i =0;i<this.numeroForme; i++){
			this.forme[i].Trasla(deltaX, deltaY);
		}
	};

}
 CODICE JAVA : (File : Forma.java )
public interface Forma {
	public void Trasla(int deltaX, int deltaY);
}
 CODICE JAVA : (File : Punto.java )
public class Punto implements Forma {
	private int x;
	private int y;

	public Punto(int x,int y){
		this.x = x;
		this.y = y;
	}
	
	public int getX() {
		return this.x;
	}

	public void setX(int x) {
		this.x = x;
	}

	public int getY() {
		return this.y;
	}

	public void setY(int y) {
		this.y = y;
	}

	public void Trasla(int deltaX, int deltaY){
		this.x = this.x + deltaX;
		this.y = this.y + deltaY;
	};
}
CODICE JAVA : (File : Cerchio.java )
public class Cerchio implements Forma{
	private Punto centro;
	private int raggio;
	
	public Cerchio(Punto centro,int raggio){
	        this.centro = new Punto(centro.getX(), centro.getY());
		this.raggio = raggio;
	}
	
	public Punto getCentro() {
		return this.centro;
	}


	public void setCentro(Punto centro) {
		this.centro = centro;
	}


	public int getRaggio() {
		return this.raggio;
	}


	public void setRaggio(int raggio) {
		this.raggio = raggio;
	}


	public void Trasla(int deltaX, int deltaY){
		this.centro.setX(this.centro.getX() + deltaX);
		this.centro.setY(this.centro.getY() + deltaY);
	};
}
CODICE JAVA : (File : Rettangolo.java )
public class Rettangolo implements Forma{
	private Punto vertice;
	private int altezza;
	private int base;
	
	public Rettangolo(Punto vertice, int altezza, int base ){
		this.vertice = new Punto(vertice.getX(), vertice.getY());
		this.base = base;
		this.altezza = altezza;
	}
	

	public Punto getVertice() {
		return this.vertice;
	}


	public void setVertice(Punto vertice) {
		this.vertice = vertice;
	}


	public int getAltezza() {
		return this.altezza;
	}


	public void setAltezza(int altezza) {
		this.altezza = altezza;
	}


	public int getBase() {
		return this.base;
	}


	public void setBase(int base) {
		this.base = base;
	}


	public void Trasla(int deltaX, int deltaY){
            this.vertice.setX(this.vertice.getX() + deltaX);
	    this.vertice.setY(this.vertice.getY() + deltaY);
	};
}
CODICE JAVA : (File : GruppoDiFormeTest.java - La classe Test per verificare che tutto funzioni correttamente )
import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;


public class GruppoDiFormeTest {
	
	private Punto origine;
	private Punto p1;
	private Cerchio c1;
	private Cerchio c2;
	private Rettangolo r1;
	
	private GruppoDiForme gruppoSemplice;
	private GruppoDiForme gruppoComposto;
	
	@Before 
	public void setUp() throws Exception{
		

		this.origine = new Punto(0,0);
		this.p1 = new Punto(2,3);
		this.c1 = new Cerchio(origine,1);
		this.r1 = new Rettangolo(p1,3,4);
		
		this.gruppoSemplice = new GruppoDiForme();
		this.gruppoSemplice.aggiungiForma(c1);
		this.gruppoSemplice.aggiungiForma(r1);
		this.gruppoSemplice.aggiungiForma(p1);
		this.gruppoSemplice.aggiungiForma(origine);
		
		
		this.c2 = new Cerchio(p1,4);
		this.gruppoComposto = new GruppoDiForme();
		this.gruppoComposto.aggiungiForma(c2);
		this.gruppoComposto.aggiungiForma(gruppoSemplice);
		
	}

	@Test
	public void testTrasla_gruppoSemplice() {
		this.gruppoSemplice.Trasla(1, 1);
		assertEquals(this.c1.getCentro().getX(),1);
		assertEquals(this.c1.getCentro().getY(),1);
		assertEquals(this.c1.getRaggio(),1);
		assertEquals(this.r1.getVertice().getX(),3);
		assertEquals(this.r1.getVertice().getY(),4);
		assertEquals(this.r1.getAltezza(),3);
		assertEquals(this.r1.getBase(),4);
		assertEquals(this.origine.getX(),1);
		assertEquals(this.origine.getY(),1);
		assertEquals(this.p1.getX(),3);
		assertEquals(this.p1.getY(),4);

	}
	
	@Test
	public void testTrasla_gruppoComposto() {
		this.gruppoComposto.Trasla(1, 1);
		assertEquals(this.c1.getCentro().getX(),1);
		assertEquals(this.c1.getCentro().getY(),1);
		assertEquals(this.c1.getRaggio(),1);
		assertEquals(this.r1.getVertice().getX(),3);
		assertEquals(this.r1.getVertice().getY(),4);
		assertEquals(this.r1.getAltezza(),3);
		assertEquals(this.r1.getBase(),4);
		assertEquals(this.origine.getX(),1);
		assertEquals(this.origine.getY(),1);
		assertEquals(this.p1.getX(),3);
		assertEquals(this.p1.getY(),4);
		assertEquals(this.c2.getCentro().getX(),3);
		assertEquals(this.c2.getCentro().getY(),4);
		assertEquals(this.c2.getRaggio(),4);
		
	}

	
}

By ImaginSystems & Queen Gin
Categoria: JAVA
domenica, 14 apr 2013 Ore. 23.48

Messaggi collegati


Ora e Data
Mappa
Blogs Amici
    Copyright © 2002-2007 - Blogs 2.0
    dotNetHell.it | Home Page Blogs
    ASP.NET 2.0 Windows 2003