在线java代码评估程序找不到我的变量

时间:2015-11-05 20:31:34

标签: java class variables

所以我一直在做一些在线学习Java(初学者),我一直在努力创建一个用于制作Rectangle的类文件。但是,我的在线java评估器声明它找不到实例变量。This is the comment on it.我的代码的第一部分说明变量如下所示:

public class Rectangle{

private static int height,width,MAX_WIDTH, MAX_HEIGHT;
private String name;

public static void Rectangle(){

    String name = "default";
    MAX_HEIGHT = 100;
    MAX_WIDTH = 100;
    width = 10;
    height = 10;
}

我无法想到我的代码的任何其他部分会使评估软件看不到它,我相信它不是评估软件中的错误。此变量必须是私有的,以便给我分数。

2 个答案:

答案 0 :(得分:1)

就像你说的,如果你想要一个可以创建Rectangle的类。我会编写类似的代码:

public class Rectangle {

    private int height;
    private int width;
    private static int MAX_WIDTH = 100;
    private static int MAX_HEIGHT = 100;
    private String name;

    Rectangle(int height, int width) {
        this.height = height;
        this.width = width;
    }
}

答案 1 :(得分:1)

您的代码至少存在三个问题。

首先(这与您的问题直接相关),为什么要制作变量static?当你创建成员变量static时,只有一个变量的副本由该类的所有实例共享,而不是每个类的实例都有一个单独的变量副本。在Oracle的Java教程中更详细地解释了static的含义,请参阅Turing85在评论中提到的链接。

其次,这不是constructor

public static void Rectangle(){

相反,它是一个静态方法,恰好与类同名。你最有可能想要实现一个构造函数:

public Rectangle() {

第三,这一行:

String name = "default";

不初始化成员变量name。相反,它声明了一个隐藏成员变量的局部变量name,并将局部变量(不是成员变量)初始化为"default"。如果您打算初始化成员变量,请删除类型String

name = "default";