关于JAVA封装

来源:互联网 发布:linux系统整体迁移 编辑:程序博客网 时间:2024/05/29 11:44

在理解封装之前,我们先看一段代码。

Code:
  1. //Student类,具有一个属性,年龄   
  2. public class Student   
  3. {   
  4.         public int age;   
  5.   
  6.         public void SayHi()   
  7.        {   
  8.             System.out.println("我今年" + age + "岁");   
  9.        }   
  10. }  

 

然后我们在main方法内实例化一个Student类对象,并对其属性age赋值。然后再调用SayHi()方法。

Code:
  1. public class Program   
  2. {   
  3.     public static void main(String args [])   
  4.    {   
  5.         Student stu = new Student();   
  6.        
  7.          //对stu的属性age赋值1000  显然不符合逻辑   
  8.          stu.age = 1000;                 
  9.          //调用stu的SayHi()方法   
  10.          stu.SayHi();   
  11.    }   
  12. }  

 

以上代码看到了,我们对age属性赋的值是1000,显然不符合逻辑。那么我们怎么样对程序中的某

一字段进行约束呢。

这就用到了封装。

首先,我们先了解一下什么叫封装?

封装就是将属性私有化,提供公有的方法访问私有属性。做法就是:修改属性的可见性(访问修饰

符)来限制对属性的访问,并为每个属性创建一对取值(getter)方法和赋值方法(setter)方法,

用于对这些属性的访问。

看以下封装代码:

Code:
  1. public class Student   
  2. {   
  3.      private int age;   //将属性私有化   
  4.         
  5.      //提供一个方法,用于对属性赋值   
  6.      public void setAge(int age)   
  7.     {   
  8.             if(age > 0 && age < 100)                  //对传递的值,进行判断   
  9.             {   
  10.                   this.age = age;                          //若符合逻辑   
  11.             }   
  12.             else                                                //若不符合逻辑   
  13.             {   
  14.                   System.out.println("输入错误!");   
  15.                   this.age = 20;   
  16.             }   
  17.     }   
  18.   
  19.     //提供一个方法,用于读取属性的值   
  20.       public int getAge()   
  21.       {   
  22.             return age;   
  23.       }   
  24.   
  25.        public void SayHi()   
  26.        {   
  27.                 System.out.println("我今年" + age + "岁");   
  28.        }   
  29.   
  30.   
  31. }  

 

以上代码注释已经写的很清楚了。就是提供一组方法,其中包括两个方法,一个用于读取值的,一

个用于赋值的,在赋值的方法中,对传递进来的值进行判断,若符合条件,则赋值,若不符合。则

报错。

然后我们在main方法中,实例化一个Student类的对象,并对属性赋值。然后调用SayHi()方法。

就可以看到我们想要的结果了··

自己试试吧··

 

原创粉丝点击