Java中 内部类

内部类                                匿名内部类用的最多,其他的了解下就好
    类的五大成员
        属性,方法,构造方法,代码块,内部类

    内部类    一个类的里面再定义一个类,这个类就是内部类
        内部类表示的事物是外部类的一部分

    
    应用:    一个对象可能是多个对象组成的,
        例如汽车类可以有引擎属性,发动机属性等等
        但是一个单独的属性很难描述引擎或者发动机,那么就需要对其进行封装

    访问特点
        内部类可以直接访问外部类的成员,包括私有
        外部类要访问内部类的成员,必须创建对象

    
    内部类的分类
        成员内部类
            写在成员位置的类,属于外部类的成员
            可以被private default protected public static等修饰
            成员内部里
                jdk16前不能定义静态变量
                之后可以

            创建对象
                1在外部类中编写方法,对外提供内部类对象
                2直接创建:外部类名.内部类名 对象名=外部类对象.内部类对象;

            访问方式        
                就近原则
                格式    内部访问外部变量。Outer.this.变量名
                


        静态内部类
            静态内部类也是成员内部类的一种
            成员内部类用static修饰就是静态内部类
            静态内部类只能访问外部类中的静态的东西
            如果想要访问非静态的需要创建外部类对象
            
            创建对象        
            外部类名.内部类名  对象名    = new 外部类名.内部类名()
            
            调用方式
            1先创建对象,用对象调用
            2外部类名.内部类名.方法名();    
                
                    
        局部内部类
            将内部类定义在方法中,就是局部内部类,类似方法中的局部变量
            不能被权限修饰符修饰
            外界无法直接使用,要在方法内部创建对象才能使用
            该类可以访问外部类的成员,也可以访问方法内的局部变量
        

    **匿名内部类**
        格式:    new 父类名或接口名(){重写方法};
            
        就是一个可以没有名字的类,简化书写。实现了想要实现的接口,要重写里面的方法
            
        创建对象    父类名或接口名  对象名=new 父类名或接口名 ();

            
        条件    继承或者实现关系
            方法的重写
            创建对象

        可以直接用创建内部类的格式来创建类对象
            父类名或接口名 对象名=new 父类名或接口名(){重写方法};
            然后得到父类或接口对象,然后可以用接口多态或者多态调用
        
        还可以用new 父类名或接口名(){重写方法}.equal方法等,直接调用

        应用:    当方法的参数是接口或类时,可以传递这个接口的实现类对象或子类对象
            如果实现类或子类只使用一次,就可以用匿名内部类简化代码


        (有些匿名内部类可以用lambda表达式来简化)

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值