151 Android 零基础入门 02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

151 Android 零基础入门 02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

**本文知识点:成员内部类 **

说明:因为时间紧张,本人写博客过程中只是对知识点的关键步骤进行了截图记录,没有对截图步骤进行详细的文字说明(后面博主时间充裕了,会对目前的博客编辑修改,补充上详细的文字说明);有些步骤和相关知识点缺乏文字描述,可能会难以理解。读者如有不明之处,欢迎博客私信或者微信(本人微信在博客下方的“关于博主”处)与本人交流,共同进步

成员内部类

成员内部类定义及简单代码示例

151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

获取成员内部类实例对象

示例——外部类内部类代码基本结构
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

获取成员内部类实例对象方式1
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

方式1 :测试内部类中的方法
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

获取成员内部类实例对象方式2及内部类中的方法测试结果
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

获取成员内部类实例对象方式3:借助外部类中获取内部类实例信息的方法(本例中该方法是getHeart)
实际上方式3也是一种编码习惯,在外部类中通常也会写一个获取内部类的方法。
如同本例中在外部类Person中存在内部类Heart,就会在外部类Person写一个获取内部类Heart的getHeart方法——以便于内部类对象的实例化操作。
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

方式3测试结果
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

小结:
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

内部类访问修饰符

内部类的访问修饰符:public、protected、private、默认不写 这四种都可以
但这四种修饰符也会因为访问修饰权限的不同,影响内部类实际使用时的操作能力。
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

内部类和外部类成员之间的相互使用情况

内部类可以直接调用外部类的属性和方法
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类
测试时3种方式都可以正常调用,但为什么会出现2种不同的输出结果?
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

方式2、3 可以正常获取测试类中设置的12岁年龄
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类
方式1使用的是内部类定义属性时的属性默认值
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类
这个方式1中的0岁如何来的呢?
因为通过new关键字,新产生了一个Person对象,但是Person对象并没有对age属性进行赋值的操作。所以age属性使用了默认值0。
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

如果内部类中定义了和外部类中同名的变量时,访问时访问哪一个呢?
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类
3种方式的测试结果都是内部类中的age=13,即优先访问内部类中的变量
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

如果在内部类中想要访问外部类中的变量,该如何做?
格式:

外部类名.this.变量名
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

测试一下,又恢复了之前访问外部类属性age的输出结果
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

内部类的编译结果

151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

外部类中使用内部类信息

外部类中如果想要使用内部类的成员,必须通过内部类的实例才能获取到
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

如果脱离内部类实例,就无法访问内部类的成员
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类
151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

成员内部类小结

151 Android 零基础入门  02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

151 Android 零基础入门 02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

上一篇:uniapp踩坑日记 --- 组件踩坑


下一篇:ios 手机号码隐藏中间4位为*号