Java课后学习(三)

  一般情况下,类的静态方法只允许访问静态数据(带static),如何用静态方法访问类的实例成员(即不带static的成员),请看下段代码。

 1 public class Practice {
 2     public static void main(String[] args) {
 3         act C = new act();
 4         C.display();
 5     }
 6 }
 7 class act{
 8     int i = 100;
 9     static int j = 200;
10     //act A = new act(); 此处声明出错:Exception in thread "main" java.lang.StackOverflowError
11     static void display() {
12         act B = new act();
13         System.out.println(B.i);
14     }
15 }

解决方案是在静态方法中先创建该类的对象,再通过对象访问实例成员即可。在创建类的对象时,要注意其创建的位置,我在第一次创建时写在了静态方法外,即代码注释中的A,报出错误,该错误为“对象之间相互引用,最终导致栈溢出”。

posted @ 2019-10-17 15:29  千幽行  阅读(131)  评论(0编辑  收藏  举报