在Java中,為了數據的安全,換句話說就是為了隱藏你的代碼的一些實現細節,我們會用private來修飾屬性,使用private修飾的屬性就不能被其他類直接訪問了,想要訪問就需要通過set、get方法;顧名思義,set是設置數據,ge是得到數據。不知道你想不想問,那我通過get、set 方法還是能訪問到數據,為啥說數據變安全了呢?先說有了set、get方法,假如別人的類需要用到你的類里面的name,而你用了private修飾name,他就得通過getName()方法來得到你的name數據,並且是只得到了name數據,想要瞅一眼別的?沒門。那要是沒有用private修飾屬性呢?他是不是想要哪個要哪個,想改哪個改哪個,簡直是為所欲為啊。好了,上代碼:
第一個類:Person01
1 package test; 2 3 public class Person01 { 4 5 //用private來修飾屬性 6 private String name; 7 private int age; 8 9 //給屬性添加get、set方法 10 public String getName() { 11 return name; 12 } 13 14 public void setName(String name) { 15 this.name = name; 16 } 17 18 public int getAge() { 19 return age; 20 } 21 22 public void setAge(int age) { 23 this.age = age; 24 } 25 26 }
第二個類:Person02
1 package test; 2 3 public class Person02 { 4 5 public static void main(String[] args) { 6 //創建的是前面的類Person01類的對象 7 Person01 p1 = new Person01(); 8 9 //現在我想給Person01(別人的類)的屬性附上值,然后拿過來用 10 11 //不能這樣賦值 如果給Person01里name的private修飾符去掉就可以這樣賦值 12 // p1.name = "張三"; 13 14 //通過set方法賦值 15 p1.setName("張三"); 16 17 //是不是每一個set只能賦一個值 如果把Person01類的setAge()方法刪掉,那這個就會報錯 18 p1.setAge(18); 19 20 //這樣拿不到值,會報錯 21 // System.out.println("姓名:"+p1.name+"\n年齡:"+p1.age); 22 23 //得通過get方法才能拿到 24 System.out.println("姓名:"+p1.getName()+"\n年齡:"+p1.getAge()); 25 26 } 27 28 }
結果:
姓名:張三
年齡:18