内部类练习题(静态内部类应用)

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();

    }

}

 

posted @ 2019-04-30 13:05  Geek张东坡  阅读(524)  评论(0编辑  收藏  举报