数据域的封装实例:
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)设置新值。