?

Java中的構造方法

2017-07-29 18:29劉妍東
科教導刊·電子版 2017年18期
關鍵詞:構造方法測試

劉妍東

摘 要 構造方法是一種特殊的方法,它是一個與類同名且沒有返回值類型的方法。對象的創建就是通過構造方法來完成,其功能主要是完成對象的初始化。當類實例化一個對象時會自動調用構造方法。構造方法和其他方法一樣也可以重載。

關鍵詞 java 構造方法 測試

中圖分類號:TP311 文獻標識碼:A

1概念

構造方法是專門用于創建對象的方法,通常執行對成員變量賦值等初始化操作。構造方法有3個特性,一是一種特殊的成員方法,二是方法名與類名一致,三是方法定義中無返回值類型。我們先看一下構造方法的格式,中括號是可選項,修飾符為訪問控制修飾符,如public,代表的是公共的方法。后面直接是方法名,要求方法名與類名一致,括號中是參數,根據需要可選。大括號中方法體內容主要為成員變量賦值。

[修飾符] 方法名([參數])

{//方法體}

2應用舉例

我們通過一個列子來看一下構造方法的定義和使用。首先我們定義一個公共的構造方法,方法名與類名一致,括號中無參數,方法體為對radius成員變量賦值為5,則圓半徑為5。在主方法中,注釋掉為成員賦值語句。我們看一下運行結果,同樣是78.5。

public class Circle{double radius;public Circle}

public Circle2 (double x){radius=x;}

public double CalArea( ){return 3.14*radius*radius;}

Public static void main(String args){Circle c2=new Circle(5);System.out.println("c2:"+c2.CalArea;}

那這半徑的值是怎么傳遞的呢?我們看一下這一句,new關鍵字后面的Circle括號,其實就是調用的構造方法。我們把不帶參數的構造方法稱之為默認的構造方法,同樣我們把默認構造方法成員變量也應該賦值為默認值?;蛘呤裁炊疾粚懸沧詣淤x為默認值。默認值半徑為0,運行結果面積也為0。

構造方法我們可以定義多個,如我們定義一個帶參數的構造方法,方法名與類名一致,帶有一個double類型的參數。這樣參數可以為double類型的成員變量賦值。定義一個c2對象,調用帶參數的構造方法,參數為2,調用求面積方法看一下運行結果。第一個是半徑為默認值0的面積,第二個是半徑為指定值2的面積。

在上一個例子中只有一個成員變量,當類中存在多個成員變量時,應該如何定義構造方法呢。我們來看第二個例子。

在person類中,有5個成員變量,如果沒有寫構造方法,其實類中已經存在默認的構造方法了,一個成員方法outValue輸出所有成員變量的值。通過定義對象調用默認的構造方法,再調用outValue方法輸出所有值,我們看一下運行結果。運行結果中,都為默認值,數值型的為0,其他為null。

public class Person{String name,sex;int age;double height,weight;

public void outValue( ) {System.out.println("姓名:"+name+" 性別:"+sex+" 年齡:"+age+" 身高:"+height+" 體重:"+weight);}

public static void main(String args[]){Person p1=new Person();p1.outValue();}

運行結果:姓名:null 性別:null 年齡:0 身高:0.0 體重:0.0

下面我們來定義構造方法,只要顯式定義構造方法,則默認的構造方法就消失了,所以我們需要重新定義一下。我們再定義一個帶參數的構造方法,參數的數據類型與成員變量的數據類型一定要一致。如給成員變量name賦值。我們定義對象p2,調用帶一個參數的構造方法測試一下。參數值為字符串“張”。調用outValue方法看一下運行結果。

public class Person2{String name, sex;int age;double height, weight;Person2}

Person2(String n){·€╪ame=n;}

Person2(String n,String s,int a,double h,double w){name=n;sex=s;age=a;height=h;weight=w;public void outValue( ) { System.out.println("姓名:"+name+" 性別:"+sex+" 年齡:"+age+" 身高:"+height+" 體重:"+weight);}

public static void main(String args[]){Person2 p1=new Person2();p1.outValue();Person2 p2=new Person2("zhang");p2.outValue();;Person2 p3=new Person2("王五","男",19,170,50);p3.outValue();}

在第二行運行結果中,姓名值為zhang,其它未賦值的為默認值。

我們用同樣的方法定義第三個構造方法,參數為name和age賦值。數據類型要一一對應。生成對象p3測試一下。調用的構造方法帶兩個參數,看一下運行結果,姓名和年齡,有值,其它為默認值。

運行結果:姓名:null 性別:null 年齡:0 身高:0.0 體重:0.0。 姓名:zhang 性別:null 年齡:0 身高:0.0 體重:0.0。姓名:王五 性別:男 年齡:19 身高:170.0 體重:50.0

3總結反思

回憶一下構造方法的概念,構造方法是專門用于創建對象的方法,構造方法名與類名一致,且無返回值類型。在沒有定義構造方法的類中,有默認的構造方法,所有成員值為默認值。如果顯式定義了構造方法,則默認的構造方法就取消了。下面大家來完成Person類的其他構造方法并測試一下吧。

猜你喜歡
構造方法測試
DC-DC變換器分層級構造方法
幽默大測試
“攝問”測試
“攝問”測試
“攝問”測試
《夢溪筆談》“甲子納音”構造方法的數學分析
幾乎最佳屏蔽二進序列偶構造方法
漢語新術語構造方法的優先選擇
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合