我是Java的新手,现在阅读完全盾参考书第9版。
我写了下一个代码:
class Area {
double Area (double x, double y){
double z;
this.z = 5; // Problem 1
return z = x*y;
};
}
class ThisIsSparta {
public static void main (String args []){
double x = 10;
double y = 5;
double z = 0;
Area result = new Area (x,y); //Problem 2
z = result.Area(x, y);
System.out.println("Test " + z);
}
}
问题1:我无法理解“这个”的目的,我认为它是对有呼叫类的对象的引用。所以在我看来我应该返回主要与z = 5.相反我得到一个错误(编译器不通过它)。
问题2:在一本书的例子中,在声明期间使用两个参数调用构造函数,但在我的情况下,编译器不允许这样做。是的,我可以在下一行做到,但我不明白出了什么问题。
问题1:this
指的是当前对象。在你的情况下,它是Area
的一个对象。
阅读更多:What is the meaning of "this" in Java?
问题2:您尚未定义任何带有两个参数的构造函数。 double Area (double x, double y)
不是构造函数的正确签名,因为它包含返回类型为double
。
在这里阅读更多内容:Why do constructors not return values?