java 静态内部类
文章同步更新(更好的排版):java 静态内部类
一、位置
位于类的内部。相当于用 static 修饰的成员内部类。此时的内部类不再受到外部类实例化对象的影响,以是等同于是一个 “外部类”。静态内部类的类名为:外部类类名.静态内部类类名
二、特点
[*]静态内部类可以被任何访问修饰符举行修饰
[*]静态内部类不能直接访问外部类的非静态实例属性和方法,但可以访问静态的属性和方法
[*]静态内部类可以包含静态成员
[*]静态内部类中的属性,与外部类的属性同名时,静态内部类则必要使用 外部类类名.外部类属性名称 访问外部类的属性
三、静态内部类的实例化
//可以不依赖外部类的对象,通过外部类名直接访问
外部类类名.内部类类名 内部类对象名 = new 外部类类名.内部类类名();
四、代码示例一:演示特点一
https://i-blog.csdnimg.cn/img_convert/277bfe3a685ac06132f8c93b75ad63ec.png
public class StaticOuter {
//静态内部类
static class Inner01{}
public static class Inner02{}
protected static class Inner03{}
private static class Inner04{}
}
五、代码示例二:演示特点二
https://i-blog.csdnimg.cn/img_convert/e70ea8a8c66fa63400ebcf5f16663820.png
public class StaticOuter02 {
//静态内部类不能直接访问外部类的非静态实例属性和方法,但可以访问静态的属性和方法
//外部类的非静态成员属性
private String name = "公众号:牧牧川";
//外部类的静态成员属性
static private int age = 18;
//静态内部类
static class Inner{
//静态内部类的成员方法
public void show(){
System.out.println(name);
System.out.println(age);
}
}
}
六、代码实例三:演示特点三
https://i-blog.csdnimg.cn/img_convert/353bf430d7222c815e5b375fe10339f3.png
public class StaticOuter03 {
//静态内部类
static class Inner{
//静态内部类 能包含静态成员
private static String name = "公众号:牧牧川";
public static void test(){}
private static final int a = 1000;
}
}
七、代码实例四:演示特点四
https://i-blog.csdnimg.cn/img_convert/36c5a51f1d4dc7a5e113035b417ac2d9.png
public class StaticOuter04 {
//外部类的静态成员属性
private static String name = "Tom";
//外部类的成员方法
public void show(){
System.out.println("名字为:"+ name);
}
//静态内部类
static class Inner{
private String name = "GGBond";
public void show(){
String name = "jack";
System.out.println("方法中的局部变量 name:" + name);
System.out.println("内部类的实例属性 name:" + this.name);
//静态内部类中的属性,与外部类的属性同名时,内部类则需要使用 外部类类名.外部类属性名称 访问外部类的属性
System.out.println("外部类的实例属性 name" + StaticOuter04.name);
}
}
}
https://i-blog.csdnimg.cn/img_convert/a712bd8e12cb8d2ff8bbd81b80adf922.png
public class TestStaticOuter04 {
public static void main(String[] args) {
//外部类的对象
StaticOuter04 staticOuter04 = new StaticOuter04();
staticOuter04.show();
//静态内部类的实例化
//外部类类名.内部类类名 内部类对象名 = new 外部类类名.内部类类名();
StaticOuter04.Inner inner01 = new StaticOuter04.Inner();
inner01.show();
}
}
https://i-blog.csdnimg.cn/img_convert/1a1ce68be311949cc1a8afb33bb244fc.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]