1. 请参照课上的xmind自己完成内部类的总结,用你的语言描述内部类的分类和特点 内部类分为两大类分别为成员内部类和局部内部类。成员内部类定义在类中方法外,局部内部类包含匿名内部类,它定义在类的方法中。它两都能同时访问外部类的私有成员变量,但是外部想访问它们就必须在合适的地方创建它们的对象来进行访问。
2.在JDK5中,为什么会有匿名内部类这个更新?
因为当我们只进行一次抽象类或者接口调用时,不得不创建一个实现类来进行对象创建并调用抽象类或者接口,当要进行多个抽象类或者接口的调用的时候我们就必须创建多个类来进行对象的创建,这样不仅麻烦而且很费时,所以匿名内部类的更新解决了这一问题。
3.匿名内部类的本质是什么?
匿名内部类的本质是一个继承了抽象类或者实现了接口的子类匿名对象。
4.匿名内部类和匿名对象的应用场景?
在程序的开发过程中当我们发现某个方法需要,接口或抽象类的子类对象时,而它仅仅使用一次,这时候我们就可以传递一个匿名内部类过去,来简化传统的代码
5.为什么要重写toString和equals方法
1>重写toString是因为每个类在继承Object超类时,当我们输出创建对象时系统显示的是这个对象在内存中的地址值这没有什么意义,而重写toString方法当我们在调用对象名的时候系统就会将对象的属性值展示在我们面前以便于我们更好的操控。 2>重写equals是因为每个类在继承Object超类时,我们不希望比较对象的地址值,想要结合对象属性进行比较的时候超类Object提供的equals方法不能满足我们的需求,所以我们需要重写它。
6.== 和 equals的区别
==在比较基本数据类型的时候会比较数值是否相等,而在比较引用数据类型的时候会比较类型的地址值,改写后的equals不管是比较基本数据类型还是引用数据类型都可以对对象的内容进行比较。
|