JavaBean是用来干嘛的?
在JSP网页开发的初期阶段,并没有框架与逻辑分层的概念,需要将Java代码嵌入到网页中处理JSP页面中的一些业务逻辑,如字符串处理和数据库操作等。这种开发方式虽然简单,但是如果将大量的Java代码嵌入到JSP页面,必定会为后期的修改和维护带来一定的困难。同时,将Java代码写入JSP页面中起不到代码重用的作用,也不能体现出面向对象的思想。为了弥补这种开发方式的缺点,JavaBean应运而生。
JavaBean是Java开发语言中一个可以重复使用的组件,它本质上就是一个Java类。我们可以引用JavaBean组件封装数据或者完成某些业务逻辑,如封装表单数据、字符串处理和数据库操作等。使用JavaBean后,人们通常会将HTML与Java代码相分离,将Java代码单独封装成一个处理某种业务逻辑的类中,然后在JSP页面中调用此类,这样就降低了HTML代码与Java代码之间的耦合度,简化了JSP页面,提高了Java代码的重用性和灵活性。这种与HTML代码相分离后,使用Java代码封装的类就是JavaBean组件。
为了规范JavaBean的开发,Sun公司发布了JavaBean的编写规范,具体如下。
·JavaBean必须具有一个公共的、无参的构造方法,这个方法可以是编译器自动产生的默认构造方法。
·JavaBean提供公共的getter和setter方法,以方便对属性进行读/写操作。
为了让读者对JavaBean有一个直观的认识,下面讲解一个简单的封装数据的JavaBean,如文件11-10所示。
文件11-10 Book.java
package com.itheima.javabean;
public class Book {private double price;public double getPrice() {return price;}public void setPrice(double price) {this.price=price;}
}
在文件11-10中,定义了一个Book类,该类就是一个JavaBean,它没有定义构造方法,Java编译器在编译的时候,会自动为这个类提供一个默认的构造方法。Book类中定义了一个price属性,并提供了公共的getPrice()和setPrice()方法供外界访问属性。
在讲解面向对象时,经常会使用类的属性,类的属性指类的成员变量。在JavaBean中同样也有属性,但是它和成员变量不是一个概念,它是以方法定义的形式出现的,这些方法必须遵循一定的命名规范,例如,如果在JavaBean中包含一个String类型的属性name,那么在JavaBean中必须至少包含getName()和seName()方法中的一个,这两个方法的声明如下所示:
public String getName() {...}
public void setName(String name) {...}
在上述两个方法声明中,方法体内的内容用“...”表示省略。关于这两个方法的相关讲解具体如下。
·getName()方法:称为getter方法或者属性访问器,该方法必须以小写的get前缀开始,后跟属性名,属性名的第一个字母必须大写,例如,nickName属性的getter方法为getNickName()。
·setName()方法:称为setter方法或者属性修改器,该方法必须以小写的set前缀开始,后跟属性名,属性名的第一个字母必须大写,例如,nickName属性的setter方法为setNickName()。
如果一个属性只有getter方法,则该属性为只读属性,如果一个属性只有setter方法,则该属性为只写属性,如果一个属性既有getter方法,又有setter方法,则该属性为读/写属性。通常来说,在开发JavaBean的时候,其属性都定义为读/写属性。
需要注意的是,对于JavaBean属性的命名方式有一个特殊情况,如果属性的类型为boolean,它的命名方式应该使用is/set而不是get/set。例如,有一个boolean类型的属性married,则该属性所对应的方法声明如下所示:
public boolean isMarried() {...}
public void setMarried(boolean married) {...}
从上面的代码中可以看出,married属性的setter方法命名方式没有变化,而getter方法变成了isMarried()方法,当然,写成getMarried()也是可以的,只不过isMarried()更符合命名规范。
JavaBean是用来干嘛的?相关推荐
- Java高新技术笔记:反射、多线程、泛型、枚举、javaBean、代理
1.IDE: Integrated Development Environment 2.集成开发环境两个主流:Eclipse和netBeans 3.preference: 偏爱 4.Compiler: ...
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)...
最近看老罗的视频,跟着完成了利用Java操作MySQL数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...
- mysql封装 javabean,利用Java针对MySql封装的jdbc框架类JdbcUtils完整实现(包含增删改查、JavaBean反射原理,附源码)...
最近看老罗的视频,跟着完成了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...
- 谁天生就是干程序员的料?
我自从入了程序员这行,时不时就会被问到: "听说程序员收入不错,我也想转行当程序员,你觉得我适合吗?" "不是计算机专业的,怎么走好程序员之路?" " ...
- java mysql jdbc 封装_利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包括增删改查、JavaBean反射原理,附源代码)...
近期看老罗的视频,跟着完毕了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完毕对数据库的增删改查.当中查询这块,包含普通的查询和利用反射完毕的查询,主要包含以下几个函数接口 ...
- java model类_java 实体类entity,model模型,javabean的理解以及使用场景
一.java实体类entity 实体类场景:比如mvc设计中model层定义java实体 对java实体类的众多理解: A. 通常定义在model层里面 B. 一般的实体类对应一个数据表,其中的属性对 ...
- maven是干嘛的_maven项目是干嘛的
项目管理软件 . maven和javaweb没有任何关系Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.Maven除了以程序构建能力为特色之外, ...
- linux里的日志文件干啥用的,linux分析日志经常用的命令
解法1: cat access_log | awk '{print $1}' | sort | uniq -c | sort -n -r | head -10 解法2: cat access_log ...
- evt参数是干啥用的_http连接池中非常关键的两个参数,到底是干啥用的?
作者简介:大厂一线资深开发.从crud开发到资深开发,再到研究员兼技术经理.<资深开发讲技术> 从一线实战中总结有故事,有背景的案例,希望带给大家一系列技术盛宴. 求关注,欢迎技术交流.友 ...
最新文章
- flexnet licensing 启动多个服务_又小又灵巧,浪潮边缘计算服务器获深度评测高分...
- 2017/Province_Java_A/2、9数算式
- IIS 7.5 Express概况
- c语言30人成绩平均分,用C语言编程平均分数
- mongoose 执行删除操作的坑
- JavaFX布局中图片在表格中无法被自适应缩小?
- 【js逆向爬虫】-有道翻译js逆向实战
- HCL_路由器_ISIS配置
- python xgb模型 预测_如何使用XGBoost模型进行时间序列预测
- 喂!喂!喂!一起来做Python日常练习题啊!(>^ω^<)
- 牛客网-Verilog篇
- 目前最全的IT技术问答、社区、科技服务网站合集
- Android开发本地及网络Mp3音乐播放器(十五)网络音乐及歌词下载功能实现
- android 来电过滤,Android实现来电挂断
- Code For Better 谷歌开发者之声——初识Web与谷歌,拉起兴趣之心。
- 什么是“面向对象”程序设计-以Python为例
- 时钟的时针、分针和秒针重合问题
- HTML CSS游戏官网网页模板 仿绝地求生吃鸡游戏网站 大学生游戏介绍网站毕业设计 DW游戏主题网页模板下载
- 自然语言处理 | (5)英文文本处理与spaCy
- word——插入目录
热门文章
- POJ 3579 二分
- 搭建rsync+inotify实时同步
- .NET FRAMEWORK 2.0...使用增强的Windows窗体为你的.Net程序打造丰富的用户界面
- 第2讲如何打造属于自己的工程师文化
- coherence 介绍
- mysql 编码格式_设置MySQL的字符编码
- 如何保护 RFID 内部信息
- 获取电脑IP地址以及hostname
- window10使用命令ssh工具生成github开源中国需要的ssh密钥以及转换为ppk让tortriseGit工具支持它
- RAID5和RAID1的区别