三大特征
1.封装
通过 private
, default
,protected
,public
关键字实现属性或方法封装,仅对外提供公共访问方式。+ “高内聚,低耦合”。
封装的好处
1.实现数据项和方法的隐藏
2.实现隐藏隔离,允许外部对类做有限的访问,开发者可以自由的改变类的内部实现
3.提高了代码的重用性
//封装
public class Student {
private String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
class Test {
public static void main(String[] args) {
Student student =new Student();
student.setUsername("张三");
String username=student.getUsername();
System.out.println(username);
}
}
类的封装
2.继承
通过extends
继承的好处
1.代码重用了
2.通过继承,实现对现实世界更加准确的建模
3.多态
一个对象变量可以指向多种实际类型对象的现象被称为"多态"
三个必要条件:继承,方法的重写,父类引用指向子类对象
多态的好处
1.提高了代码的维护性(继承保证),提高了代码的扩展性
2.Java中多态的实现方法:接口实现,继承父类进行方法重写,同一个类中进行方法重载,父类引用指向子类对象
4.Object类
1.getClass方法
获取运行时类型,返回值为Class对象。
2.hashCode方法
返回该对象的哈希码值,是为了提高哈希表的性能(Hash Table)。
3.equals方法
判断两个对象是否相等,在Object源码中equals就是使用= =去判断,所以在Object中equals是等价于= =的,但是在String及某些类对equals进行了重写,实现不同的比较。
4.clone方法
此方法只实现了一个浅层拷贝,对于基本类型宇段成功拷贝,但是如果是嵌套对象,只做了賦值,也就是只把地址拷贝了,所以没有成功拷贝,需要自己重写clone方法进行深度拷贝。
5.toString
返回一个String字符串,用于描述当前对象的信息,可以重写返回对自己有用的信息,默认返回的是当前对象的类名+hashCode的16进制数字。
6.wait方法
多线程时用到的方法,作用是让当前线程进入等待状态,同时也会让当前线程释放它所持有的锁。直到其他线程调用此对象的notify()方法或notifyAll() 方法,当前线程被唤醒。
7.notify方法
多线程时用到的方法,唤醒该对象等待的某个线程。
8.notifyAll方法
多线程时用到的方法,唤醒该对象等待的所有线程。
9.finalize
对象在被GC释放之前一定会调用f inalize方法,对象被释放前最后的挣扎,因为无法确定该方法什么时候被调用,很少使用。