1.什么是内部类,使用匿名内部类的前提是什么?
答:在类中又定义一个类,这个类就是内部类,内部类分为成员内部类和局部内部类,成员内部类在类中方法外,内部内部类在类中方法内,局部内部类包括匿名内部类。
匿名内部类的前提是有接口或者类,这个类可以是具体类也可以是抽象类。
2.请从你的理解谈谈,匿名内部类的作用?
答:当我们需要调用子类对象的方法时,我们就可以传递一个匿名内部类过去,省去了编写子类的麻烦,简化传统代码。匿名内部类本质上是一个继承了该类或者实现了该接口的子类匿名对象。
3.思考一下为什么打印对象,有的是地址值,有的是对象内容?对象在什么时候会调用toString()方法?
答;所有类都直接或者间接继承Object,都有Object的方法,当使用输出语句打印对象,默认调用toString()方法,此时打印的是地址值,如果重写toString()方法,打印的是内容。
当直接打印对象时,会调用toString()方法,只不过对象名后省略了.toString()。
4.我们为什么要重写equals()方法?
答:重写equals方法是为了比较两个对象的内容是否相同,不重写比较的两者的地址值。
5.==和equals()的区别?
答:如果是基本数据类型==比较的是两者的数值,如果是引用数据类型,==比较的是地址值。
对于equals方法不重写比较的两者的地址值,重写比较的是内容。
|