如何在类中定义java方法?

时间:2012-11-11 14:10:26

标签: java class methods

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

我已经定义了一个三角形类,它应该采用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;
                 ^

任何想法我做错了什么?

7 个答案:

答案 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)

鉴于x1x2x3y1y2y3是变量并且已分配了值,您应该执行此操作这样:

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;

    }