第三十二天 面向對象part3 - 對象的封裝性

掌握目標:

1.掌握封裝的目的。

2.掌握封裝實現。

3.掌握setter和getter的封裝方法。

首先我們來了解爲什麼要封裝程序。

封裝程序實際上就是把一些代碼給隱藏,在外部不可見,在內部自行處理。

就如人體機構一樣,人的內臟是不可見的。但是在內部自我運轉處理。

我們來看一段代碼

class Person
{
 String name;
 int age;
 public void tell(){
 System.out.print("姓名:"+name+"年齡:"+age);
}
}
public class Oor
{
 public static void main(String args[]){
  Person per =new Person();
  per.name ="張三";
  per.age=-30;
  per.tell();
}
};
這段代碼實際上在語法上是沒有問題的,但是這段代碼是不符合規定的。爲什麼呢?我們來看一下年齡是負數。有誰的年齡是負數啊。所以本段代碼的問題在於年齡的值上。而且此段代碼外部可以直接訪問。接下來我們要給它進行封裝並解決這些不合格的問題。

我們如何實現封裝呢?

我們來看一下封裝的方式:

使用private 的方式來封裝屬性。

使用private的方式來封裝方法。

具體怎麼使用,我們來看一下:

爲屬性封裝:private 屬性類型 屬性名稱;

 爲方法封裝:private 方法返回值 方法名稱{參數列表};{}

看下面一組代碼:

class Person
{
  private  String name;
  private  int age;
 public void tell(){
 System.out.print("姓名:"+name+"年齡:"+age);
}
}
public class Oor
{
 public static void main(String args[]){
  Person per =new Person();
  per.name ="張三";
  per.age=-30;
  per.tell();
}
};
在這裏我們封裝了兩個屬性。那麼我們編譯看一下,大家會看到出錯。這個是因爲程序封裝起來了,私有化了。意味着不能夠被外部調用,那怎麼辦?接下來我們講解的是訪問封裝內容。如果我們要訪問封裝的內容,我們就要使用setter 和getter,簡單的來說就是set 和get。

class Person
{
 private String name;     //封裝String 類型 的name
 private int age;            //封裝int類型的age
 public void tell(){         //聲明方法 
  System.out.println("姓名:"+name+"年齡:"+age);//方法輸出姓名,年齡;
}
public String getName(){            //取得名字
 return name;            //返回name
}
public void setName(String n){
 name = n ;
}
public int getAge(){
 return age;
}
public void setAge(int a){
age =a ;
}
}
public class Oor{
public static void main(String arsgh[]){
 Person per =new Person();
 per.setName("張三");
 per.setAge(-30);
 per.tell();
}
}

注意看上面的註釋如何使用setter 和getter。

那麼我們在年齡上如果說賦值是負數,那麼這個語法就是錯誤的。人不可能有負數的年齡是吧。所以我們在年齡的賦值上做一條檢查,我們就使用與或非語句:

使用if語句進行判斷輸出

public void setAge(int a){

if(a>0&&a<100){

age = a

}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章