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

2019-07-17  本文已影响0人  开源oo柒

一、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.修饰的类不能被继承。

上一篇下一篇

猜你喜欢

热点阅读