接口与内部类

接口与内部类

接口

对类的一组需要描述,这些类要遵从接口描述的统一格式进行定义

接口的特性

  • 1、接口中的方法自动地被设置为public
    2、接口中的域被自动设为public static final
  • 为什么需要接口?每个类只能拥有一个超类,但却可以实现多个接口

接口与抽象类

  • 为什么不用抽象类替代接口?每个类只能扩展一个类,但可以实现多个接口

对象克隆

拷贝与克隆

  • 拷贝:拷贝一个对象,仅是拷贝了对象的引用
  • 克隆:克隆一个对象,是完全copy一个对象

自带clone

  • Employee copy = original.clone();
  • copy.raiseSalary(10);
  • 缺点:默认克隆操作是浅拷贝,它并没有克隆包含在对象中的内部对象

克隆:深拷贝

  • 重新定义clone()

    • 类implements Cloneable接口

      • public class Employee implements Cloneable{

    • 使用public访问修饰符重新定义clone方法

      • public Employe clone() throws CloneNotSupportedException{
      • Employee cloned = (Employee) super.clone();
      • cloned.hireDay = (Date) hireDay.clone();
      • return cloned;
        }
        }

接口与回调

内部类

内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据
内部类可以对同一个包中的其他类隐藏起来
当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷

使用内部类访问对象状态

  • 内部类的对象总有一个隐式引用,它指向了创建它的外部类对象

内部类的特殊语法规则

  • ActionListener listener = this.new TimePrinter()

内部类是否有用、必要和安全

  • 解释与常规调用类的方法的区别

局部内部类

  • 在需要调用内部类的方法中实现内部类,此时内部类仅对该方法可见,无需声明为public或者private

由外部方法访问final变量

  • 子主题 1

代理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值