Java——JavaBean

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
-----------------

猜你喜欢

转载自blog.csdn.net/qq_44371305/article/details/114070459