Java项目实战开发Day10 2020-03-26

本文详细探讨了Java内部类的用途和注意事项,包括封装功能、访问外部类私有数据的能力,以及如何使用内部类和匿名内部类。通过具体示例说明了内部类的创建和使用方法。

内容

内部类

内部类

详细请看:https://www.jianshu.com/p/8e404641b56c

1.为啥要用内部类

①希望封装相应的功能,这些功能可能不太希望直接暴露给外部。
②访问外部类中私有的数据

2.注意点强调

①内部类可以直接访问外部类的数据,但是外部类无法访问内部类的相应数据
②final修饰类,那么这个类无法被继承
③内部类可以使用private public protected final来修饰,外部类只能使用public修饰

3.使用实例

比如Car的一个内部类为Engine
则可以

Car bz = new Car();
Car.Engine engine = bz.new Engine();

不过很少这样用
如果内部类已经是静态的了
则可以

Car.Engine engine = new Car.Engine();

省去了创建对象的过程

4.匿名内部类
匿名对象

①如果创建对象之后,还需要多次使用这个对象,操作对象里面的东西,则一般使用显式创建,就之前学过的绝大部分都是显式创建。
②但如果想创建了对象之后,只想使用这个对象一次,那一般就使用匿名对象(这个对象一般也无法更改了)
如 m1(new Worker("张三"));里面的new Worker("张三")就是匿名对象

匿名内部类

匿名内部类必须满足:继承某个父类或实现某个接口

使用示例

interface Father{
    
}
class Son implements Father{
    
}

public class 测试程序   {                                                                                                             
           
    
    public static void main(String[] args) throws Exception  {

        //使用匿名内部类
        fun(new Father() {
            
        });
        
        //使用多态
        fun(new Son());
  
    
    }

   public static void fun(Father a) {
       
   }
    
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值