- 封装的设计要求:合理隐藏、合理暴露
private int id; // 电影编号
- 合理暴露:创建成员方法时,使用public修饰的get方法和set方法合理暴露
public void setId(int id) {
this.id = id;
}
- 实体类
- 要求1:成员变量全部私有,并提供public修饰的getter/setter方法
- 要求2:类中需要一个无参构造器,有参数构造器可选
- 实体类的对象只负责数据存取,而对数据的业务处理交给其他类的对象完成,以实现数据和数据业务处理相分离。
// 电影信息.class
public class MoviesInformation {
private int id; // 电影编号
private String name; // 电影名称
// 1. 初始化:构造器在对象创建时进行必要的初始化
// (1)无参构造函数:必须包含
public MoviesInformation() {}
// (2)有参构造函数:需要初始化才使用
public MoviesInformation(int id, String name) {
this.id = id;
this.name = name;
}
// 2. getter/setter方法用于在对象创建后修改属性。
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
- 工具类:没有创建对象的需求,建议将工具类的构造器进行私有,用于封装通用功能
// 工具类.class
public class MoviesOperator {
private MoviesInformation[] movies; // 电影信息
public MoviesOperator(MoviesInformation[] movies) {
this.movies = movies;
}
public void searchMovieById(int id) {
System.out.println("=====当前电影信息=====");
for (int i = 0; i < movies.length; i++) {
if (movies[i].getId() == id) {
System.out.println("名称:" + movies[i].getName() + "\n" +
"价格:" + movies[i].getPrice());
}
}
}
}