Java的静态域以及封装性相关

EmployeeTest类,用于定义一个简单的属性类。

 1 package yang.src;
 2 
 3 import java.util.Date;
 4 
 5 public class EmployeeTest {
 6     private Date hireDay;
 7     public static final int gId = 10;
 8 
 9     public int iData = 11;
10     public static int iData1 = 12;
11     
12     public Date getHireDay() {
13         return hireDay;
14     }
15     
16     public Date getCloneHireDay(){
17         return (Date)this.hireDay.clone();
18     }
19 
20     public void setHireDay(Date hireDay) {
21         this.hireDay = hireDay;
22     }
23 
24     public EmployeeTest(int year,int mouth,int day) {
25         this.hireDay = new Date(year - 1900,mouth - 1,day);
26     }
27     
28     public static void funcTest(){
29     }
30 }

MainSrc类,用于进行EmployeeTest类的实例化与封装性测试调用:

 1 package yang.src;
 2 
 3 import java.util.Date;
 4 
 5 /**
 6  * 
 7  * @author lowitty
 8  * @version V 1.0
 9  * 应该尽量避免编写返回引用可变对象的访问器方法。
10  * 因为如果在这样做的话可能会严重破坏封装性,应该返回对对象的克隆。
11  * 
12  * 1,静态域(静态变量)与静态方法
13     在Java中,如果将一个域(变量)定义为static,那么每个类中只有这样一个域(值),而不管这个类有多少个拷贝。
14     静态域的ID属于特定的类,并不属于该类的某一个实例。
15     Class Employee{
16         public int eId;
17         public static int nextId;
18     }
19     每一个雇员对象都有自己特有的EID,但是所有雇员类的实例都共享一个nextId.静态域只属于类,不属于类的实例,因此静态域又叫做类域。 
20  *
21  */
22 
23 public class MainSrc {
24     public static void main(String[] args){
25         EmployeeTest em = new EmployeeTest(1989,12-1,23);
26         Date d = em.getHireDay();
27         double b = 10*365.25*24*60*60*1000;
28         d.setTime(d.getTime() - (long)b);
29         System.out.println(em.getHireDay() + "\n" + d + "\n" + em.gId + "\t" + EmployeeTest.gId);
30     }
31 }
posted @ 2012-11-13 16:19  端木芸萱  阅读(169)  评论(0编辑  收藏  举报