我真的希望有人可以帮助我,因为我一直坐着看着这个问题几个小时,我认为这只是一个缺失的细节......但不确定。
我已经定义了一个三角形类,它应该采用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;
^
任何想法我做错了什么?
答案 0 :(得分:5)
作业&函数调用正在执行错误。
sideA = userTriangle.getSideA();
^parens necessary when calling function
<---------- (value assigned from right to left)
分配从右到左进行。
此外,您班级中的私有变量未设置。你不会得到预期的结果。使用
在构造函数中设置实例变量this.<pvt_var> = value_passed_to_constructor;
答案 1 :(得分:2)
鉴于x1
,x2
,x3
,y1
,y2
和y3
是变量并且已分配了值,您应该执行此操作这样:
Triangle userTriangle = new Triangle(x1, x2, x3, y1, y2, y3);
double sideA = userTriangle.getSideA();
答案 2 :(得分:2)
在您的代码中,getSideA
是一项功能,因此您无法拨打userTriangle.getSideA
,您需要致电userTriangle.getSideA()
要么获得sideA
,在这种情况下你应该写
sideA = userTriangle.getSideA()
要么设置三角形的sideA
,在这种情况下,您应该编写setSideA()
方法并将其称为:
userTriangle.setSideA(sideA)
答案 3 :(得分: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;
}
答案 4 :(得分:1)
您必须在构造函数中设置x1,x2,x3,y1,y2,y3。
答案 5 :(得分:1)
userTriangle.getSideA = sideA;
应该是
sideA = userTriangle.getSideA();
答案 6 :(得分: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;
}