内部类练习题(外部类访问内部类成员、内部类访问外部类成员、顶级类访问内部类成员)

package com.Summer_0429.cn;

/**
 * @author Summer
 * 内部类实例:
 * 定义一只猫类,猫有:
 * 1、重量
 * 2、猫的身体:
 *     1)颜色
 *     2)显示猫的身体的信息();
 * 3、显示猫的整体信息();
 * 要求:创建一只小猫,显示它的整体信息。
 *
 */
class Cat{
    private double weight;
    public Cat(double weight){
        this.weight = weight;
    }
    //内部类:成员内部类
    class CatBody{
        private String color;
        public CatBody(String color) {
            this.color = color;
        }
        public void show(){
            //内部类中可以直接访问外部类的成员
            //每一个内部类对象中都会隐藏一个外部类对象,外部类.this
            //System.out.println("颜色:"+color+Cat.this.weight);
            System.out.println("颜色:"+color+weight);
        }
        
    }
    public void display(){//外部类
        //外部类,访问内部类的成员
        CatBody body = new CatBody("白色");
        body.show();
        System.out.println("体重:"+weight);
    }
    
}

public class TestInner {

    public static void main(String[] args) {
        Cat cat = new Cat(10);
        cat.display();
        //在一个顶级类中调用内部类方法的语法结构,需要一个外部类的实例对象来创建
        Cat.CatBody body = cat.new CatBody("黑色");
        body.show();
    }

}

 

posted @ 2019-04-29 20:08  Geek张东坡  阅读(527)  评论(0编辑  收藏  举报