1.请参照课上的xmind自己完成内部类的总结,用你的语言描述内部类的分类和特点
成员内部类:
访问特点 :类中:内部类直接访问外部类成员,包括私有;
外部类想要访问内部类的成员必须创建对象,也可以访问私有的成员;
外部:1.外部访问内部类:外.内 变量名 = new 外().new 内();
2.不希望外部直接访问到内部类,因此{1.将内部类私有化,使用private修饰;
2.在外部类中提供一个访问内部类的方法,在方法中创建对象;
局部内部类:
访问特点: 类中 : 内部类直接访问外部类成员,包括私有;
外部类只能在方法中创建内部类对象,方法外是无法创建的
外部 : 外界是无法直接访问局部内部类,只能通过外类中的方法(定义内部类的方法)来访问
2.在JDK5中,为什么会有匿名内部类这个更新?
在使用仅需调用一次或者少次的抽象类的过程中更加简便。
3.匿名内部类的本质是什么?
是一个继承了该类或者实现了该接口的子类匿名对象
4.匿名内部类和匿名对象的应用场景?
当发现某个方法需要,接口或抽象类的子类对象,我们就可以传递一个匿名内部类过去,来简化传统的
代码
5.为什么要重写toString和equals方法
toString :以良好的格式,更方便的展示对象中的属性值
equals :重写可比较对象的内容
6.== 和 equals的区别
==在基本数据类型中是判断数值是否相等,在引用类型中比较的是地址值;
equals默认比较的是地址值,但是通常通过重写来比较对象中的内容; |