一、实体JavaBean
接下来,我们学习一个面向对象编程中,经常写的一种类——叫实体JavaBean类。我们先来看什么是实体类?
1. 什么是实体类?
实体类就是一种特殊的类,它需要满足下面的要求:
接下来我们按照要求,写一个Student实体类;
写完实体类之后,我们看一看它有什么特点? 其实我们会发现实体类中除了有给对象存、取值的方法就没有提供其他方法了。所以实体类仅仅只是用来封装数据用的。
知道实体类有什么特点之后,接着我们看一下它有哪些应用场景?
2. 实体类的应用场景
在实际开发中,实体类仅仅只用来封装数据,而对数据的处理交给其他类来完成,以实现数据和数据业务处理相分离。如下图所示
在实际应用中,会将类作为一种数据类型使用。操作数据交给StudentOperator类来处理。
// 实体类 public class Student { // 成员变量必须使用private修饰 private String name; private double chinese; private double math; // 为成员变量提供set\get方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public double getChinese() { return chinese; } public void setChinese(double chinese) { this.chinese = chinese; } public double getMath() { return math; } public void setMath(double math) { this.math = math; } // 必须要提供空参构造器 public Student() { } }
// 专门用来处理学生对象的数据 public class StudentOperator { // 处理学生对象的数据,打印总成绩 public void printTotalScore(Student s) { System.out.println(s.getName() + "同学的总成绩是:" + (s.getChinese() + s.getMath())); } // 处理学生对象的数据,打印平均成绩 public void printAvgScore(Student s) { System.out.println(s.getName() + "同学的平均成绩是:" + (s.getChinese() + s.getMath()) / 2.0); } }
public class Test { public static void main(String[] args) { // 创建学生处理类对象 StudentOperator so = new StudentOperator(); // 创建学生对象 Student s1 = new Student(); // 存储数据---为s1对象的成员变量赋值 s1.setName("播妞"); s1.setChinese(100); s1.setMath(100); // 打印总成绩,平均分 so.printTotalScore(s1); so.printAvgScore(s1); System.out.println("----------------"); // 创建学生对象 Student s2 = new Student(); // 存储数据---为s2对象的成员变量赋值 s2.setName("波仔"); s2.setChinese(59); s2.setMath(99); // 打印总成绩,平均分 so.printTotalScore(s2); so.printAvgScore(s2); } }
到这里,我们已经学习了JavaBean实体类的是什么,以及它的应用场景,我们总结一下
1.JavaBean实体类是什么?有啥特点 JavaBean实体类,是一种特殊的;它需要私有化成员变量,有空参数构造方法、同时提供 getXxx和setXxx方法; JavaBean实体类仅仅只用来封装数据,只提供对数据进行存和取的方法 2.JavaBean的应用场景? JavaBean实体类,只负责封装数据,而把数据处理的操作放在其他类中,以实现数据和数 据处理相分离。
二、面向对象综合案例
学习完面向对象的语法知识之后。接下来,我们做一个面向对象的综合案例——模仿电影信息系统。
需求如下图所示
1. 想要展示系统中全部的电影信息(每部电影:编号、名称、价格)
-
允许用户根据电影的编号(id),查询出某个电影的详细信息。
运行程序时,能够根据用户的选择,执行不同的功能,如下图所示
按照下面的步骤来完成需求
1. 第一步:定义电影类
首先每一部电影,都包含这部电影的相关信息,比如:电影的编号(id)、电影的名称(name)、电影的价格(price)、电影的分数(score)、电影的导演(director)、电影的主演(actor)、电影的简介(info)。
为了去描述每一部电影,有哪些信息,我们可以设计一个电影类(Movie),电影类仅仅只是为了封装电影的信息,所以按照JavaBean类的标准写法来写就行。
// 电影类---实体类 public class Movie { // 成员变量---电影的数据信息 // 电影编号(id) private int id; // 电影名称(name) private String name; // 电影价格(price) private double price; // 电影分数(score) private double score; // 电影导演(director) private String director; // 电影主演(actor) private String actor; // 电影简介(info) private String info; // set\get public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public voi