Java——JavaBean

本文介绍了JavaBean,它是用JAVA语言写成的可重用组件,类需具体、公共且有无参构造函数。随着业务复杂度增加,代码维护困难,可将数据和业务分开,让JavaBean保存数据。此外,还指出JavaBean保存单一对象数据可行,保存多对象数据需用集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaBean 是一种 JAVA 语言写成的可重用组件,为写成 JavaBean,类必须是具体的和公共的,并且具有无参数的构造函数。

  • 随着业务的复杂度的增加,属性会越来越多,业务(方法)越来越多, 代码会比较多不利于维护

  • 解决的方法:【将数据和业务分开】,也就是说通过javabean来保存数据,而JavaBean不涉及业务. 由专门的业务类来进行业务的维护

  • JavaBean的特征,什么是JavaBean

    1. 所有的属性私有化
    2. 必须有无参的构造函数
    3. 必须有公共的set/get方法
    4. 实现 Serializable 接口
    5. 不能有业务

Person类:

package com.cao.demo.lesson00;

public class Person {
    private String name;
    private Integer age;

    public void setName(String name) {
        this.name = name;
    }

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

    public String getName() {
        return name;
    }

    public Integer getAge() {
        return age;
    }
}

PersonAction类:

package com.cao.demo.lesson00;

public class PersonAction {
    private Person person;

    public PersonAction() {

    }

    public PersonAction(Person person) {
        this.person = person;
    }

    public void eat() {
        System.out.println(person.getName() + " is " + person.getAge() + " years old...");
    }
}

Test类:

package com.cao.demo.lesson00;

public class Test {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("cao");
        person.setAge(22);

        PersonAction personAction = new PersonAction(person);
        personAction.eat();
    }
}

结果:

cao is 22 years old...

JavaBean可以保存单一对象的数据,但如果需要保存的是多个对象的数据,比如说, 一个通讯录,其中包括多个联系人,以上方法就不可行。如果创建一个类数组呢?数据的局限性是长度固定的,而给多大不能确认,所以也不可行。因此,我们需要使用集合来存储多个对象。

User类:

package com.cao.demo.lesson02;

public class User {
    private Integer id;
    private String name;
    private String phone;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getId() {
        return id;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getPhone() {
        return phone;
    }
}

AddressBook类:

package com.cao.demo.lesson02;

import java.util.ArrayList;

public class AddressBook {
    private ArrayList<User> users=new ArrayList<>();

    public void addUser(User user){
        users.add(user);
    }

    public void deleteUser(Integer id){
        for (int i = 0; i < users.size(); i++) {
            User user=users.get(i);
            if(user.getId().equals(id)){
                users.remove(i);
                break;
            }
        }
    }
    public void updateUser(User user){
        for (int i = 0; i < users.size(); i++) {
            User u=users.get(i);
            if(u.getId().equals(user.getId())){
                users.set(i,user);
                break;
            }
        }
    }
    public void selectUsers(){
        for (User u:users) {
            System.out.println(u.getName()+"\t"+u.getPhone());
        }
    }

}

Test:

package com.cao.demo.lesson02;

public class Test {
    public static void main(String[] args) {
        User cao = new User();
        cao.setId(1);
        cao.setName("cao");
        cao.setPhone("123456789");

        User chen = new User();
        chen.setId(2);
        chen.setName("chen");
        chen.setPhone("1111111");

        AddressBook addressBook = new AddressBook();

        addressBook.addUser(cao);
        addressBook.addUser(chen);
        addressBook.selectUsers();
        System.out.println("---------------");

        User chen1 = new User();
        chen1.setId(2);
        chen1.setName("chen");
        chen1.setPhone("66666666");
        addressBook.updateUser(chen1);
        addressBook.selectUsers();
        System.out.println("------------------");

        addressBook.deleteUser(1);
        addressBook.selectUsers();
        System.out.println("-----------------");
    }
}


结果:

cao	123456789
chen	1111111
---------------
cao	123456789
chen	66666666
------------------
chen	66666666
-----------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值