zoukankan      html  css  js  c++  java
  • (1)访问控制 (2)final关键字 (3)对象创建的过程 (4)多态

    1.访问控制(笔试题)
    1.1 常用的访问控制符
    public - 公有的
    protected - 保护的
    啥也不写 - 默认的
    private - 私有的

    1.2 访问控制符的比较
    访问控制符 访问权限 本类 本包中的类 子类 其他包的类
    ---------------------------------------------------------------------------
    public 公有的 ok ok ok ok
    protected 保护的 ok ok ok no
    啥也不写 默认的 ok ok no no
    private 私有的 ok no no no

    要求大家掌握的内容:
    a.public修饰的内容表示可以在任意位置使用;
    b.private修饰的内容只能在本类内部使用;
    c.通常情况下,成员变量都用private修饰,成员方法都用public修饰;

    1.3 包的定义
    package 包名;
    package 包名1.包名2...包名n;

    定义包的主要目的就是为了便于文件的管理以及区分同名的文件。

    2.final关键字(重点)
    2.1 基本概念
    final本意为"最终的,不可更改的",该关键字可以修饰类、成员方法以及成员变量。

    2.2 使用方式
    final关键字修饰类体现在不能被继承;
    - 为了防止滥用继承,如:String类、System类等。
    final关键字修饰成员方法体现在不能被重写;
    - 为了防止不经意间造成方法的重写,如:SimpleDateFormat类中的format()方法。
    final关键字修饰成员变量体现在该成员变量必须初始化而且不能更改;
    - 为了防止不经意间造成数值的改变,如:Thread.MAX_PRIORITY等

    扩展:
    在以后的编程中单独使用static或final关键字修饰变量的场合很少,通常都是使用public static final共同修饰该变量来表达常量的含义,常量的命名规则是:所有字母都大写,不同单词之间采用下划线连接。
    如:
    public static final double PI = 3.14;

    3.对象创建的过程(了解)
    3.1 单个对象创建的执行过程
    (1)当创建对象时会在堆区中申请内存空间,采用默认初始化的方式来处理成员变量;
    (2)采用显式初始化来进行成员变量的处理;
    (3)执行构造块中的代码,可以给成员变量再次赋值;
    (4)执行构造方法体中的代码,此时对象构造完毕;

    3.2 子类对象创建的执行过程
    (1)当创建子类对象时会在堆区中申请内存空间;
    (2)先加载父类再加载子类,因此先执行父类的静态语句块,再执行子类的静态语句块;
    (3)先执行父类的构造块,再执行父类的构造方法体,此时父类部分构造完毕;
    (4)先执行子类的构造块,再执行子类的构造方法体,此时子类对象构造完毕;

    4.多态(重中之重)
    4.1 基本概念
    多态主要指同一种事物表现出来的多种形态。
    饮料:可乐、雪碧、加多宝、乐虎、红牛、... ...
    宠物:猫、狗、鸟、鱼、小强、...
    整数:byte b = 10; short s = 10; int i = 10; ...
    ... ...

    4.2 语法格式
    父类类型 引用变量名 = new 子类类型();
    如:
    Pet pc = new Cat();
    pc.show();
    解析:
    在编译阶段调用Pet类中的show()方法,在运行阶段调用Cat类中重写以后的show()方法。

    4.3 注意事项
    (1)使用父类的引用指向子类的对象时,父类的引用可以直接调用父类中的成员方法;
    (2)使用父类的引用指向子类的对象时,父类的引用不可以直接调用子类中的成员方法;
    (3)对于非静态的成员方法来说,编译阶段调用父类版本,运行阶段调用子类版本;
    (4)对于静态的成员方法来说,编译和运行阶段调用父类版本,与对象无关;

    4.4 引用数据类型之间的转换
    (1)引用数据类型之间的转换分为两种:自动类型转换 和 强制类型转换;
    其中子类类型向父类类型的转换发生自动类型转换;
    其中父类类型向子类类型的转换需要强制类型转换;
    (2)引用数据类型之间的转换必须发生在父子类之间,否则编译报错;
    (3)当转换的子类类型并不是该引用真正指向的子类类型时,编译阶段通过,运行阶段
    发生类型转换异常;
    (4)为了避免上述错误的发生,建议每次强制类型转换之前使用以下格式进行判断:
    if(引用变量名 instanceof 目标类型){}
    - 判断引用变量名真正指向的对象是否为目标类型,若是则返回true,否则返回false

    4.5 多态的实际意义
    多态的实际意义在于屏蔽不同子类的差异性实现通用的编程,从而带来不同的结果。

    不忘初心,方得始终! 坚持!坚持!坚持!!
  • 相关阅读:
    十、collection的作用+变量
    python借助ADB工具实现自动化操作手机
    selenium 对浏览器标签页进行关闭和切换
    python编写shell脚本
    报错解决——# Creating Server TCP listening socket *:6379: bind: Address already in use
    Mac 报错:-bash: telnet: command not found
    Mac快捷键大全及cheatsheet插件
    报错解决——xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
    Mac破解免费office软件
    python 当前时间多加一天、一小时、一分钟
  • 原文地址:https://www.cnblogs.com/sumboy/p/8604169.html
Copyright © 2011-2022 走看看