2

我真的希望有人能帮助我,因为我已经坐了几个小时看着这个问题,我认为这只是一个缺失的细节......但不确定。

我已经定义了一个三角形类,它应该采用 3 (x,y) 坐标,并从中计算边长、角和面积。该类如下所示:

   public class Triangle {
        private double x1, x2, x3, y1, y2, y3;
        double sideA, sideB, sideC;
        private double angleA, angleB, angleC;

        public Triangle(double x1, double y1, double x2, 
            double y2, double x3, double y3) {
        }

        public double getSideA() {
            return (Math.sqrt(Math.pow((x3-x2),2)+Math.pow((y3-y2),2)));
        }
    }

现在我想在我的 Interaction 类中调用我的 getSideA 方法。我已经定义了我的坐标变量,它们从扫描方法中获取它们的值。我还定义了一个变量 sideA,我想从我的 getSideA 方法中获取值。这就是我的做法:

Triangle userTriangle = new Triangle(x1, x2, x3, y1, y2, y3);   

 userTriangle.getSideA = sideA;

当我尝试编译 Interaction 类时,我收到以下错误代码:

Interaction.java:79: cannot find symbol
symbol  : variable getSideA
location: class Triangle
     userTriangle.getSideA = sideA;
                 ^

任何想法我做错了什么?

4

7 回答 7

5

分配和函数调用执行不正确

sideA =  userTriangle.getSideA();
                               ^parens necessary when calling function

    <---------- (value assigned from right to left)

赋值从右到左进行。


此外,您的班级中的私有变量没有被设置。你不会得到预期的结果。构造函数中设置实例变量,使用

this.<pvt_var> = value_passed_to_constructor;
于 2012-11-11T14:13:23.457 回答
2

鉴于 , x1, x2, x3,y1y2y3变量并且已经被赋值,你应该这样做:

Triangle userTriangle = new Triangle(x1, x2, x3, y1, y2, y3); 
double sideA = userTriangle.getSideA();
于 2012-11-11T14:13:57.487 回答
2

在你的代码中,getSideA是一个函数,所以你不能只调用userTriangle.getSideA,你需要调用userTriangle.getSideA()

要么你想得到sideA,在这种情况下你应该写

sideA = userTriangle.getSideA()

要么你想设置你的三角形sideA,在这种情况下你应该写一个setSideA()方法并像这样调用它:

userTriangle.setSideA(sideA)
于 2012-11-11T14:14:30.213 回答
1

首先,编译错误,因为应该是

double sideA = userTriangle.getSideA();  

你的构造函数也有问题。它应该是这样的

public Triangle(double x1, double y1, double x2, double y2, double x3, double y3)
    {
       this.x1 = x1;
       this.y1 = y1;
       this.x2 = x2;
       this.y2 = y2;
       this.x3 = x3;
       this.y3 = y3;

    }
于 2012-11-11T14:12:42.103 回答
1

您必须在构造函数中设置 x1、x2、x3、y1、y2、y3。

于 2012-11-11T14:12:55.533 回答
1
userTriangle.getSideA = sideA;

应该

sideA = userTriangle.getSideA();
于 2012-11-11T14:13:10.027 回答
1

userTriangle.getSideA = sideA;是不正确的

尝试这个:

double sideA= userTriangle.getSideA();

构造函数应该是:

public Triangle(double x1, double y1, double x2, double y2, double x3, double y3)
    {
       this.x1 = x1;
       this.y1 = y1;
       this.x2 = x2;
       this.y2 = y2;
       this.x3 = x3;
       this.y3 = y3;

    }
于 2012-11-11T14:13:29.870 回答