当前位置: 首页 > article >正文

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. 纯数据容器:只包含属性字段和基本方法

  2. 现实映射:对应真实存在的业务对象(用户/订单等)

  3. 持久化能力:通常与数据库表结构对应

二、实体类要求

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方法(为了数据安全),然后主要的任务就是把数据和数据的业务处理相分离。把数据直接交给一个操作对象来进行处理。

谢谢大家的观看。如有错误请指出。


http://www.kler.cn/a/596448.html

相关文章:

  • AI Agent设计模式 四种高层次模式以及更具体的九种模式
  • CSS 文档流:元素排列的底层逻辑与布局控制
  • Android Studio最后一个绑定JDK8的版本,但是官方下载是最新的,怎么下载Android Studio历史版本包,这篇文章帮你解决。
  • 2025年消防设施操作员考试题库及答案
  • centos 7 搭建FTP user-list用户列表
  • Spring AOP实战指南:面向切面编程精髓
  • C语言:循环控制结构习题
  • 从 0 到 1:深度学习模型,重构世界的数字蓝图
  • solana增加流动性和删除流动性
  • 练习:运动计划
  • CUDA 学习(2)——CUDA 介绍
  • DeepSeek和Kimi在Neo4j中的表现
  • Python在图像处理领域的核心能力及典型应用场景(二)
  • 8 两数相加
  • Elasticsearch 在航空行业:数据管理的游戏规则改变者
  • 香橙派连接摄像头过程
  • 网络安全之前端学习(HTML属性篇)
  • RabbitMQ的高级特性介绍(一)
  • LangChain Chat Model学习笔记
  • 项目生命周期 和 项目管理生命周期的差异