1.Java Bean 简介

Java Bean  (也称为Bean) 是一个遵循特定写法的Java类,只不过这个类需要遵循一些编码的约定,通常具有如下特点:

1).它是一个公开的(public)类;

2).它有一个默认的构造方法,也就是不带参数的构造方法(在实例化Java Bean 时,要调用默认的构造方法)。

3).它提供setXXX()方法和getXXX()来让外部程序设置和获取Java Bean 的属性。

4).它实现 java.io.Serializable或者java.io.Externalizable接口,以支持序列化。

综上所述,符合上述条件的类,我们都可把它看成是 Java Bean组件。

2.Java Bean 的作用

JavaBean在J2EE开发中,通常用于封装数据,对于遵循以上写法的JavaBean组件,其它程序可以通过反射技术实例化JavaBean对象,并且通过反射那些遵守命名规范的方法,从而获知JavaBean的属性,进而调用其属性保存数据。

3.Java Bean 的属性命名

属性(property)是 Java Bean 组件内部状态的抽象表示,外部程序使用属性来设置和获取 Java Bean 组件的状态,为了让外部程序能够知道 Java Bean 提供了哪些属性,我们在编写Java Bean 时必须遵循标准的命名方式。

例如:一个String类型的username属性,它对应的方法如下:

public String getUsername()

public void setUsername(String username)

也就是为每一个属性添加getXXX()方法和setXXX()方法,其中属性名字的第一个字母大写,然后就在名字前面加上“get”和“set”。这样的属性是可读写的属性,如果只有get方法,那么这个属性是只读属性;如果一个属性只有set方法,那么这个属性是只写属性。get/set 命名方式有一个例外,那就是对于Boolean类型的属性,应该使用 is/set 命名方式,在下面的实例中具体说明。

4.举例Java Bean的创建及规范package anli;

public class Javabean{

private String username;//用户名

private String passward;//密码

//注意:对于Boolean类型的属性getxxx()方法与其他类型的方法有点区别

private boolean married = false;

public String getUsername(){

return username;

}

public void setUsername(String username){

this.username = username;

}

public String getPassward(){

return passward;

}

public void setPassward(String passward){

this.passward = passward;

}

public boolean isMarried(){//boolean类型的getxxx()方法为isxxx()

return married;

}

public void setMarried(boolean married){

this.married = married;

}

}

常见笔试题:

以下哪些方法属于Java Bean 规范的方法呢?

A.getName()

B.getName(String name)

C.setName(String name)

D.setName()

E.setFlag(boolean flag)

F.isFlag()

解析:setXXX()方法有参数,getXXX()方法没有参数,Boolean类型的getXXX()方法为isXXX()。

参考答案:A.C.E.F

5.Java Bean 的属性类型

Java Bean 有4种类型的属性:简单属性(simple property)、索引属性(indexed property)、绑定属性(bound property)和约束属性(constrained property)在 JSP 中支持简单属性和索引属性,所以在这里小编只介绍Java Bean 的简单属性和索引属性。

a.简单属性

简单属性就是接收单个值的属性,即只要采用get/set命名即可。

b.索引属性

索引属性就是获取和设置数组时使用的属性,要运用索引属性,需要提供两对get/set方法,一对用于数组,另一对用于数组中的元素,语法格式如下:

publicPropertyType[] getPropertyName()

publicvoid setPropertyName(PropertyType[] values)

publicPropertyType getPropertyName(int index)

public void setPropertyName(int index ,PropertyType value)

例如,有一个索引属性 age,它的get/set方法如下:

package anli;

public class App {

private String[] age;

public String[] getAge(){

return age;

}

public void setAge(String[] age){

this.age = age;

}

public String getAge(int i){

return age[i];

}

public void setAge(int i,String newAge){

age[i] = newAge;

air java,Java Bean相关推荐

  1. java 中 bean 的生命周期

    java 中 bean 的生命周期 本篇中会对涉及到的知识点皆做出描述: 首先,我们先了解先虚拟机的类加载机制: 虚拟机把描述类的数据从Class 文件中加载到内存,并对数据进行校验.转换解析和初始化 ...

  2. Spring 基于Java的Bean声明

    Spring 基于Java的Bean声明 使用@Configuration进行设置: Xml: <?xml version="1.0" encoding="UTF- ...

  3. ABAP表生成Java实体Bean

    项目中需要将HR模块中的表数据同步到Java系统中,向外围系统提供分发与查询服务,涉及到的表有两百多张,字段好几千上万个,如果手工一张张这些ABAP表在Java系统数据库中创建一遍的话,工作量将非常大 ...

  4. java引入bean代码_通过java代码装配bean

    importorg.springframework.beans.factory.annotation.Qualifier;importorg.springframework.context.annot ...

  5. Java POJO Bean 对象与 Web Form 表单的自动装配

    PS: 我一直在找寻为什么 struts2有自动将form字段和getter setter 自动 匹配的功能, 这篇文章解答了我的疑惑 深度剖析:Java POJO Bean 对象与 Web Form ...

  6. 编程新手表示很想知道JAVA中Bean是什么?

    原文:编程新手表示很想知道JAVA中Bean是什么? NanSan 小编发现很多人都在问JAVA中Bean是什么? 简单笼统的说就是一个类,一个可复用的类.这样的解释可能看着都还是云里雾里,跟没说一样 ...

  7. Java Spring Bean的生命周期 三级缓存

    Java Spring Bean的生命周期 三级缓存 SpringBean的生命周期:是从 Bean 实例化之后(即通过反射创建出对象之后),到Bean成为一个完整对象,最终存储到单例池中,这个过程被 ...

  8. JAVA中Bean是什么?

    JAVA中Bean是什么? 简单笼统的说就是一个类,一个可复用的类. javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,就是用来设置数据的属性和一些行为,然 ...

  9. java java se_Java 8 SE可选,严格的方法

    java java se 大约两周前,Stephen Colebourne提出了使用Optional的实用方法 . 如果您阅读了它,您可能会从我以前的建议中猜到我不同意. 总览 我必须以免责声明开头, ...

  10. java java se_Java SE 11:推动Java前进

    java java se 介绍 在我看来,这篇文章提出了Java语言应该如何发展成为一种首选语言. 它还提供了一些我喜欢但是有时(可能永远不会)成为Java的一部分的功能,出于某些原因,我将对此加以解 ...

最新文章

  1. 动态增删表格行(纯JS写法)
  2. UVA 11626 凸包(含共线)
  3. MongoDB学习笔记(2)
  4. 关于线程池,那些你还不知道的事
  5. 【转】Maya Mel – Search String in String
  6. sdut 汉诺塔系列2
  7. 配置nginx负载均衡
  8. 7.这就是搜索引擎:核心技术详解 --- 云存储与云计算
  9. 网站性能优化——雅虎14条
  10. PE恢复linux主引导记录,u大师的U盘pe工具重建主引导记录的方法
  11. AttributeError:module ‘keras.engine.topology‘ has no attribute ‘load_weights_from_hdf5_group_by_name
  12. php 按钮外观怎么改变,php 按钮样式
  13. Hibernate的Disjunction和Conjunction
  14. 基于无人机摄影测量技术的桥梁检测
  15. linux下,fping命令与ping命令解析
  16. AutoCAD:The miracle created by Autodesk
  17. office病毒分析从0到1
  18. 3500字长文讲透《CRM商机管理是什么》
  19. 后台和小程序实现卡片式轮播图
  20. uniapp 修改全局字体

热门文章

  1. javafx 表格列拖拉_JavaFX技巧22:“自动调整大小(树)”表列
  2. c#发送讯息_企业讯息
  3. JDK 8 BigInteger精确缩小转换方法
  4. 使用log4j2免费分配日志记录
  5. eclipse juno_Eclipse Juno上带有GlassFish的JavaEE 7
  6. Java命令行界面(第4部分):命令行
  7. soa示例_SOA示例应用程序
  8. 存根类 测试代码 java_嘲弄和存根–了解Mockito的测试双打
  9. javafx打包路径问题_关于JavaFX的最常见问题
  10. 内存映射获取行数_使用内存映射文件获取巨大的矩阵