如何对指定的int值求平方?

时间:2016-10-10 21:56:20

标签: java methods constructor static

我得到一个错误说"价值无法解决"

public static MyInt square(MyInt a) {
    double sqred = a.value;
    MyInt sqrObjt = new MyInt(sqred);

    return sqrObjt;
}

这是我的构造函数

public MyInt(int value){
    this.value = value;
}

3 个答案:

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