package com.Summer_0429.cn;
/**
* @author Summer
* 静态内部类的应用
* 示例:
* 定义一所学校,学校有:
* 饮水机:WaterFountain
* 水量
* 管理饮水机();
*
* 要求:创建一所学校,访问饮水机的水量
*
*/
class School{
static int ssn = 33;
static class WaterFountain{
int n = 11;
static int sn = 22;
public void f(){
System.out.println("水量:"+n);
}
public static void sf(){
// System.out.println(new WaterFountain().n);//静态方法访问非静态变量
System.out.println(sn);//静态方法访问静态成员绝对没有问题
System.out.println(ssn);//静态内部类直接访问静态外部类中变量
}
}
public void show(){
//外部类中访问静态内部类中的成员
//访问实例成员
WaterFountain wf = new WaterFountain();
wf.f();
//外部类中访问静态成员,不需要创建对象进行实例化
School.WaterFountain.sf();
}
}
public class TestStatic {
public static void main(String[] args) {
School school = new School();
school.show();
//顶级类中访问静态类中的静态方法不需要创建对象,直接访问即可
School.WaterFountain.sf();
//顶级类中访问静态类中的成员方法,需要创建静态内部类对象进行访问
School.WaterFountain sw = new School.WaterFountain();
sw.f();
}
}