封装、继承
一、封装
1、理解封装
- 程序设计追求“高内聚,低耦合”。高内聚:类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用
- 信息隐藏:禁止直接访问一个对象中数据的实际表示,应通过操作接口来访问
- 属性私有:get/set
例:
(1).对Student类的一些属性进行封装(属性私有)
public class Student {
//封装一般是对属性的
private String name;//名字
private int id;//学号
private char sex;//性别
}
(2).我们对Student类的属性进行封装之后,在main方法里就不可以直接这样调用了
(3).所以要提供一些可以操作这些属性的方法 即 提供一些public的 get/set 方法
public class Student {
private String name;//名字
private int id;//学号
private char sex;//性别
//get 获得这个数据
public String getName(){
return this.name;
}
//set 给这个数据设置值
public void setName(String name){
this.name = name;
}
}
(4).这样在main方法中,s1这个对象就可以调用公共方法了
public class Application {
public static void main(String[] args) {
Student s1 = new Student();
//通过公共方法getName方式获得它的名字
String name = s1.getName();
//s1对象可以调用公共方法setName给name赋值
s1.setName("小陆同学");
System.out.println(s1.getName());
}
}
2.Alt + Isnert :自动生成 get/set 方法
3.封装的意义
- 提高程序的安全性,保护数据
- 隐藏代码的实现细节
- 统一接口
- 增加系统可维护性
二、继承
1.理解继承
-
继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模
-
Java中只有单继承,没有多继承
-
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等
-
继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示
-
子类是基类的拓展
-
子类继承了父类就会有父类的所有方法
例: 创建一个基类Person,创建两个派生类 Student 和 Teacher
//父类:Person类 public class Person { }
//子类:Student 是 父类Person的拓展 public class Student extends Person{ }
//子类:Teacher 是父类Person的拓展 public class Teacher extends Person{ }
例: 子类继承了父类就会有父类的所有方法
//父类:Person类 public class Person { public int money = 10_000_000; }
//子类:Student 是 父类Person的拓展 public class Student extends Person{ }
public class Application { public static void main(String[] args) { Student student = new Student(); System.out.println(student.money); } }
运行结果
2.对父类的属性进行封装
//修饰符优先级自上而下递减 //public 公有的 //protect 受保护的 //default 默认的 //private 私有的 (子类不能继承父类的私有属性)
例:
//父类:Person类 public class Person { private int money = 10_000_000; public int getMoney() { return money; } public void setMoney(int money) { this.money = money; } }
public class Application { public static void main(String[] args) { Student student = new Student(); System.out.println(student.getMoney()); } }
3.在Java中,所有的类都默认直接或间接继承object类