java构造函数不接受通过它传递的参数

fwzugrvs  于 2021-07-12  发布在  Java
关注(0)|答案(2)|浏览(503)

**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

昨天关门了。
改进这个问题

public abstract class shape {
    protected double volume;
    protected double surface;
}

public class cube extends shape {
    public double side;
    public double newSide;

    public cube(double side) {
        side = newSide;
    }

    public void volume(double newSide){
        System.out.println (newSide);
    }
}

public class shapes {
    public static void main(String[] args) {
        cube a = new cube(5);
        a.volume();
    }
}

这将输出错误:

constructor cube in class cube cannot be applied to given types;
cube a = new cube(5.5);
required: double
found:    no arguments
reason: actual and formal argument lists differ in length

我把所有的变量都设置为double,所以不知道它为什么抱怨。

ekqde3dh

ekqde3dh1#

首先,你的构造函数是错误的。应该是的

public cube(double side) {
        this.side = side;
    }

你得到这个错误是因为你为volume设置了一个参数-

public void volume(double newSide){
        System.out.println (newSide);
    }

把它改成

public void volume(){
    System.out.println(side);
}

在java中,您应该始终将类名大写。应该是立方体。

nzrxty8p

nzrxty8p2#

由于您没有通过继承shape类做任何事情,因此我忽略了该类。
正如jordankobewade所说,您在构造函数中错误地进行了赋值,并且还用参数声明了volume方法,但调用时没有参数。那你就错了。
如果您只是想将一个值传递给另一个类并打印它,那么下面的代码就可以了。
多维数据集.java

public class Cube {

public double side;

public Cube(double side) {
    this.side = side;
}

public void volume(){
    System.out.println (side);
}

}

和shapes.java

public class Shapes {

public static void main(String[] args) {
    Cube a = new Cube(5);
    a.volume();
}
}

相关问题