学科分类
目录
Java Web

访问JavaBean的属性

在讲解面向对象时,经常会使用类的属性,类的属性指的是类的成员变量。在JavaBean中同样也有属性,但是它和成员变量不是一个概念,它是以方法定义的形式出现的,这些方法必须遵循一定的命名规范,例如在JavaBean中包含一个String类型的属性name,那么在JavaBean中必须至少包含getName()和setName方法中的一个,这两个方法的声明如下所示:

public String getName();
public void setName(String name);

​ 关于上述两个方法的相关讲解具体如下:

● getName()方法:称为getter方法或者属性访问器,该方法以小写的get 前缀开始,后跟属性名,属性名的第一个字母要大写,例如,nickName属性的getter方法为getNickName()。

● setName()方法:称为settter方法或者属性修改器,该方法必须以小写的set 前缀开始,后跟属性名,属性名的第一个字母要大写,例如,nickName属性的setter方法为setNickName()

如果一个属性只有getter方法,则该属性为只读属性,如果一个属性只有setter方法,则该属性为只写属性,如果一个属性既有getter方法,又有setter方法,则该属性为读写属性。通常来说,在开发JavaBean时,其属性都定义为读写属性。

需要注意的是,对于JavaBean属性的命名方式有一个例外情况,如果属性的类型为boolean,它的命名方式应该使用is/get而不是set/get。例如有一个boolean类型的属性married,该属性所对应的方法如下所示:

public boolean isMarried();
public void setMarried(boolean married);

从上面的代码可以看出,married属性的setter方法命名方式没有变化,而getter方法变成了isMarried。当然,如果一定要写成getMarried()也是可以的,只不过isMarried更符合命名规范。

通过上面的学习,大家对JavaBean组件有了一个初步的了解,为了更加深刻地理解JavaBean属性的定义,接下来通过具体的案例来实现一个JavaBean程序。在chapter08工程的cn.itcast.chapter08.javabean包下定义一个类Student,如例1所示。

例1 Student .java

 1    package cn.itcast.chapter08.javabean;
 2    public class Student {
 3        private String sid;
 4        private String name;
 5        private int age;
 6        private boolean married;
 7        //age属性的getter和setter方法
 8        public int getAge() {
 9            return age;
 10        }
 11        public void setAge(int age) {
 12            this.age = age;
 13        }
 14        //married属性的getter和setter方法
 15        public boolean isMarried() {
 16            return married;
 17        }
 18        public void setMarried(boolean married) {
 19            this.married = married;
 20        }
 21        //sid属性的getter方法
 22        public String getSid() {
 23            return sid;
 24        }
 25        //name属性的setter方法
 26        public void setName(String name) {
 27            this.name = name;
 28        }
 29        public void getInfo() {
 30            System.out.print("我是一个学生");
 31        }
 32    }

在例1中定义了一个Student类,该类拥有5个属性,分别为age、married、name、sid和info,其中age和married属性是可读写属性,name是只写属性,sid是只读属性,它们在类中都有命名相同的成员变量,而info属性是只读属性,但它没有命名相同的成员变量。

点击此处
隐藏目录