在理解封装之前,我们先看一段代码。
- //Student类,具有一个属性,年龄
- public class Student
- {
- public int age;
- public void SayHi()
- {
- System.out.println("我今年" + age + "岁");
- }
- }
然后我们在main方法内实例化一个Student类对象,并对其属性age赋值。然后再调用SayHi()方法。
- public class Program
- {
- public static void main(String args [])
- {
- Student stu = new Student();
- //对stu的属性age赋值1000 显然不符合逻辑
- stu.age = 1000;
- //调用stu的SayHi()方法
- stu.SayHi();
- }
- }
以上代码看到了,我们对age属性赋的值是1000,显然不符合逻辑。那么我们怎么样对程序中的某
一字段进行约束呢。
这就用到了封装。
首先,我们先了解一下什么叫封装?
封装就是将属性私有化,提供公有的方法访问私有属性。做法就是:修改属性的可见性(访问修饰
符)来限制对属性的访问,并为每个属性创建一对取值(getter)方法和赋值方法(setter)方法,
用于对这些属性的访问。
看以下封装代码:
- public class Student
- {
- private int age; //将属性私有化
- //提供一个方法,用于对属性赋值
- public void setAge(int age)
- {
- if(age > 0 && age < 100) //对传递的值,进行判断
- {
- this.age = age; //若符合逻辑
- }
- else //若不符合逻辑
- {
- System.out.println("输入错误!");
- this.age = 20;
- }
- }
- //提供一个方法,用于读取属性的值
- public int getAge()
- {
- return age;
- }
- public void SayHi()
- {
- System.out.println("我今年" + age + "岁");
- }
- }
以上代码注释已经写的很清楚了。就是提供一组方法,其中包括两个方法,一个用于读取值的,一
个用于赋值的,在赋值的方法中,对传递进来的值进行判断,若符合条件,则赋值,若不符合。则
报错。
然后我们在main方法中,实例化一个Student类的对象,并对属性赋值。然后调用SayHi()方法。
就可以看到我们想要的结果了··
自己试试吧··