美文网首页
Java学习day-09:封装和多态

Java学习day-09:封装和多态

作者: 开源oo柒 | 来源:发表于2019-07-17 21:28 被阅读0次

    一、toString和Equals重写:

    1.toString方法:

    在Object根基类中定义的有pubic String toString()方法;返回值类型为String;源码:

    public String toString() {

        return getClass().getName() + "@" + Integer.toHexString(hashCode());

    }

    2.toString方法重写:

    代码截图 结果

    3.equals和”==”的区别:

    (1) “==”代表比较双方是否相同。如果是基本类型则表示值相等,如果是引用类型则表示地址相等即是同一个对象。

    (2)equals方法:在超类Object中equals方法的源码(默认比较的是内存地址):

    public boolean equals(Object obj){

    return(this==obj)

    (3)通过子类重写equals方法实现比较内容是否相等;

    代码截图 结果

    二、super关键字:

    1.super:

     (1) super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。对比this进行记忆。

    (2)super可以直接访问父类的属性和方法:super.属性;super.方法名()。

    (3)使用super关键字访问父类的构造方法,必须放在子类构造方法的第一行代码。

    代码截图 结果

    2.继承树追溯:

    (1)从子类依次可以上溯到父类,直到Object;然后返回值。

    (2)构造方法的第一句总是(super())来调用对应的父类构造方法。

    (3)追溯执行测试:

    代码截图 结果

    三、封装:

    1.封装的含义:

    需要让用户知道的才暴露出来,不需要让用户知道的全部隐藏起来。

    2.封装的优点:

    (1)提高代码的安全性;

    (2)提高代码的复用性;

    (3)“高内聚”:封装细节,便于修改内部代码,提高可维护性;

    (4)“低耦合”:简化外部调用,便于调用者使用,便于扩展和协作。

    3.没有封装的情况:

    代码截图 结果

    4.控制访问符:

    (1)private 表示私有,只有自己类能访问;

    (2)default表示没有修饰符修饰,只有同一个包的类能访问;

    (3) protected表示可以被同一个包的类以及其他包中的子类访问;

    (4) public表示可以被该项目的所有包中的所有类访问。

    代码截图 结果

    5.javabean:

    (1)使用private访问权限;属性使用private修饰;

    (2) 提供相应的get/set方法来访问相关属性,这些方法通常是public修饰的;

    (3)无参构造方法。

    代码截图 结果

    四、多态性:

    1.多态:

    (1)指的是同一个方法的调用,由于对象的不同可能会有不同的行为。

    (2)多态的优点:提高程序的扩展性和可维护性。

    (3)多态的要点:

    多态是方法的多态,不是属性的多态(多态与属性无关);

    多态的存在要有3个必要条件:继承,方法重写,父类引用指向子类对象;

    父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。

    代码截图 结果

    2.对象的转型:

    (1)向上转型:父类引用指向子类对象,我们称这个过程称为向上转型,属于自动类型转换;将子类当做父类使用,只能访问父类和子类公有的方法和属性;

    (2)向下转型:将父类类型转换为子类类型;

    (3)为了防止出现类型转换异常,使用instanceof运算符进行判断;

    代码截图 结果

    (4)final关键字:

    1.修饰变量:被final修饰的变量不可改变,一旦赋值,就不能被重新赋值;

    2.修饰方法:该方法不能被重写。可以被重载;

    3.修饰的类不能被继承。

    相关文章

      网友评论

          本文标题:Java学习day-09:封装和多态

          本文链接:https://www.haomeiwen.com/subject/hlnclctx.html