- class Single{
- private Single(){}
- private static Single s = new Single();
- pirvate static int age;
- public void setAge(int age){
- this .age = age;
- }
- public int ageAge(){
- retrun age;
- }
- public static Single getInstance(){
- return s;
- }
- }
- class SingleDemo{
- main...省略
- Single ss = Single.getInstance();
- ss.setAge(10);
- s.o.p(ss.getAge);
- }
复制代码 这个单例模式中,设置了两个非静态方法,就是setAge 和 getAge,如果我把single这个类中的所有变量和方法都改成静态的,就会提示无法从静态上下文中引用非晶态方法,为什么呢? 是不是说这个类不可以建立对象,所以栈内存中只能有 是这一个对象,对象又不能调用static 方法,所以说class 类里边的除了 getInstance()这个方法外,其他的方法都不能是static的? 这个代码的内存图谁能帮我划一下??
|