Catherine_zhilin

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数据域的封装实例:

 1 class CircleCount
 2 {
 3     private double r=1.0;
 4     private static int count=0;
 5     CircleCount()
 6     {
 7         CircleCount.count++;
 8     }
 9     CircleCount(double r)
10     {
11         this.r=r;
12         CircleCount.count++;
13     }
14     public double getR()
15     {
16         return this.r;
17     }
18     public void setR(double r)
19     {
20         this.r=(r>0?r:0);
21     }
22     public static int getCount()
23     {
24         return count;
25     }
26         public double getArea()
27     {
28         return r*r*Math.PI;
29     }
30 }
31 public class test
32 {
33     public static void main(String [] args)
34     {
35         CircleCount C1=new CircleCount();
36         C1.setR(8);
37         System.out.println("c1.r="+C1.getR()+",c1.count="+C1.getCount());
38         
39         CircleCount C2=new CircleCount(5);
40         C2.setR(-9);
41         System.out.println("r="+C2.getR()+",count="+C2.getCount());
42         
43         
44     }
45 }

注:其中 this.r 也可以换成 r  ,无影响。 其中 r 和 count 被封装。

1.私有数据域只能在定义他们的类中访问。不能再客户程序中使用。r 和 count 是私有的,不能被修改,。

2.若有客户需要存储 ,修改数据域。可以用get方法(getR)返回数据的值,用set方法(setR)设置新值。

posted on 2018-03-28 17:42  kkkshiki  阅读(2960)  评论(0编辑  收藏  举报