java-静态内部类1
java-静态内部类2
源码
package com.InnerClass;
public class StaticInnerClass {
public static void main(String[] args) {
Outer10 outer10 = new Outer10();
outer10.m1();//输出张三
//外部其他类 使用静态内部类
//方式1
//因为静态内部类 是可以通过类名直接访问(需要遵守访问权限)
Outer10.Inner10 inner10 = new Outer10.Inner10();
inner10.say();
//方式2
//编写一个方法 可以返回静态内部类的对象实例
Outer10.Inner10 inner101 = outer10.getInner10();
System.out.println("====================");
inner101.say();
Outer10.Inner10 inner10_ = Outer10.getInner10_();
System.out.println("*******************");
inner10_.say();
}
}
class Outer10{//外部类
private int n1 = 10;
private static String name = “张三”;
//Inner10 就是静态内部类
//1. 放在外部类的成员位置
//. 使用 static 修饰
//. 可以直接访问外部类的所有静态成员 包含私有的
//但是不能直接访问 非静态成员
//5. 作用域:同其他的成员 为整个类体
static class Inner10{
private static String name = "韩顺平教育";
public void say(){
//7. 如果外部类和静态内部类的成员重名时 静态内部类访问的是
//默认遵循就近原则 如果想访问外部类的成员 则可以使用(外部类名.成员)
System.out.println(name + "外部类name= " + Outer10.name);
}
}
public void m1(){
Inner10 inner10 = new Inner10();
inner10.say();
}
public Inner10 getInner10(){
return new Inner10();
}
public static Inner10 getInner10_(){
return new Inner10();
}
}