Ajuda

27 respostas
I

Olá amigos, eu sou iniciado nisto do java, e como tal solicitava a vossa ajuda para resolver este problema que me foi posto num exame.

Considere uma aplicação gráfica de manipulação de figuras. Implemente parte do código, de uma forma robusta, considerando a POO com base no seguinte:

  • Existe uma classe Ponto que aceita dois inteiros, x e Y; que só podem ser positivos;
  • A classe Recta é constituída por dois pontos e devolve informação dos seus pontos em texto;
  • A classe GUI, além de outros métodos, adiciona rectas e um array de rectas (Recta rectas[ ]).

Obg.

Ivan Barroso

27 Respostas

J

Já tentou fazer?

Tenta aí e coloque as duvidas aqui…

[color=“red”]obs.: Topico movido para Java Básico (Iniciantes)[/color]

I

do pouco q sei eu faria assim:

public class Ponto (int x, int y){

x>0;

y>0;

}
public class Recta (P1,P2){

String P1, P2;

}

public class GUI extends rectas(){
}

isto é o pouco que sei, se me poderem ajudar eu agradeço, é que tenho perguntas de poutros exames muito semelhantes e sabendo esta acho que conseguiria fazer as outras.

obg

J

Na realidade essa notação x>0 não existe, tente criar os atributos x e y privados, e crie um metodo getX() e setX() e um getY() e setY(), o get retorna o valor, o set recebe o valor e coloca na variavel… aí dentro do set você coloca a verificação pra ver se o valor passado é positivo…

I

será que pode dar um exemplo

J
public class Ponto{
   private int x;
 
   public void setX(int x){
      if(x<0){
         return;
      }
      this.x = x;
   }

   public int getX(){
      return x;
   }
}
I

Seria então isto?

public class Ponto{
private int x, int y;

public void setX(int x){

if(x<0){

return;

}

this.x = x;

}
public void setY(int y){

if(y<0){

return;

}

this.y = y;

}
public int getX(){

return x;

}

public int getY(){

return y;

}

}

J

public class Ponto{
private int x, int y;

Não coloque o tipo novamente…

public class Ponto{ private int x, y;

I

Esta está concluida, e as outras?

public class Ponto{
private int x, y;

public void setX(int x){ 
if(x&lt;0){ 
return; 
} 
  this.x = x; 
} 

public void setY(int y){ 
if(y&lt;0){ 
return; 
} 
  this.y = y; 
} 


public int getX(){ 
return x; 
} 
public int getY(){ 
return y; 
}

}

J

A classe Recta é a mesma coisa… a outra é onde você fará algum tipo de calculo, apresentação, sei lá… com essas classes…

I

Mas a classe recta devolve informação em texto, como faço isso?

J

É a mesma coisa ué, só que ao inves de int, é String.

I

Aqui não tenho q aplicar o extends para a classe Ponto?

Já agora quais são as formas de implementar comportamentos que n estão implementados?

J

Não tem que usar extends porque uma Recta não é um ponto, ela possui um ponto, então lá dentro da classe tem dois pontos, assim como o Ponto tem dois int…

I

Seria assim a classe Recta?

public class Recta{
private String x, y;

public void setX(String x){

if(x<0){

return;

}

this.x = x;

}

public void setY(String y){

if(y<0){

return;

}

this.y = y;

}
public String getX(){

return x;

}

public String getY(){

return y;

}

}

J

Na realidade não…

Como diz a sua especificação, uma Reta tem dois pontos, então o tipo é Ponto, não String…

I

n percebi, onde coloco?

J

São atributos da classe, assim como o x e o y são atributos de Ponto.

I

public class Recta{
private Ponto x, y;

public void setX(Ponto x){

if(x<0){

return;

}

this.x = x;

}
public void setY(Ponto y){

if(y<0){

return;

}

this.y = y;

}
public Ponto getX(){

return x;

}

public Ponto getY(){

return y;

}

}
I

Acho q assim fará mais sentido:

public class Recta{
private Ponto x, y;

public void setX(String x){

if(x<0){

return;

}

this.x = x;

}
public void setY(String y){

if(y<0){

return;

}

this.y = y;

}
public String getX(){

return x;

}

public String getY(){

return y;

}

}
I

Reparei agora q não posso comparar x com String, nem é pedido, por isso, julgo q a solução será:

public class Recta{
private Ponto x, y;

public void setX(String x){

}

public void setY(String y){

}
public String getX(){

return x;

}

public String getY(){

return y;

}

}

I

Caro Jairelton,

Pode verificar se a segunda parte da questão é assim?

public class Recta(Ponto x, Ponto y){
String recta = x.getX, y.getY;

return recta;
}

Aguardo sua ajuda.
Obrigado.

J

Você quer saber como declarar a classe Recta? Declare uma classe (assim como fez com Ponto) e coloque dois atributos nela, o tipo dos atributos é Ponto, assim como na classe Ponto, o tipo era int…

I

Obrigado! A sua ajuda está sendo muito preciosa. pode verificar se é assim?

public class Recta{
private Ponto x, y;

public void setPontoX(String x){

this.x=x;

}
public void setPontoY(String y){

this.y=y;

}
public String getPontoX(){

return x;

}

public String getPontoY(){

return y;

}

}
J

Sim, só que x e y não são String’s, são Ponto, então o setPontoX() tem que recebe um Ponto, não uma String, e o getPontoX() tem que retornar um Ponto, não uma String… com o y é a mesma coisa…

I

Pois, mas a questão pede para devolver a recta como texto.

Será assim?

public class Recta{
private Ponto x, y;

public void setPontoX(Ponto x){

this.x=x;

}
public void setPontoY(Ponto y){

this.y=y;

}
public String getPontoX(){

return x;

}

public String getPontoY(){

return y;

}

}

Obrigado

J

Isso depende do que quiseram dizer com “devolver como texto”, se fosse eu implementaria o metodo toString() (herdado de Object) e devolveria uma representação da Reta como String…

ex.:

public String toString(){ String str = "("; str += getPontoX().getX(); str += ","; str += ")"; str += "("; str += getPontoY().getY(); str += ","; str += ")"; return str; }

Mas não sei se é isso que querem… analisa aí…

I

OK, deixa para lá…

já agora em relação à ultima questão:

  • A classe GUI, além de outros métodos, adiciona rectas a um array de rectas (Recta rectas[ ]).

Será assim?

Public class GUI{

private void addRectas(GUI r){

rectas.add®;

}

}

Obrigado

Criado 19 de setembro de 2006
Ultima resposta 20 de set. de 2006
Respostas 27
Participantes 2