JavaBean 是一种 JAVA 语言写成的可重用组件,为写成 JavaBean,类必须是具体的和公共的,并且具有无参数的构造函数。
-
随着业务的复杂度的增加,属性会越来越多,业务(方法)越来越多, 代码会比较多不利于维护
-
解决的方法:【将数据和业务分开】,也就是说通过javabean来保存数据,而JavaBean不涉及业务. 由专门的业务类来进行业务的维护
-
JavaBean的特征,什么是JavaBean
- 所有的属性私有化
- 必须有无参的构造函数
- 必须有公共的set/get方法
- 实现 Serializable 接口
- 不能有业务
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
-----------------