Java实体类(Javabean)-编程规范
Java学习笔记-Java实体类详解
今天我们要聊一个看似简单却至关重要的知识点——Java实体类。就像快递小哥打包物件需要包装盒一样,在Java世界里处理数据也需要专门的容器,这就是我们的实体类!
一、实体类是什么?——程序的"快递盒子"
想象你要寄快递:需要把物品装进盒子,贴上收件人信息。实体类就是这个"快递盒子",专门用来打包程序中的数据。比如:
public class User {
// 快递单号
private Long id;
// 收件人
private String username;
// 联系方式
private String phone;
// 地址信息
private Address address;
// 必须的getter/setter
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
// 其他getter/setter...
}
这个User类就是典型的实体类,它具备三个显著特征:
-
纯数据容器:只包含属性字段和基本方法
-
现实映射:对应真实存在的业务对象(用户/订单等)
-
持久化能力:通常与数据库表结构对应
二、实体类要求
1.类中的成员变量全部私有化,并提供public修饰的getter/setter方法。
2.类中需要提供一个无参数的构造器,有参数构造器可选。
三、实体类的应用场景
实体类的对象只负责数据存取,而对数据的业务处理交给其他类的对象来完成,以实现数据和数据业务处理相分离。
四、例子
1.新建一个学生类,注意编程规范(见代码),学生类只负责数据的存和取。
package com.itheima.javabean;
public class Student {
//1.私有成员变量
private String name;
private double chinese;//语文成绩
private double math;//数学成绩
//提供一个有参数构造方法(可选)
public Student(String name, double chinese, double math) {
this.name = name;
this.chinese = chinese;
this.math = math;
}
//必须提供一个无参数构造方法
public Student() {
}
//2.提供公开的getter/setter方法--》编程规范
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;
}
}
一般的编程规范都会:私有化属性,通过提供公开的getter/setter等方法来暴露和修改属性,不要问为什么,这就是规范!
2.创建学生对象
package com.itheima.javabean;
public class Test {
public static void main(String[] args) {
//实体类的基本作用:创建它的对象,封装数据
Student s1 = new Student();
s1.setName("张三");
s1.setChinese(80);
s1.setMath(65);
System.out.println(s1.getName()+" "+s1.getChinese()+" "+s1.getMath());
Student s2 = new Student("李四",100,90);
System.out.println(s2.getName()+" "+s2.getChinese()+" "+s2.getMath());
//实体类在开发中的应用场景
//创建一个学生的操作对象专门对学生对象的数据进行业务处理
StudentService operator = new StudentService();
operator.printTotal(s1);
operator.printAvg(s1);
}
}
3.提供数据处理的类
package com.itheima.javabean;
public class StudentService {
//提供方法:打印学生的总成绩
public void printTotal(Student s) {
System.out.println(s.getName() + "的总成绩是:" + (s.getChinese() + s.getMath()));
}
//提供方法:打印学生的平均成绩
public void printAvg(Student s) {
System.out.println(s.getName() + "的平均成绩是:" + (s.getChinese() + s.getMath()) / 2);
}
}
运行结果:
张三 80.0 65.0
李四 100.0 90.0
张三的总成绩是:145.0
张三的平均成绩是:72.5
结语:
实体类我认为就是一种编程的规范,开发方式,进行分类管理,类中的成员变量全部私有化,并提供public修饰的getter/setter方法(为了数据安全),然后主要的任务就是把数据和数据的业务处理相分离。把数据直接交给一个操作对象来进行处理。
谢谢大家的观看。如有错误请指出。