封装
- 高内聚 类的内部数据操作细节自己完成,外部不允许干涉
低耦合 仅暴漏少量方法给外部使用。 - 属性私有 private
get / set 方法
快捷键:Alt+ insert + get/set
特点:
- 提高程序安全性,保护数据
- 隐藏代码实现细节
- 统一接口
- 系统可维护性增加
继承
类的抽象,extends 扩展,父与子的关系
- 类和类之间的关系,还有依赖,组合,聚合等
- 继承关系的两个类,一个是子类(派生类),一个是父类
子类继承父类,使用extends- 子与父之间,应该具有 is a 的关系
Person ------- Teacher,Student
Student is a Person
查看继承权树:Ctrl + H
java中,所有的类默认直接或间接继承Object类
- 只有单继承,一个子一个父,一个父多个子
- 私有属性或方法无法被继承
// 父类
// Java中,所有类都直接或间接继承object类
public class Person {
public Person() {
System.out.println("Peron无参执行了");
}
}
// 子类,派生类 is a
// 子类继承父类,就会有父类的全部方法
public class Student extends Person {
// 父类没有无参构造时,子类也无法调用它的无参构造,可以调用有参构造super("参数");
public Student() {
//隐藏了 调用父类的无参构造
super(); // 调用父类构造器,必须要在子类构造器的第一行
System.out.println("Student无参执行了"); //先执行父类无参构造方法
}
}
main中test代码:
Student stu2 = new Student();
结果:Person无参执行了
Student无参执行了
super 父类中参数引用
- 调用父类构造方法,必须在方法的第一个
- 必须只能出现在之类的方法或构造方法中
- super和this 不能同时调用构造方法
this | super
本身调用者对象 | 父类对象应用
没继承也可使用 | 继承条件下可使用
this();本类构造 | super();父类构造
public class Person {
protected String name = "Father";
}
public class Student extends Person {
private String name = "Son";
public void test(String name){
System.out.println(name); // 传入参数:dudu
System.out.println(this.name); //当前类参数:Son
System.out.println(super.name); //父类参数:Father
}
}
main中test代码:
Student stu2 = new Student();
stu2.test("dudu");
结果:dudu
Son
Father