我得到一个错误说"价值无法解决"
public static MyInt square(MyInt a) {
double sqred = a.value;
MyInt sqrObjt = new MyInt(sqred);
return sqrObjt;
}
这是我的构造函数
public MyInt(int value){
this.value = value;
}
答案 0 :(得分:2)
我认为这里的静态方法不是类MyInt
。您可能不希望使用公共静态方法,这是一种更加程序化的方法,而不是面向对象的方法。而是将非静态方法添加到类MyInt
:
public MyInt square() {
return new MyInt(this.value * this.value);
}
用法:
MyInt squared = someMyInt.square();
答案 1 :(得分:1)
确保已在MyInt类中声明了int字段值。还要确保在square方法中将double转换为整数。它对我来说很好。
public class MyInt {
int value; // make sure you don't forget to declare the field
public static MyInt square(MyInt a) {
double sqred = a.value; // you could've just done int sqred = a.value * a.value rather than have a double
MyInt sqrObjt = new MyInt((int) sqred); // don't forget to cast sqred to int
return sqrObjt;
}
public MyInt(int value){
this.value = value;
}
public static void main(String[] args) {
MyInt four = new MyInt(4);
MyInt fourSquares = square(four);
System.out.println(fourSquares.value);
}
}
答案 2 :(得分:0)
我想你的主要问题是你在课堂上的任何时候都没有声明absolute
。但我扩展了@junvar给出的答案,包括用于封装的getter和setter。我就是这样做的....
value