package com.lbj.javase19;
/**
* 关于静态内部类:
*
* 1.静态内部类可以等同看做静态变量
*
* 内部类重要的作用:可以直接访问外部类中私有的数据
*
* 2.静态内部类可以直接访问外部类的静态数据,无法访问成员
*
*
*
* @author 14811
*
*/
public class OuterClass {
//静态变量
private static String s1="A";
//静态方法
private static void m1(){
System.out.println("static m1 method");
}
//成员变量
private String s2="B";
//成员方法
private void m2(){
System.out.println("m2 method");
}
//静态内部类
//可以用访问控制权限的修饰符修饰
//public/protected/private/缺省
static class InnerClass{
//静态方法调用本类中的静态方法和静态变量
public static void m3(){
System.out.println(s1);
m1();
// System.out.println(s2);
// m2();静态类中无法访问成员方法和成员变量
}
//成员方法
public void m4(){
System.out.println(s1);
m1();
// System.out.println(s2);
// m2();
}
}
//入口哦
public static void main(String[] args){
//执行m3
OuterClass.InnerClass.m3();//访问静态内部类中的静态方法
//执行m4
InnerClass inner=new OuterClass.InnerClass();
inner.m4();//访问静态内部类中的成员方法,需要实例化对象
}
}