• Java学习之——JavaBeans


    1.什么是JavaBeans?

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

    2.JavaBeans的优点和缺点:

    优点:

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

    缺点:

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

    3.JavaBeans规范

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

    例子:

     1 public class StudentBean implements java.io.Serializable{
     2     /*
     3      * 私有属性
     4      */
     5     private String name = null;
     6     private int age = 18;
     7     private boolean hasScholarship = false;
     8     //无参构造函数
     9     public StudentBean() {
    10     }
    11     //getter,setter方法
    12     public String getName() {
    13         return name;
    14     }
    15     public void setName(String name) {
    16         this.name = name;
    17     }
    18     public int getAge() {
    19         return age;
    20     }
    21     public void setAge(int age) {
    22         this.age = age;
    23     }
    24     public boolean isHasScholarship() {
    25         return hasScholarship;
    26     }
    27     public void setHasScholarship(boolean hasScholarship) {
    28         this.hasScholarship = hasScholarship;
    29     }
    30     @Override
    31     public String toString() {
    32         return "Student name:"+getName()+"
    age:"+getAge()+"
    HasScholarship?"+isHasScholarship();
    33     }
    34 }
     1 public class TestStudentBean {
     2      
     3      public static void main(String[] args) {
     4          StudentBean student = new StudentBean();
     5          
     6          student.setName("Jack");
     7          student.setAge(20);
     8          student.setHasScholarship(true);
     9          
    10          System.out.println(student);
    11     }
    12      
    13 }
  • 相关阅读:
    python数字
    python字符串方法
    python操作符与流程控制
    网络基础和python(二)
    网络基础和python
    Ubuntu源更新
    make和makefile介绍
    JavaScript
    redis mac安装配置
    网络编程之socket(TCP,UDP)
  • 原文地址:https://www.cnblogs.com/JohnTsai/p/4099943.html
Copyright © 2020-2023  润新知