第二个问题我懂了,但是第一个问题,怎么访问啊?public class TestInner { class Inner{ public int a = 10; public int get(){ return a; } } public static void main(String[] args){ TestInner testInner = new TestInner(); //这段代码,里的内部类能在不创建内部类对象的情况下被访问? } }
你现在定义的是一个实例性质的内部类,你要访问这个内部类的方法必须实现获得外部类的对象,然后通过外部类访问内部类 public class Main { class Inner{ public int a = 10; public int get(){ return a; } } public static void main(String[] args){ Main main = new Main(); Inner in = main.new Inner(); System.out.println(in.get()); } } 如果是静态内部类,则采用如下方式: public class Main { static class Inner{ public int a = 10; public int get(){ return a; } } public static void main(String[] args){ Main main = new Main(); Inner in = new Main.Inner(); System.out.println(in.get()); } }
具体你可以去看看sington的实现
则必须通过内部方法来访问它,这个一般在很多单例模式中可以看到,它的作用就是不能让别人直接访问它,而必须通过某个方法来访问
public int a = 10;
public int get(){
return a;
}
}
public static void main(String[] args){
TestInner testInner = new TestInner();
//这段代码,里的内部类能在不创建内部类对象的情况下被访问?
}
}
public class Main {
class Inner{
public int a = 10;
public int get(){
return a;
}
} public static void main(String[] args){
Main main = new Main();
Inner in = main.new Inner();
System.out.println(in.get());
}
}
如果是静态内部类,则采用如下方式:
public class Main {
static class Inner{
public int a = 10;
public int get(){
return a;
}
} public static void main(String[] args){
Main main = new Main();
Inner in = new Main.Inner();
System.out.println(in.get());
}
}