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();//訪問靜態內部類中的成員方法,需要實例化對象
}
}