1.什么是JavaBeans?

JavaBeans是Java语言中可以重复使用的软件组件,它们是一种特殊的Java类,将很多的对象封装到了一个对象(bean)中。
特点是
可序列化,
提供无参构造器,
提供getter方法和setter方法访问对象的属性

2.JavaBeans的优点和缺点:

优点:

 Bean可以控制它的属性、事件和方法是否暴露给其他程序。
Bean可以接收来自其他对象的事件,也可以产生事件给其他对象。
有软件可用来配置Bean。
Bean的属性可以被序列化,以供日后重用

缺点:

1.无参构造器的类可能实例化无效。开发者实例化它(而不是通过一些Framework实例),开发者可能没有意识到类已经不正确地实例化了。
编译器不能发现这样的问题,即使这已经被记录在文档中,也不能保证开发者会看这个文档。
2.需要为每个属性创建getter方法及大部分属性创建setter方法。这将导致巨大数量的构造模版代码(boilerplate code)

3.JavaBeans规范

1.有一个公有的无参构造器。
2.属性可以通过get、set、is(可以替代get,用在布尔型属性上)方法或遵循特定命名规范的其他方法访问。
3.可序列化。

例子:

 public class StudentBean implements java.io.Serializable{
/*
* 私有属性
*/
private String name = null;
private int age = 18;
private boolean hasScholarship = false;
//无参构造函数
public StudentBean() {
}
//getter,setter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean isHasScholarship() {
return hasScholarship;
}
public void setHasScholarship(boolean hasScholarship) {
this.hasScholarship = hasScholarship;
}
@Override
public String toString() {
return "Student name:"+getName()+"\nage:"+getAge()+"\nHasScholarship?"+isHasScholarship();
}
}
 public class TestStudentBean {

      public static void main(String[] args) {
StudentBean student = new StudentBean(); student.setName("Jack");
student.setAge(20);
student.setHasScholarship(true); System.out.println(student);
} }

Java学习之——JavaBeans的更多相关文章

  1. 转:Java学习路线图

    作者: nuanyangyang 标  题: Java学习路线图(整理中,欢迎纠正) 发信站: 北邮人论坛 (Mon Aug 11 19:28:16 2014), 站内   [以下肯定是不完整的列表, ...

  2. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  3. 登录模块的进化史,带大家回顾java学习历程(二)

    接着前面的登录模块的进化史,带大家回顾java学习历程(一) 继续往下面讲 前面我们去实现登录功能,都是想着要完成这个功能,直接在处理实际业务的类中去开始写具体的代码一步步实现,也就是面向过程的编程. ...

  4. Java 学习资料整理

    Java 学习资料整理 Java 精品学习视频教程下载汇总 Java视频教程 孙鑫Java无难事 (全12CD) Java视频教程 即学即会java 上海交大 Java初级编程基础 共25讲下载 av ...

  5. java与java学习路线

    JAVA学习路线图 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态面 ...

  6. Java学习---面向对象的远程方法调用[RMI]

    基础知识 分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果. 常见的分 ...

  7. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  8. 0035 Java学习笔记-注解

    什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...

  9. 分享篇——我的Java学习路线

    虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...

随机推荐

  1. jieba user guide

    import sysimport jiebaimport jieba.analyseimport jieba.posseg as posg sentence=u'''深圳新闻网讯 10月30日,世界城 ...

  2. [deb]制作deb包

    转自:http://www.cnblogs.com/Genesis-007/p/5219960.html 查看系统安装了哪些deb包: dpkg -l 打包: dpkg -b dir result.d ...

  3. keras系列︱Application中五款已训练模型、VGG16框架(Sequential式、Model式)解读(二)

    引自:http://blog.csdn.net/sinat_26917383/article/details/72859145 中文文档:http://keras-cn.readthedocs.io/ ...

  4. iptables nat 外网nat到内网在只限制外网访问的单一ip地址

    166 /etc/init.d/iptables start 167 iptables -I INPUT -s 192.168.10.0/24 -p tcp -j ACCEPT 168 /etc/in ...

  5. 读取 classes下的配置文件

    调用: Configure.getValue("discount.strategy.class"); 配置类: package com.util; import com.sun.j ...

  6. atmega328 熔丝

    http://www.geek-workshop.com/thread-5772-1-1.html AVR_fighter http://wenku.baidu.com/view/0c0a8ccc61 ...

  7. ThinkPHP使用memcache缓存服务器

    (1)Thinkphp的默认缓存方式是以File方式,在/Runtime/Temp 下生成了好多缓存文件. 服务器装了memcached后想给更改成memecache方式 在Conf/config.p ...

  8. java不确定参数个数方法例子

    package test; public class myTest { // 根据输入的参数动态生成数组 public static int max(int... param) { int max = ...

  9. 关于Unity中如何立即中断动画然后重新开始播放

    今天做一个FPS游戏的时候,用的是新版的动画系统,遇到一个问题. 就是用枪打敌人的时候,敌人会播放一个被击中的动画,但是如果在动画播放的过程中再射击敌人,敌人会先把第一个被击中的动画播放完,才再播放第 ...

  10. 上下栏固定, 中间滚动的HTML模板

    因为用position是脱离文档流的,所以在最上面嘛, 中间用overflow:auto就会出现滚动效果 代码 <!DOCTYPE html> <html lang="en ...