Day17 P1 内部类和常用类概述 P2 内部类分类 P3 内部类概念 P4 成员内部类

Day17

P1 内部类和常用类概述

在这里插入图片描述



P2 内部类分类

在这里插入图片描述

成员内部类:把 一个类 定义在 另一个类当中,作为他的成员存在,叫成员内部类

静态内部类:内部类前边加一个static修饰符关键字

局部内部类:把一个类定义在 一个方法 内部

匿名内部类:没有名字的类,用在接口和抽象类比较多



P3 内部类概念

内部类也会生成class文件

在这里插入图片描述



P4 成员内部类

在这里插入图片描述

//main主程序
package com.changyonglei.chengyuanneibulei;

public class TestOuter {
    public static void main(String[] args) {
        //如何调用内部类的方法?
             // 1、创建外部类对象
//        Outer outer = new Outer();
             // 2、创建内部类对象
//        Outer.Inner inner = outer.new Inner();
             // 3、调用内部类方法show()
//        inner.show();
             /*输出:
                张三
                20
                北京
                110
             */

             //简单的方法:1、2、3合成一步
        Outer.Inner inner = new Outer().new Inner();
        inner.show();


    }
}

//外部类 和 内部类
package com.changyonglei.chengyuanneibulei;

public class Outer {
    //定义几个实例变量:
    private String name ="张三";
    private int age=20;

    //写一个内部类
    class Inner{
        private String address="北京";
        private String phone="110";

        //内部类的属性和外部类的属性名字相同,要想在内部类访问
        //这个重名的外部类属性要在前面加 Outer.this
        private String name = "李四";

     //   private static String country="美国";报错了,因为
                 //成员内部类里不能定义静态成员

           //但成员内部类里可以定义 静态常量   常量final
        private static final String ccc="中国";

        //内部类方法
        public void show(){

            //打印属性
            System.out.println(name);//这个打印的是内部类的name
            System.out.println(age);

            System.out.println(Outer.this.name);//这个打印的是外部类的name

            //打印内部类中的属性
            System.out.println(address);
            System.out.println(phone);

        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值