Так что я некоторое время работал над этим кодом, и он немного потерян. Имейте в виду, что я чрезвычайно новичок в Java, и поэтому я немного медленен в освоении. Я создал классы фигур, которые реализуют интерфейс с методами getArea, getPerimeter и getDescription. Есть несколько форм, но проблема не в этом. Проблема возникает, когда я пытаюсь реализовать варианты переключения, чтобы пользователь мог выбрать, какую форму он или она хочет добавить. Я получаю одно и то же сообщение столько раз, сколько Массив фигур позволит добавить адрес Формы, который я пытаюсь добавить. Я понимаю, что ошибка, которую я совершаю, скорее всего, новичок, я был бы очень признателен за помощь, спасибо. Также, если бы вы могли дать мне подсказку о том, как сортировать фигуры по их области, это было бы очень полезно.
public class ShapeApp2 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Shape[] test = new Shape[10];
System.out.println("Choose a shape or type stop to break away?");
Scanner sc = new Scanner(System.in);
String Shape = sc.nextLine();
for (int i=0; i<test.length; i++) {
switch (Shape) {
case "Rectangle":
System.out.println("You have chosen a Rectangle");
test[i] = new Rectangle();
System.out.println("Enter another one now");
break;
case "Square":
System.out.println("You have chosen a Square");
test[i] = new Square();
System.out.println("Enter another one now");
break;
case "Equilateral Triangle":
System.out.println("You have chosen an Equilateral Triangle");
test[i] = new Equilateral_Triangle();
System.out.println("Enter another one now");
break;
case "Right Triangle":
System.out.println("You have chosen a Right Triangle");
test[i] = new Right_Triangle();
System.out.println("Enter another one now");
break;
case "Isosceles Triangle":
System.out.println("You have chosen an Isosceles Triangle");
test[i] = new Isosceles_Triangle();
System.out.println("Enter another one now");
break;
case "Scalene Triangle":
System.out.println("You have chosen a Scalene Triangle");
test[i] = new Scalene_Triangle();
System.out.println("Enter another one now");
break;
case "Stop":
break;
}
System.out.println(test[i]);
}
}
}
Также вот пара классов Shape для контекста.
package shapeapp2;
/**
*
* @author my-pc
*/
public class Rectangle implements Shape {
private double length;
private double width;
private String shapeName;
public Rectangle(){
length = 4.0;
width = 5.0;
shapeName = "Rectangle";
}
public double getArea(){
double Area;
Area = length * width;
return Area;
}
public double getPerimeter() {
double Perimeter;
Perimeter = (2*length) + (2*width);
return Perimeter;
}
public String getDescription() {
return shapeName;
}
}
package shapeapp2;
/**
*
* @author my-pc
*/
public class Square implements Shape {
private double length;
private double width;
private String shapeName;
public Square(){
length = 8.0;
width = 8.0;
shapeName = "Square";
}
public double getArea(){
double Area;
Area = length * width;
return Area;
}
public double getPerimeter() {
double Perimeter;
Perimeter = (2*length) + (2*width);
return Perimeter;
}
public String getDescription() {
return shapeName;
}
}