A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2019-10-8 19:33  /  2378 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.请参照课上的xmind自己完成内部类的总结,用你的语言描述内部类的分类和特点
        内部类分为成员内部类和局部内部类
        成员内部类:在类中方法外,与外部类的成员同级,内部类可以直接访问外部类的成员,包括私有;外部类想要访问内部类的成员必须创建对象,也可以访问私有的成员;访问顺序:内部类局部->内部类成员->外部类成员
        局部内部类:在类中的方法中,与方法中的成员的同级,局部内部类可以直接访问外部类成员包括私有,外部类只能在方法中创建局部内部类的对象,方法外无法创建局部内部类对象。外界无法直接范围局部内部类,只能通过定义内部类的方法来访问;访问顺序:局部内部类局部位置->局部内部类成员位置->外部类局部位置->外部类成员位置。
2.在JDK5中,为什么会有匿名内部类这个更新?
        当我们创建一个抽象类的是时候,传统的方法我们必须建立一个继承该抽象类的子类,然后才能创建该抽象类的子类对象,才能访问该抽象类的成员。而匿名对象可以让我们直接在主方法中就可以创建抽象类的对象,而不用再去定义一个子类,再创建对象,会让人在使用仅需调用一次或者少次的抽象类的过程中更加简便。
3.匿名内部类的本质是什么?
        匿名类的本质是一种特殊的内部类,没有名称,但前提是必须有一个接口或者类。
4.匿名内部类和匿名对象的应用场景?
        调用方法,仅仅只调用一次的时候
          匿名对象可以作为实际参数传递

5.为什么要重写toString和equals方法
        toString:Object类中的toString方法返回的是类的名字和该对象的哈希码组成的一个字符串,是对象的地址码,当我们希望toString返回的是对象的值时就需要重写。
        equals:Object类中的equals方法,比较的是两个对象的地址值是否一致,当我们需要比较的是不同内存地址的两个对象的值是否一致时就需要重写。
6.== 和 equals的区别
        首先==在java中是逻辑运算符,而equals是Object类中的方法。然后==主要是判断两个对象的引用是否一致,是否是同一块内存,而重写过后的equals判断的是两个对象的值是否一致,而不是内存。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马