首页 > 移动平台 > 详细

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

时间:2020-10-16 20:28:54      阅读:30      评论:0      收藏:0      [点我收藏+]

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

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

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

成员内部类

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

技术分享图片

获取成员内部类实例对象

示例——外部类内部类代码基本结构
技术分享图片

获取成员内部类实例对象方式1
技术分享图片

方式1 :测试内部类中的方法
技术分享图片
技术分享图片

获取成员内部类实例对象方式2及内部类中的方法测试结果
技术分享图片

获取成员内部类实例对象方式3:借助外部类中获取内部类实例信息的方法(本例中该方法是getHeart)
实际上方式3也是一种编码习惯,在外部类中通常也会写一个获取内部类的方法。
如同本例中在外部类Person中存在内部类Heart,就会在外部类Person写一个获取内部类Heart的getHeart方法——以便于内部类对象的实例化操作。
技术分享图片

方式3测试结果
技术分享图片

小结:
技术分享图片

内部类访问修饰符

内部类的访问修饰符:public、protected、private、默认不写 这四种都可以
但这四种修饰符也会因为访问修饰权限的不同,影响内部类实际使用时的操作能力。
技术分享图片

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

内部类可以直接调用外部类的属性和方法
技术分享图片
测试时3种方式都可以正常调用,但为什么会出现2种不同的输出结果?
技术分享图片

方式2、3 可以正常获取测试类中设置的12岁年龄
技术分享图片
方式1使用的是内部类定义属性时的属性默认值
技术分享图片
这个方式1中的0岁如何来的呢?
因为通过new关键字,新产生了一个Person对象,但是Person对象并没有对age属性进行赋值的操作。所以age属性使用了默认值0。
技术分享图片

如果内部类中定义了和外部类中同名的变量时,访问时访问哪一个呢?
技术分享图片
3种方式的测试结果都是内部类中的age=13,即优先访问内部类中的变量
技术分享图片

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

外部类名.this.变量名
技术分享图片

测试一下,又恢复了之前访问外部类属性age的输出结果
技术分享图片

内部类的编译结果

技术分享图片

外部类中使用内部类信息

外部类中如果想要使用内部类的成员,必须通过内部类的实例才能获取到
技术分享图片

如果脱离内部类实例,就无法访问内部类的成员
技术分享图片
技术分享图片

成员内部类小结

技术分享图片

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

原文:https://www.cnblogs.com/xlfcjx/p/13828293.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!