【Java基础总结】-接口与内部类

接口

重难点总结:
1、接口中的所有方法自动地属于public,在接口声明方法时,不必提供关键字public,但是在实现接口 编写具体的接口方法时,需要加上public修饰符。

2、在接口中可以定义常量(默认就是用public static final修饰)。接口中绝对不能含有实例域或静态方法,也不能在接口中实现方法。

3、接口看成是没有实例域的抽象方法。

4、Java程序设计语言是一种强类型语言,在调用方法的时候,编译器将会检查这个方法是否存在。

5、不能构造接口的对象,却能声明接口的变量,接口变量必须引用实现了接口的类对象。

6、接口之间通过继承关系扩展接口。

克隆

对象的克隆是指创建一个新对象,且新对象的状态与原始对象的状态相同。当对克隆的新对象进行修改时,不会影响原始对象的状态。


接口与回调

回调可以指出某个特定事件发生时应该采取的动作,需要实现接口中的方法。

内部类

内部类

顾名思义在类中再定义一个类。

public class A{
    int i = 100;
    class innerClass{
        int m = i;
    }
}
  • 内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据
  • 内部类可以对同一个包中的其他类隐藏起来
  • 定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便携

值得注意的是,外围类的引用在构造器中设置。编译器修改了所有的内部类的构造器,添加一个外围类的引用参数。因此内部类的对象有一个隐式引用,它指向创建它的外部类对象。
所以内部类既可以访问自身的数据域,也可以访问创建它的外围类对象的数据域。


局部内部类

一个类的方法体中定义的类。

public class A{
    int i = 100;
    public void innerClass(){
        class B{
            int m = i;
        }
    }
}

局部类 不能用public或private访问说明符进行声明,他的作用域被限定在声明这个局部类的块中。
局部类有一个优势,即对外部世界可以完全隐藏起来。


匿名内部类

一个类在new 创建一个对象实例时,直接实现其中的接口方法

ActionListener listener = new ActionListener(){
    public void actionPerformed(ActionEvent event){...}
};

静态内部类

使用内部类只是为了把一个类隐藏在另外一个类的内部,并不需要内部类引用外围对象。为此,可以将内部类声明为static,以便取消产生的引用。

public class A{
    static int i = 100;
    static class B{
        int m = i;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值