我无法将输入从对象数组传递到java方法

我无法将输入从对象数组传递到java方法,java,arrays,object,input,methods,Java,Arrays,Object,Input,Methods,我正在制作一个java程序来计算三角形和正方形的面积和周长,我需要创建一个三角形和正方形类的对象,并从中获取输入。我已经为它编写了一些代码,但它没有将输入作为参数。我不明白可能是什么问题。请帮忙 geometricFigure.java-这是一个接口 public interface GeometricFigure { public void area(double sideOne, double sideTwo, double sideThree); public void p

我正在制作一个java程序来计算三角形和正方形的面积和周长,我需要创建一个三角形和正方形类的对象,并从中获取输入。我已经为它编写了一些代码,但它没有将输入作为参数。我不明白可能是什么问题。请帮忙

geometricFigure.java-这是一个接口

public interface GeometricFigure {
    public void area(double sideOne, double sideTwo, double sideThree);
    public void perimeter(double sideOne, double sideTwo, double sideThree);
    public void print();
}

java-这是具有main函数的文件

public class trisqu{
public static void main(String[] args) {
double sideOne, sideTwo , sideThree;
 //Triangle tr = new GeometricFigure();
Triangle[] tr = new Triangle[3];
tr[0] = new Triangle(4,9,12);
tr[1] = new Triangle(9,16,25);
tr[2] = new Triangle(8,12,14);
for (int i=0;i<tr.length;i++){
    System.out.println("Triangle Object :"+(i+1)+" ");
    tr[i].area(sideOne, sideTwo, sideThree);
    tr[i].perimeter(sideOne, sideTwo, sideThree);
    tr[i].print();
    }



//Square sq = new GeometricFigure();
Square[] sq = new Square[3];
sq[0] = new Square(8);
sq[1] = new Square(32);
sq[2] = new Square(16);
for (int i=0;i<sq.length;i++){
    System.out.println("Square Object : "+(i+1)+ " ");
    sq[i].area(sideOne, sideTwo, sideThree);
    sq[i].perimeter(sideOne, sideTwo, sideThree);
    sq[i].print();
    }
  }
}
java-这是试验的文件`

import java.lang.Math;


public class Triangle implements GeometricFigure{
private double sideOne, sideTwo, sideThree,TriArea,TriPerimeter;
public Triangle(double sideOne, double sideTwo, double sideThree){
    
}
double halfp = (sideOne + sideTwo + sideThree)/2;
@Override
public void area(double sideOne, double sideTwo, double sideThree){
    TriArea = Math.sqrt(halfp*(halfp - sideOne)*(halfp - sideTwo)*(halfp - sideThree));
}

@Override
public void perimeter(double sideOne, double sideTwo, double sideThree){
    TriPerimeter = sideOne + sideTwo + sideThree;
}

@Override
public void print(){
System.out.print("Area = "+TriArea+" Perimeter = "+TriPerimeter);
System.out.println("\n");
}

}

请帮助我,我是java初学者或任何语言。

< P>有很多事情要考虑。< /P> 首先,我相信您使用接口的方式是错误的,在我看来,接口应该描述行为(因此这里的抽象类更可取,因为实现接口的类已经具有对象的值,所以不需要传递它们)

其次,您将参数传递给构造函数,但没有将它们分配给类属性,这是一个问题

第三,当您在main中传递
sideOne、sideTwo、sideTwo
参数时,它们还没有初始化,但是最重要的是您根本不需要传递它们

总之,我向你推荐这样的东西:

public interface GeometricFigure {
    public double getArea();
    public double getPerimeter();
    public void print();
}

接下来,实现它的类应该如下所示:

public class Square implements GeometricFigure {
    private double side; // note that I have removed the area and perimeter variables

    Square(double side) {
        this.side = side;
    }

    @Override
    public double getArea() {
        return side * side;
    }

    @Override
    public double getPerimeter() {
        return side * 4;
    }

    @Override
    public void print() {
        System.out.print("Area = " + getArea() + " Perimeter = " + getPerimeter());
        System.out.println("\n");
    }
}
   for (int i=0;i<sq.length;i++){
       System.out.println("Square Object : "+(i+1)+ " \n" + sq[i]);
   }
请注意,类的结构已更改。这样做的目的是,当侧面发生变化时(如果可能的话),我们不需要更新
区域
周长
属性

我相信你可以自己做三角形的事情

现在主要部分是:

public static void main(String[] args) {
        Triangle[] tr = new Triangle[3];
        tr[0] = new Triangle(4,9,12);
        tr[1] = new Triangle(9,16,25);
        tr[2] = new Triangle(8,12,14);
        for (int i=0;i<tr.length;i++){
            System.out.println("Triangle Object :"+(i+1)+" ");
            tr[i].print();
        }

        Square[] sq = new Square[3];
        sq[0] = new Square(8);
        sq[1] = new Square(32);
        sq[2] = new Square(16);
        for (int i=0;i<sq.length;i++){
            System.out.println("Square Object : "+(i+1)+ " ");
            sq[i].print();
        }
    }
然后大体上只需做以下几点:

public class Square implements GeometricFigure {
    private double side; // note that I have removed the area and perimeter variables

    Square(double side) {
        this.side = side;
    }

    @Override
    public double getArea() {
        return side * side;
    }

    @Override
    public double getPerimeter() {
        return side * 4;
    }

    @Override
    public void print() {
        System.out.print("Area = " + getArea() + " Perimeter = " + getPerimeter());
        System.out.println("\n");
    }
}
   for (int i=0;i<sq.length;i++){
       System.out.println("Square Object : "+(i+1)+ " \n" + sq[i]);
   }

for(int i=0;i@MayankSharma不客气,先生,如果您对答案满意,请将其标记为选定答案