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

爱⌒轻易说出口 提交于 2019-12-25 10:01:50
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();
    }

}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!