所以我一直在做一些在线学习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;
}
我无法想到我的代码的任何其他部分会使评估软件看不到它,我相信它不是评估软件中的错误。此变量必须是私有的,以便给我分数。
答案 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";