Olá, sou iniciante em POO e preciso de ajuda num programa que estou a fazer:
Enunciado:Crie a classe Polígono, que usa a classe Ponto( cada ponto tem x e y como coordenadas) das perguntas anteriores. Um Polígono é composto é uma sequência de pontos (implemente usando um array), os vértices, ligados por arestas (não é necessário representar na classe). Implemente os construtores e os métodos (e.g., print, perímetro, sets e gets, adicionar/remover ponto, deslocar polígono, etc) adequados de forma a satisfazer o maior número de utilizadores da classe (programadores que vão usar a classe). Implemente um pequeno programa (main) para testar a classe Polígono e os seus métodos.
Classe Polígono:
public class Polígono {
private int pontos;
public Polígono(int pontos){
int[] x=new int[pontos];
int[] y=new int[pontos];
}
}
Main:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("Indique quantos pontos tem o polígono: ");
int pontos=input.nextInt();
Polígono p=new Polígono(pontos);
for(int i=0;i<pontos;i++){
System.out.println("Indique a coordenada de x:");
System.out.println("Indique a coordenada de y:");
}
}
}
As minhas dúvidas são: como faço para o utilizador ao dar as coordenadas de x e y e estas serem passadas para a classe Poligono e posteriormente como faço para adicionar e remover pontos visto que o polígono tem tamanho definido desde início e pelo que sei este não pode ser alterado.
Obrigada desde já
Talvez ajude a esclarecer a minha dúvida inicial:
public class Ponto2D {
private float x;
private float y;
public Ponto2D(float x, float y) {
this.x = x;
this.y = y;
}
public float getX() {
return x;
}
public float getY() {
return y;
}
Isto é o código da classe Ponto de questões anteriores, será que tenho de usar classes aninhadas? O meu objetivo é que o utilizador informe as coordenadas dos pontos e estas sejam armazenadas no objeto Polígono para cada ponto criado.
1 curtida
Seu enunciado está assim:
Crie a classe Polígono, que usa a classe Ponto( cada ponto tem x e y como coordenadas) das perguntas anteriores. Um Polígono é composto é uma sequência de pontos (implemente usando um array), os vértices, ligados por arestas (não é necessário representar na classe).
Mas você criou a classe assim:
public class Polígono {
private int pontos;
public Polígono(int pontos){
int[] x=new int[pontos];
int[] y=new int[pontos];
}
}
O certo seria você criar um array de Ponto
e não um array de int
.
Eu faria assim:
public class Polígono {
private Ponto[] pontos;
public Polígono(Ponto... pontos){
this.pontos = pontos;
}
}
Seu enunciado diz pra você criar uma classe Ponto
, mas você criou Ponto2D
1 curtida
Como parâmetro da função Polígono é suposto passar o array de pontos? As reticências têm algum significado?
Polígono não é uma função, é uma classe.
As reticências indicam parâmetro opcional, funciona semelhante à um array, mas é mais prático na hora de passar os parâmetros
Se você declara o parâmetro como sendo do tipo array:
public Polígono(Ponto[] pontos)
Você vai ter que passar os parâmetros assim:
Poligono p = new Polígono( new Ponto[] { new Ponto(x1, y1), new Ponto(x2, y2), new Ponto(x3, y3), new Ponto(xN, yN) } );
Se você declara como sendo parâmetros opcionais:
public Polígono(Ponto... pontos)
Aí pode invocar assim:
Poligono p = new Polígono( new Ponto(x1, y1), new Ponto(x2, y2), new Ponto(x3, y3), new Ponto(xN, yN) );
1 curtida