具体来说,我正在尝试这段代码:
package hello;
public class Hello {
Clock clock = new Clock();
public static void main(String args[]) {
clock.sayTime();
}
}
Run Code Online (Sandbox Code Playgroud)
但它给出了错误
无法访问静态方法main中的非静态字段
所以我把声明改为clock:
static Clock clock = new Clock();
Run Code Online (Sandbox Code Playgroud)
它奏效了.在声明之前放置该关键字是什么意思?对于该对象可以做什么,它究竟会做什么和/或限制什么?
什么是成员变量?成员变量和实例变量是一回事吗?
实例变量是在类中声明并在整个代码中访问的变量,对吗?
我正在完成基础编程课程,但我无法理解类变量和实例变量(静态和非静态)之间的区别。我需要在代码中确定两者之间的区别
\n\nClass StudentDetails\n{\nInt rollNumber;\nString studentName;\n}\nStudentDetails firststudent= StudentDetails (19236, \xe2\x80\x9dThomas\xe2\x80\x9d);\nRun Code Online (Sandbox Code Playgroud)\n\n我相信 rollNumber、studentName、19236 和“Thomas”都是实例变量,firststudent 是类变量。
\n\n任何有关这方面的帮助将不胜感激,因为课程材料不是很有帮助。
\n我的问题与另一个问题有关:如何在类本身内部创建类的实例?
我创建了两个类,如下所示:
class Test {
Test buggy = new Test();
public static void main (String[] args) {
Test test = new Test();
System.out.println("Done");
}
}
Run Code Online (Sandbox Code Playgroud)
而另一个:
class Test {
static Test buggy = new Test();
public static void main (String[] args) {
Test test = new Test();
System.out.println("Done");
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么第一个代码(没有静态变量)给出了堆栈溢出错误但是当我声明实例变量是静态的(第二种情况)时我没有错误.static关键字在这里有什么区别?