什么是实体类?
- 就是一种特殊形式的类
- 这个类中的成员变量都要隐藏(私有)
private obj
并且要对外提供相应的get、set方法
public String getObj() { return obj; } public void setObj(String obj) { this.obj = obj; }
-
类中必须有一个公共的无参构造器
public class Obj { // 1、必须私有成员变量,并为每个成员添加set、get方法 private String obj; // 2、必须为类提供一个公开的无参构造器 public Obj() { } public Obj(String obj) { this.obj = obj; } public String getObj() { return obj; } public void setObj(String obj) { this.obj = obj; } }
- 这个类中的成员变量都要隐藏(私有)
PS:在idea中可用使用快捷生成功能,无参构造器选择select none
那么问题来了实体类有啥用?
- 实体类只负责数据存取,而将数据处理交给其他类来完成,可以实现数据和业务处理分离
-
例如:实体类(以原神角色为例)
public class RoleOfGenShin { private String roleName; private String element; // getter setter方法(略) }
- 业务类
public class RoleOperator { // 封装的规范(建议私有) private Role r; public RoleOperator (Role r) { this.r= r; } public void printEle(){ if(r.getElement == "Anemo") { System.out.praintln(r.getName + "神之眼:风"); } else if(r.getElement == "Geo") { System.out.praintln(r.getName + "神之眼:岩"); } else if(r.getElement == "Electro") { System.out.praintln(r.getName + "神之眼:雷"); } else if(r.getElement == "Dendro") { System.out.praintln(r.getName + "神之眼:草"); } else if(r.getElement == "Hydro") { System.out.praintln(r.getName + "神之眼:水"); } else if(r.getElement == "Pyro") { System.out.praintln(r.getName + "神之眼:火"); } else if(r.getElement == "Cryo") { System.out.praintln(r.getName + "神之眼:冰"); } } }
- 测试类
public class Test { public static void main(String() args) { RoleOfGenShin r1 = new RoleOfGenShin(); r1.setRoleName("钟离"); r1.setElement("Geo"); System.out.println(r1.getRoleName()); System.out.println(r1.getElement()); Service service = new Service(); service.printEle(); }
-