这一章主要讲一下static在内部类的使用
上一篇已经介绍了java的内部类的基本使用
下面来看一段话
第一:内部的静态类不能访问外部的非静态成员,但是可以通过外部类的对象来访问他的非静态成员
下面来看一个例子
public class Father {
private String a = "a"; //外部类的非静态成员
private static String b = "b"; //外部类的静态成员
/*
* Son 是静态内部类
*/
public static class Son
{
private String c ="c"; //内部类的非静态成员
private static String d = "d"; //内部类的静态成员
public void funcation()
{
System.out.println(a);//<span style="color:#ff0000;">此处会报错(应该修改为 System.out.println(new Father().a);)</span>
System.out.println(b);
System.out.println(c);
System.out.println(d);
}
}
public static void main(String[] args) {
Son son = new Son();
son.funcation();
}
}
输出结果是
a
b
c
d
第二:
静态内部类不需要父类对象.new 子类对象()
可以直接实例化,例子看上面的main方法。
第三:
同名时用类名来区分
例子
public class Father {
private static String b = "b"; //外部类的静态成员
/*
* Son 是静态内部类
*/
public static class Son
{
private String b ="内部非静态变量b"; //内部类的非静态成员
public void funcation()
{
System.out.println(b+"-------"+Father.b);
}
}
public static void main(String[] args) {
Son son = new Son();
son.funcation();
}
}
输出
内部非静态变量b-------b
好啦静态的内部类也介绍了一下
有问题欢迎批评指正,来留言