成員函數 成員函數講解

大家好,小編來為大家解答以上的問題 。成員函數講解 , 成員函數這個很多人還不知道,現在讓我們一起來看看吧!

成員函數 成員函數講解

文章插圖
1、成員函數相當于C或C++中的函數 。
2、你應該用如下的方式說明一個成員函數:Type name (Parameter)//function body注意:每一個成員函數必須返回一個值或聲明返回為空(void) 。
3、它返回類型的說明告訴編譯器它將返回什么類型的值 。
4、在某些情況下 , 成員函數需要表示它是否成功的完成了它的工作 , 此時返回類型通常為布爾型的 。
5、參數表是用逗號分開的一組變量 , 它將為成員函數提供所需信息 。
6、下面例子中定義了一個成員函數 。
7、通過它 , 你的矩形類可以計算自己的面積了:int getArea(int w,int h){int a;a=w*h;return a;}另外 , 矩形還需要對自己進行描繪 , 因此它需要成員函數drawRect() , 此時 , 你的矩形類的定義將如下所示:public class DrwRect{public static void main(String args[]){class Rectangle{int width,height,area;public Rectangle(int w,int h){width=w;height=h;area=getArea(w,h);}protected int getArea(int w,int h){int a;a=w*h;return a;}public void drawRect(){int i,j;for(i=width;i>0;i--)System.out.print("#");System.out.print("") ;for(i=height-2;i>0;i--)System.out.print("#");for(j=width-2;i>0;j--)System.out.print("");System.out.print("#");for(i=width;i>0;i--)System.out.print("#");System.out.print("");}} //Rectangleint w=Integer.valueOf(args[0]).intValue();int h=Integer.valueOf(args[1]).intValue();Rectangle myrect=new Rectangle(w,h);myrect.drawRect();}} 上例中最后一個“#”號后面還有一個System.out.print("")這是由于這個成員函數在上一行沒有結束而且緩沖區沒有溢出時將不把輸出結果寫屏 。
8、若你使用print成員函數 , 卻沒有得到輸出 , 這時仔細確認一下你是否以""來結束你的輸出流 。
【成員函數 成員函數講解】9、2:不同類型的成員函數在上例的成員函數聲明中你需要注意兩點:getArea()定義為private型 , drawRect()定義為public型 。
10、public型意味著任何類都可以調用它 。
11、private型 , 它只能被所聲明的類內部調用 。
12、這些說明類型同樣適用于數據變量 。
13、若有人想改變一個私有變量 , 通常要引用下面的成員函數:public void setWidth(int w){width=w;}注意:在Java中 , protected只是作為關鍵字出現 , 而沒有相應的功能 。
14、3:成員函數的重載假如你必須在不同情況下發送不同的信息給同一個成員函數的話 , 該怎么辦呢?你可以通過對此成員函數說明多個版本(version)的方法來實現重載 。
15、重載的本質是創建了一個新的成員函數:你只需給它一個不同的參數列表(parameterlist) , 如下例所示:void get Area(int w,int h);void get Area(float w,float h);在第二種情況下 , 成員函數get Area()接受兩個浮點變量作為它的參數 , 編譯器根據調用時的不同參數來決定該調用哪一種成員函數 , 假如你把兩個整數提供給成員函數 , 你就調用第一個成員函數;假如你把兩個浮點數提供給成員函數 , 第二個成員函數就被調用 。
16、4:靜態成員除了public、private和protected以外 , 你還可以把成員說明為static(靜態) 。
17、static修飾符表明一個變量或成員函數對所有類的實例都是相同的 , 你也許想使用一個所有Rectangle類都可以使用的變量 , 來說明該類的版本(version) , 假如你把它說明成一個static , 那么該變量將對該類的所有實例都是一樣的 , 如:static int version=1;靜態成員函數和靜態變量的優點就在于他們能在沒有創建類的任何一個實例的情況下被引用 , 引用時在“.”域前 , 可直接使用類名而無須使用對象名 。