zoukankan      html  css  js  c++  java
  • 151 01 Android 零基础入门 02 Java面向对象 07 Java多态 06 内部类 02 成员内部类

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

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

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

    成员内部类

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

    mark

    获取成员内部类实例对象

    示例——外部类内部类代码基本结构
    mark

    获取成员内部类实例对象方式1
    mark

    方式1 :测试内部类中的方法
    mark
    mark

    获取成员内部类实例对象方式2及内部类中的方法测试结果
    mark

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

    方式3测试结果
    mark

    小结:
    mark

    内部类访问修饰符

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

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

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

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

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

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

    外部类名.this.变量名
    mark

    测试一下,又恢复了之前访问外部类属性age的输出结果
    mark

    内部类的编译结果

    mark

    外部类中使用内部类信息

    外部类中如果想要使用内部类的成员,必须通过内部类的实例才能获取到
    mark

    如果脱离内部类实例,就无法访问内部类的成员
    mark
    mark

    成员内部类小结

    mark

  • 相关阅读:
    《结对-贪吃蛇游戏-测试过程》
    《课后作业-阅读任务-阅读提问-2》
    课后作业-阅读任务-阅读提问-3
    《20171005-构建之法:现代软件工程-阅读笔记》
    《结对-贪吃蛇游戏-项目进度》
    《团队-科学计算器-项目进度》
    《团队-科学计算器-代码设计规范》
    《团队-科学计算器-开发环境搭建过程》
    自制3D打印机---挤出头
    __construct 与 ThinkPhp _initialize 的区别
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/13828293.html
Copyright © 2011-2022 走看看