溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java中封裝的實現(xiàn)方法詳解

發(fā)布時間:2020-10-15 19:10:18 來源:腳本之家 閱讀:147 作者:laozhang 欄目:編程語言

1、封裝是什么?以及為什么要進行封裝?

通常情況下可以給成員變量賦值一些合法但不合理的數(shù)值,這種情況在編譯階段和運行階段都不會報錯或給出任何的提示信息,此數(shù)值雖然合法但與現(xiàn)實生活不符;為了避免上述問題的發(fā)生,就需要對成員變量進行密封包裝處理來保證該成員變量的合法合理性,這種機制就叫做封裝。封裝可以被認(rèn)為是一個保護屏障,防止該類的代碼和數(shù)據(jù)被外部類定義的代碼隨機訪問。要訪問該類的代碼和數(shù)據(jù),必須通過嚴(yán)格的接口控制。

2、如何進行封裝?

(1)私有化成員變量,使用private關(guān)鍵字修飾;

(2)提供公有的get和set方法,在方法體中進行合理值的判斷,使用public關(guān)鍵字修飾;

(3)在構(gòu)造方法中使用set方法進行合理值的判斷;

3、事例如下/*Person.java*/

/*
   編程實現(xiàn)Person類的封裝
 */
public class Person{
  //1.私有化成員變量,使用private關(guān)鍵字修飾
  private String name; 
  private int age;
  private String country;
  //使用static關(guān)鍵字修飾成員變量表示提升為類層級只有一份被所有對象共享
  //public static String country;
 
  //3.在構(gòu)造方法中調(diào)用set方法進行合理值的判斷
  public Person(){
  }
  public Person(String name, int age, String country){
    setName(name);
    setAge(age);
    setCountry(country);
  }
 
  //2.提供公有的get和set方法,在方法體中進行合理值的判斷
  public String getName(){
    return name;
  }
  public void setName(String name){
    this.name = name;
  }
  public int getAge(){
    return age;
  }
  public void setAge(int age){
    if(age > 0 && age < 150){
      this.age = age;
    }else{
      System.out.println("年齡不合理?。?!");
    }
  }
  public String getCountry(){
    return country;
  }
  public void setCountry(String country){
    this.country = country;
  }
 
  public void show(){
    System.out.println("我是" + getName() + ",今年" + getAge() + "歲了,來自" + getCountry() + "!");
  }
 
  //自定義成員方法描述吃飯的行為
  public void eat(String food){
    System.out.println(food + "真好吃!");
  }
  //自定義成員方法描述娛樂的行為
  public void play(String game){
    System.out.println(game + "真好玩!");
  }
}

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI