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