程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> java中的封裝,java封裝

java中的封裝,java封裝

編輯:JAVA綜合教程

java中的封裝,java封裝


1、什麼是封裝?

封裝就是將屬性私有化,提供公有的方法訪問私有屬性。

做法就是:修改屬性的可見性來限制對屬性的訪問,並為每個屬性創建一對取值(getter)方法和賦值(setter)方法,用於對這些屬性的訪問。

如:private String name;

public String getName(){

                    return;

           }

        public void setName(String name){

                    this.name=name;

           }

 

2、  為什麼需要封裝?

通過封裝,可以實現對屬性的數據訪問限制,同時增加了程序的可維護性。

由於取值方法和賦值方法隱藏了實現的變更,因此並不會影響讀取或修改該屬性的類,避免了大規模的修改,程序的可維護性增強。

 

3、  this關鍵字是什麼意思?

有時一個方法需要引用調用它的對象。為此,java定義了this這個關鍵字。簡單地說,

This是在對象內部指代自身的引用。可以直接引用對象,可以解決實例變量和局部變量之間發生的任何同名的沖突。

 

4、  如何實現封裝,實現封裝的具體方法?

(1)、修改屬性的可見性來限制對屬性的訪問。

(2)、為每個屬性創建一對賦值方法和取值方法,用於對這些屬性的訪問。

(3)、在賦值和取值方法中,加入對屬性的存取的限制。

 

5、什麼是構造方法?構造方法的語法規則?

         構造方法負責對象成員的初始化工作,為實例變量賦予合適的初始值。

構造方法的語法規則:方法名與類名相同。沒有返回類型。

使用new關鍵字實例化對象的過程實際上就是調用構造方法的過程。或者說實例化一個對象實際上就是去調用這個對象的構造方法。

Xin xin=new Xin();

在實例化對象的時候,已經實例變量賦予了初始值,完成了對象的初始化工作。

 

6、  為什麼需要構造方法?

為屬性賦值時,很容易忘記對其中的一項或多項進行賦值。構造方法可以簡化對象初始化,為實例變量賦值。

 

7、  帶參數的構造方法:可以顯示地為實例變量賦予初始值。在不同的條件下創建不同的對象,這些對象的實例變量具有不同的值。

注意:在使用帶參數的構造方法實例化對象時,傳遞的值和構造方法的參數應當在個數、次序和數據類型上相互配備。

通過調用帶參數的構造方法,在創建對象時,一並完成了對象的初始化工作,簡化了對象初始化的代碼。

 

8、  什麼是方法重載?

方法名稱相同,參數項不相同。那麼認為一個方法是另一個方法的重載方法。

注意:重載只跟參數有關,與返回類型無關。方法名和參數相同而返回類型不相同,不能說是重載。

典型的方法重載:System.out.println();  Sysstem.out代表了一個java.io.PrintSteam對象,具有多個println(打印)方法,該方法可以接收不同類型的數據作為參數根據類型不同,

調用不同的打印方法。

在java.lang包中的Math類中的max方法。

Public static int max(int a,intb);

Public static int max(long a,long b);

Public static int max(float a,float b);

Public static int max(double a,double b);

在調用方法之前,java虛擬機先判斷給定的類型,然後決定到底調用執行那個max()方法。

 

9、  什麼是構造方法重載?

構造方法重載是方法重載的一個典型的特例。參數列表不同。

可以通過重載構造方法來表達對象的各種多種初始化行為。也就是說在通過new語句創建一個對象時,可以實現在不同的條件下,讓不同的對象具有不同的初始化行為。

Private String name;

Private String sex;

Public Xin(String name){

 this.name=name;

}

Public Xin(String name,String sex){

           this.name=name;

           this.sex=sex;

}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved