探索 JavaBean(实体类)的奇妙世界

news2025/1/2 22:41:14

目录

一、啥是 JavaBean(实体类)

(一)定义与特点

(二)为啥要用 JavaBean

二、动手写一个 JavaBean(实体类)

(一)创建一个简单的用户 JavaBean

(二)使用这个 JavaBean

三、JavaBean 在实际开发中的应用场景

(一)在 Web 开发中的应用

(二)在数据持久化中的应用


宝子们,今天咱来聊聊 Java 编程里一个超重要的概念 ——JavaBean,也就是实体类。这玩意儿在 Java 开发中无处不在,就像是建筑里的砖块,虽然不起眼,但却是构建各种应用程序的基础。

一、啥是 JavaBean(实体类)

(一)定义与特点

简单来说,JavaBean 就是一个遵循特定设计模式的普通 Java 类。它通常具有以下特点:

  • 私有属性:把类的属性用 private 修饰,这就像是给属性穿上了一层保护衣,防止外部随意访问和修改,保证数据的安全性和完整性。比如说,一个代表用户的 JavaBean 有 userName 和 password 这样的属性,肯定不能让随便哪个程序都能直接修改密码吧,所以要用 private 藏起来。
  • 公共的 getter 和 setter 方法:为了让外部能够有限制地访问和修改这些私有属性,我们会提供公共的 get 和 set 方法。get 方法用于获取属性的值,set 方法用于设置属性的值。这就像是给属性开了个小窗口,外部只能通过这个窗口来查看和操作属性,而不能直接伸手进去乱摸。
  • 无参构造函数:一般来说,JavaBean 会提供一个无参的构造函数,这样在创建对象的时候就更加灵活方便。就好比你盖房子,有时候可能需要一个空壳子房子(无参构造创建的对象),然后再慢慢往里面填东西(设置属性值)。

(二)为啥要用 JavaBean

  • 代码的规范性和可读性:遵循 JavaBean 的规范写代码,让其他程序员一看就知道这个类是怎么回事,哪些属性可以访问和修改,提高了代码的可读性和可维护性。想象一下,如果大家写的类都乱七八糟,没有统一的规范,那后来的人接手项目可就头大了。
  • 方便数据的传输和存储:在 Java 应用程序中,经常需要在不同的层(比如表现层、业务逻辑层、数据访问层)之间传递数据。JavaBean 就像是一个标准的数据包,能够方便地在这些层之间穿梭,而且可以很容易地被序列化(转换成字节流)存储起来,或者从存储中反序列化(还原成对象)回来。

二、动手写一个 JavaBean(实体类)

(一)创建一个简单的用户 JavaBean

// 这就是我们的用户 JavaBean 类
public class User {
    // 私有属性,用户名字
    private String userName;
    // 私有属性,用户密码
    private String password;
    // 私有属性,用户年龄
    private int age;

    // 无参构造函数
    public User() {
    }

    // 有参构造函数,方便在创建对象时直接初始化属性
    public User(String userName, String password, int age) {
        this.userName = userName;
        this.password = password;
        this.age = age;
    }

    // getter 和 setter 方法

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

宝子们看,这个 User 类就是一个典型的 JavaBean。通过 private 修饰属性,保证了数据的安全;提供了公共的 get 和 set 方法,让外部可以合适地访问和修改属性;还有无参和有参构造函数,方便创建对象。

(二)使用这个 JavaBean

public class JavaBeanExample {
    public static void main(String[] args) {
        // 使用无参构造函数创建一个 User 对象
        User user1 = new User();
        // 通过 setter 方法设置属性值
        user1.setUserName("张三");
        user1.setPassword("123456");
        user1.setAge(25);

        // 使用有参构造函数直接创建并初始化一个 User 对象
        User user2 = new User("李四", "abcdef", 30);

        // 通过 getter 方法获取属性值并打印
        System.out.println("用户 1 的名字:" + user1.getUserName());
        System.out.println("用户 2 的密码:" + user2.getPassword());
    }
}

在 main 方法里,我们演示了如何创建 User JavaBean 的对象,以及如何使用 get 和 set 方法来操作对象的属性。是不是很简单?

三、JavaBean 在实际开发中的应用场景

(一)在 Web 开发中的应用

在 Web 应用程序中,当用户提交一个表单时,后台的 Java 代码通常会把表单数据封装成一个 JavaBean 对象。比如说,一个用户注册的表单,包含用户名、密码、邮箱等信息,后台就可以创建一个 UserRegistrationBean,把表单里的各个字段的值通过 set 方法设置到这个 JavaBean 中,然后再把这个对象传递给业务逻辑层进行处理,比如验证数据的合法性、把用户信息保存到数据库等。

(二)在数据持久化中的应用

当我们要把数据存储到数据库或者从数据库读取数据时,JavaBean 也发挥了重要作用。比如我们有一个 Product JavaBean,代表商品信息,包含商品的名称、价格、库存等属性。在数据访问层,我们可以把从数据库查询到的结果集(每一行数据)封装成一个个 Product 对象,然后再把这些对象返回给业务逻辑层进行进一步的处理。反过来,当要把一个新的商品信息保存到数据库时,也可以先创建一个 Product 对象,设置好属性值,然后在数据访问层把这个对象的属性值提取出来,拼成 SQL 语句插入到数据库中。

宝子们,JavaBean(实体类)虽然看起来简单,但却是 Java 开发中不可或缺的一部分。掌握好它,能让你的代码更加规范、易于维护和扩展,为你在 Java 编程的道路上打下坚实的基础。如果在学习过程中有啥问题,随时回来看看这篇文章,或者去网上搜搜更多的资料,加油哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2267957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

李永乐线性代数:A可逆,AX=B相关推论和例题解题思路

例题1: 思路讲解: 这个 (A-2E)可逆,所以有P(A-2E) E, 也就是(A-2E)的逆矩阵是P; 那么PA (A-2E)的逆 * A B P(A-2E,A)(E,B) 所以就可以直接求出B,也就是(A-2E)的逆 * A 例题2: 思路讲解:…

【Compose multiplatform教程18】多平台资源的设置和配置

要正确配置项目以使用多平台资源,请执行以下操作: 添加库依赖项。 为每种资源创建必要的目录。 为限定资源创建其他目录(例如,深色 UI 主题或本地化字符串的不同图像)。 依赖项和目录设置 要访问多平台项目中的资源…

Doris的SQL原理解析

今天来介绍下Doris的SQL原理解析,主要从语法、解析、分析、执行等几个方面来介绍,可以帮助大家对Doris底层有个清晰的理解~ 一、Doris简介 Apache Doris是一个基于MPP架构的高性能、实时的分析型数据库,能够较好的满足报表分析、即席查询、…

Excel for Finance 07 `FV PV` 函数

Excel 的 FV 函数用于计算一笔投资在未来的价值,基于固定的利率和定期付款。这是一个金融函数,常用来分析储蓄计划、贷款、或投资的增长。 语法: FV(rate, nper, pmt, [pv], [type])参数说明: rate(必需)&…

【运维】部署Gitea

部署Gitea Gitea文档 系统:Ubuntu 20.04.6 LTS 步骤: 准备数据库 使用内置 SQLite,无需额外准备。 下载安装 下载最新版本的 Gitea 并安装: wget -O gitea https://dl.gitea.com/gitea/version/gitea-version-linux-amd64 chm…

Redis KEYS查询大批量数据替代方案(推荐SCAN 命令)

文章目录 前言KEYS命令问题背景替代方案1.使用 SCAN 命令2. 使用有序集合(Sorted Set)3. 使用哈希(Hash)4. 使用 Redis 模块(如 RediSearch) 总结 前言 在使用 Redis 时,KEYS 命令虽然简单直接…

Apache Doris 创始人:何为“现代化”的数据仓库?

在 12 月 14 日的 Doris Summit Asia 2024 上,Apache Doris 创始人 & PMC 成员马如悦在开场演讲中,围绕“现代化数据仓库”这一主题,指出 3.0 版本是 Apache Doris 研发路程中的重要里程碑,他将这一进展总结为“实时之路”、“…

3. 指针、数组

目录 一、指针和数组 🍐 数组名指向首地址 🍊 例子 二、数组作为函数参数 🍋 数组名作为函数参数,为什么必须传递数组大小? 三、指针和字符数组 🍌怎么样存储一个string? &#x1f349…

upload-labs关卡记录14

让上传图片马,并且三种后缀都要上传成功才算成功: 先试试gif的吧: 可以上传,同理:查看源码 只检查了两个字节,我们直接修改一句话木马,先改后缀php为png,然后winhex修改头部就完了 …

前端(htmlcss)

前端页面 Web页面 PC端程序页面 移动端APP页面 ... HTML页面 HTML超文本标记页面 超文本:文本,声音,图片,视频,表格,链接 标记:由许多标签组成 HTML页面运行到浏览器上面 vscode便捷插件使用 vs…

HTML——16.相对路径

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><a href"../../fj1/fj2/c.html" target"_blank">链接到c</a><!--相对路径&#xff1a;-->…

coturn docker 项目 搭建【一切正常】

业务需求&#xff1a;需要coturn这个服务 定制语音视频连线 请参考"小红的逃脱外星人追踪计划" coturn项目 本地测试连接服务 turnutils_stunclient -p 3478 127.0.0.1turnutils_stunclient -p 3478 -L 127.0.0.1 127.0.0.1telnet localhost 3478turnutils_uclient …

【回溯】LeetCode经典题目总结:组合、排列、子集、分割、N皇后、单词搜索

回溯 组合问题组合总和全排列子集分割回文串N皇后电话号码的字母组合单词搜索括号生成 组合问题 给定两个整数 n 和 k&#xff0c;返回 1 … n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 树形结构&#xff1…

Linux-frp_0.61.1内网穿透的配置和使用

下载frp frp官网 https://gofrp.org/zh-cn/docs/setup/ frp安装包下载地址 https://github.com/fatedier/frp/releases?page1 下载之后在服务器上 解压 tar -zxvf frp_0.61.1_linux_amd64.tar.gztar&#xff1a;一个用于压缩和解压缩的工具。-z&#xff1a;表示使用 gzi…

WEB攻防-通用漏洞-文件上传-js验证-MIME验证-user.ini-语言特征

目录 定义 1.前端验证 2.MIME验证 3.htaccess文件和.user. ini 4.对内容进行了过滤&#xff0c;做了内容检测 5.[ ]符号过滤 6.内容检测php [] {} ; 7.()也被过滤了 8.反引号也被过滤 9.文件头检测 定义 文件上传漏洞是指攻击者上传了一个可执行文件&#xff08;如木马…

Excel基础知识

一&#xff1a;数组 一行或者一列数据称为一维数组&#xff0c;多行多列称为二维数组&#xff0c;数组支持算术运算&#xff08;如加减乘除等&#xff09;。 行&#xff1a;{1,2,3,4} 数组中的每个值用逗号分隔列&#xff1a;{1;2;3;4} 数组中的每个值用分号分隔行列&#xf…

快速下载pytorch_geometric

注意&#xff1a;千万不要一上去就使用pip去安装&#xff01;&#xff01;&#xff01; 1.找到GitHub手动下载所需依赖: https://github.com/pyg-team/pytorch_geometric 进入网址后点击此处&#xff1a; 2.点击here进去后寻找自己的torch版本&#xff08;我的是torch2.1.2的…

数学建模 绘图 图表 可视化(2)

文章目录 前言柱形图条形图克利夫兰点图系列坡度图南丁格尔玫瑰图径向柱图极坐标图词云图总结参考资料 前言 承接上期 数学建模 绘图 图表 可视化&#xff08;1&#xff09;的总体描述&#xff0c;这期我们继续跟随《Python 数据可视化之美 专业图表绘制指南》步伐来学习其中l…

建造者模式 Builder Pattern

在创建一个对象的时候&#xff0c;构造器参数有点多&#xff0c;而且有些参数还是可选的&#xff0c;再者还有不少同类型的&#xff0c;那就更应该使用 builder 模式了。 使用 Builder 模式的初衷是 把易变性&#xff08;mutability&#xff09;移动到Builder类&#xff0c;而…

【Java】IO流练习

IO流练习 题干&#xff1a; 根据指定要求&#xff0c;完成电话记录、 注册、登录 注册 题干&#xff1a; 完成【注册】功能&#xff1a; 要求&#xff1a; 用户输入用户名、密码存入users.txt文件中 若users.txt文件不存在&#xff0c;创建该文件若users.txt文件存在 输入…