Java实体类(Javabean)-编程规范

Java学习笔记-Java实体类详解

今天我们要聊一个看似简单却至关重要的知识点——Java实体类。就像快递小哥打包物件需要包装盒一样,在Java世界里处理数据也需要专门的容器,这就是我们的实体类!

一、实体类是什么?——程序的"快递盒子"

想象你要寄快递:需要把物品装进盒子,贴上收件人信息。实体类就是这个"快递盒子",专门用来打包程序中的数据。比如:

public class User {// 快递单号private Long id;// 收件人private String username;// 联系方式private String phone;// 地址信息private Address address;// 必须的getter/setterpublic 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.rhkb.cn/news/38248.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek写打台球手机小游戏

DeepSeek写打台球手机小游戏 提问 根据提的要求,让DeepSeek整理的需求,进行提问,内容如下: 请生成一个包含以下功能的可运行移动端打台球小游戏H5文件: 要求 可以重新开始游戏 可以暂停游戏 有白球和其他颜色的球&am…

SpringMVC的执行流程剖析和源码跟踪

目录 一、常用组件:1、DispatcherServlet2、HandlerMapping3、Handler4、HandlerAdapter:5、ViewResolver6、View 二、SpringMVC的执行流程:1、流程图 在这里插入图片描述2、文字解析流程图3、ContextLoaderListener 三、源码跟踪1、doService()方法2、doDispatch()方法逻辑分解…

LeetCode hot 100 每日一题(13)——73. 矩阵置零

这是一道难度为中等的题目&#xff0c;让我们来看看题目描述&#xff1a; 给定一个 _m_ x _n_ 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 提示&#xff1a; m matrix.lengthn matrix[0].length1 < m, n …

ubuntu 解挂载时提示 “umount: /home/xx/Applications/yy: target is busy.”

问题如题所示&#xff0c;我挂载一个squanfs文件系统到指定目录&#xff0c;当我使用完后&#xff0c;准备解挂载时&#xff0c;提示umount: /home/xx/Applications/yy: target is busy.&#xff0c;具体的如图所示&#xff0c; 这种提示通常是表明这个路径的内容正在被某些进…

跟着StatQuest学知识06-CNN进行图像分类

目录 一、CNN特点 二、CNN应用于图像分类 &#xff08;一&#xff09;使用过滤器 &#xff08;二&#xff09;通过ReLU激活函数 &#xff08;三&#xff09;应用新的滤波器&#xff08;池化&#xff09; &#xff08;四&#xff09;输入 &#xff08;五&#xff09;输出…

MATLAB 控制系统设计与仿真 - 27

状态空间的标准型 传递函数和状态空间可以相互转换&#xff0c;接下来会举例如何有传递函数转成状态空间标准型。 对角标准型 当 G(s)可以写成&#xff1a; 即&#xff1a; 根据上图可知&#xff1a; 约当标准型 当 G(s)可以写成&#xff1a; 即&#xff1a; 根据上图…

Python网络编程入门

一.Socket 简称套接字&#xff0c;是进程之间通信的一个工具&#xff0c;好比现实生活中的插座&#xff0c;所有的家用电器要想工作都是基于插座进行&#xff0c;进程之间要想进行网络通信需要Socket&#xff0c;Socket好比数据的搬运工~ 2个进程之间通过Socket进行相互通讯&a…

C++ --- 多态

1 多态的概念 多态(polymorphism)的概念&#xff1a;通俗来说&#xff0c;就是多种形态。多态分为编译时多态(静态多态)和运⾏时多 态(动态多态)&#xff0c;这⾥我们重点讲运⾏时多态&#xff0c;编译时多态(静态多态)和运⾏时多态(动态多态)。编译时 多态(静态多态)主要就是我…

MQTT的安装和使用

MQTT的安装和使用 在物联网开发中&#xff0c;mqtt几乎已经成为了广大程序猿必须掌握的技术&#xff0c;这里小编和大家一起学习并记录一下~~ 一、安装 方式1、docker安装 官网地址 https://www.emqx.com/zh/downloads-and-install/broker获取 Docker 镜像 docker pull e…

ROS多机通信功能包——Multibotnet

引言 这是之前看到一位大佬做的集群通信中间件&#xff0c;突发奇想&#xff0c;自己也来做一个&#xff0c;实现更多的功能、更清楚的架构和性能更加高效的ROS多机通信的功能包 链接&#xff1a;https://blog.csdn.net/benchuspx/article/details/128576723 Multibotnet Mu…

pfsense部署四(静态路由的配置)

目录 一 . 介绍 二 . 配置过程 一 . 介绍 pfsense开源防火墙经常在进行组网时&#xff0c;通常会用于连接不同的网络&#xff0c;在这个时候进需要给pfsense配置路由&#xff0c;而这篇文章介绍的是静态路由的配置 二 . 配置过程 拓扑图&#xff1a; 本次实验使用ensp模拟器…

干货!三步搞定 DeepSeek 接入 Siri

Siri高频用户福音&#xff0c;接下来仅需3步教你如何将 DeepSeek 接入 Siri&#xff01;虽然苹果公司并没有给国行产品提供 ai 功能&#xff0c;但是我们可以让自己的 iPhone 更智能一点。虽然有消息称苹果和阿里巴巴将合作为中国iPhone用户开发AI功能&#xff0c;但我们可以先…

自动学习和优化过程,实现更加精准的预测和决策的智慧交通开源了

智慧交通视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。通过高效的实时视…

DeepSeek R1 本地部署指南 (3) - 更换本地部署模型 Windows/macOS 通用

0.准备 完成 Windows 或 macOS 安装&#xff1a; DeepSeek R1 本地部署指南 (1) - Windows 本地部署-CSDN博客 DeepSeek R1 本地部署指南 (2) - macOS 本地部署-CSDN博客 以下内容 Windows 和 macOS 命令执行相同&#xff1a; Windows 管理员启动&#xff1a;命令提示符 CMD ma…

使用 Node.js 读取 Excel 文件并处理合并单元格

使用 Node.js 读取 Excel 文件并处理合并单元格 在现代的数据处理任务中&#xff0c;Excel 文件是一种非常常见的数据存储格式。无论是数据分析、报表生成&#xff0c;还是数据迁移&#xff0c;Excel 文件都扮演着重要的角色。然而&#xff0c;处理 Excel 文件时&#xff0c;尤…

汇川EASY系列之以太网通讯(MODBUS_TCP做从站)

汇川easy系列PLC做MODBUS_TCP从站,不需要任何操作,但是有一些需要知道的东西。具体如下: 1、汇川easy系列PLC做MODBUS_TCP从站,,ModbusTCP服务器默认开启,无需设置通信协议(即不需要配置),端口号为“502”。ModbusTCP从站最多支持31个ModbusTCP客户端(ModbusTCP主站…

1996-2023年各省公路里程数据(无缺失)

1996-2023年各省公路里程数据&#xff08;无缺失&#xff09; 1、时间&#xff1a;1996-2023年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;公路里程&#xff08;万公里&#xff09; 4、范围&#xff1a;31省 5、指标解释&#xff1a;公路里程指报告期末…

虚拟机访问主机的plc仿真

主机 虚拟机 默认&#xff0c;连接物理地址

从“不敢买大”到“按墙选屏”,海信电视如何凭百吋重构客厅?

电视买小了&#xff0c;成为茜茜新房入住后最大的遗憾。 新房装修的时候&#xff0c;茜茜担心电视买大了眼睛看着累&#xff0c;因此把尺寸选在了65吋。结果入住后&#xff0c;孩子看动画片嚷着“画面太小”&#xff0c;老公看球赛吐槽“看不清球员号码”&#xff0c;全家追剧…

Swift 经典链表面试题:如何在不访问头节点的情况下删除指定节点?

摘要 在日常开发中&#xff0c;链表虽然不像数组、字典那么常用&#xff0c;但在某些场景下还是挺重要的。尤其是面试的时候&#xff0c;链表题目可是经典考点之一。今天我们要聊的就是一个看似简单&#xff0c;但很多人第一次做都会卡住的问题——删除单链表中的指定节点。 …