Buscar

lab4 2 lab

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNESP/FEG/DMA	
Programação	de	Computadores	II	-	Prof.	Senne	
Aula	de	Laboratório	4.2		
ATENÇÃO:	Não	esquecer	de	incluir	os	nomes	dos	alunos	da	turma	em	cada	classe.		
Atividade	1.	Considere	a	seguinte	hierarquia	de	classes:	
 
Quadrilatero	
−	Ponto	A,	B,	C,	D	+	Quadrilatero(Ponto	a,	Ponto	b,	Ponto	c,	Ponto	d)	
.	.	.	+	double	calcularPerimetro()	+	final	boolean	umRetangulo()	+	final	boolean	umQuadrado()	+	final	String	mostrarFigura()	
 
 
Retangulo	
−	Ponto	A,	B,	C,	D	+	Retangulo(Ponto	a,	Ponto	b,	Ponto	c,	Ponto	d)	+	double	calcularDiagonal()	+	double	calcularArea()	
 
 
Quadrado	
−	Ponto	A,	B,	C,	D	+	Quadrado(Ponto	a,	Ponto	b,	Ponto	c,	Ponto	d)	+	Ponto	centro()		onde	Ponto	é	a	classe:		
Ponto	
−	double	X,	Y	+	Ponto(double	x,	double	y)	
.	.	.	+	double	distancia(Ponto	p)	+	String	mostrarPonto()		Para	a	codificação	dessas	classes,	observar	os	seguintes	pontos:		
– As		reticências	(.	.	.)	representam	os	getters	e	setters	da	classe.	
– Somente	os	getters	e	setters	podem	acessar	diretamente	os	campos	da	classe.	
– Nenhum	outro	método	deve	ser	incluído	nas	classes,	além	dos	getters	e	setters	nas	classes	
Quadrilatero	e	Ponto.	
– Os	campos	privados	da	classe	Quadrilatero	representam	os	4	pontos	que	definem	um	quadrilátero	A-B-C-D,	ou	seja,	o	quadrilátero	é	formado	pelos	segmentos	de	reta	AB,	BC,	CD	e	DA.	
– O	método	mostrarFigura()	deve	retornar	um	string	da	forma:		
Figura: (A.X; A.Y) (B.X; B.Y) (C.X; C.Y) (D.X; D.Y) é um xxxxxx 
 
 2 
			 onde	xxxxxx	deve	ser	"Quadrilatero",	"Retangulo"	ou	"Quadrado".		
– O	 construtor	 da	 classe	 Retangulo	 deve	 assegurar	 que	 seus	 parâmetros	 realmente	formem	um	retângulo.	Caso	contrário,	deve	construir	um	retângulo	com	vértices	0-0-0-0.	
– O	construtor	da	classe	Quadrado	deve	assegurar	que	seus	parâmetros	realmente	formem	um	quadrado.	Caso	contrário,	deve	construir	um	quadrado	com	vértices	0-0-0-0.	
– O	método	centro()	deve	retornar	o	ponto	que	representa	o	centro	do	quadrado.	
– O	método	distancia(Ponto	p)	deve	retornar	o	valor	de:			
Math.hypot(getX()-p.getX(),getY()-p.getY()) 		
Atividade	 2.	 Construir	 a	 seguinte	 classe	 executável	 Lab42	 para	 verificar	 se	 a	 saída	corresponde	à	mostrada	abaixo:		
Lab42.java	
	
public class Lab42 
{ 
 public static void main(String[] args) 
 { 
 Ponto A = new Ponto(1,11); 
 Ponto B = new Ponto(7,9); 
 Ponto C = new Ponto(4,4); 
 Ponto D = new Ponto(1,4); 
 Quadrilatero q = new Quadrilatero(A,B,C,D); 
 System.out.println(q.mostrarFigura()); 
 System.out.printf("Perimetro = %.2f\n",q.calcularPerimetro()); 
 
 Ponto E = new Ponto(1,7); 
 Ponto F = new Ponto(4,7); 
 Quadrado s = new Quadrado(E,F,C,D); 
 System.out.println(s.mostrarFigura()); 
 System.out.printf("Centro = %s\n",s.centro().mostrarPonto()); 
 
 if (s.umRetangulo()) 
 { 
 Retangulo r = s; 
 System.out.println(r.mostrarFigura()); 
 System.out.printf("Diagonal = %.2f\n",r.calcularDiagonal()); 
 System.out.printf("Area = %.2f\n",r.calcularArea()); 
 } 
 } 
} 	
Saída:	
	
Figura: (1,0; 11,0) (7,0; 9,0) (4,0; 4,0) (1,0; 4,0) é um Quadrilatero 
Perimetro = 22.16 
Figura: (1,0; 7,0) (4,0; 7,0) (4,0; 4,0) (1,0; 4,0) é um Quadrado 
Centro = (1,5; 1,5) 
Figura: (1,0; 7,0) (4,0; 7,0) (4,0; 4,0) (1,0; 4,0) é um Quadrado 
Diagonal = 4.24 
Area = 9.00

Outros materiais