劉妍東
摘 要 構造方法是一種特殊的方法,它是一個與類同名且沒有返回值類型的方法。對象的創(chuàng)建就是通過構造方法來完成,其功能主要是完成對象的初始化。當類實例化一個對象時會自動調用構造方法。構造方法和其他方法一樣也可以重載。
關鍵詞 java 構造方法 測試
中圖分類號:TP311 文獻標識碼:A
1概念
構造方法是專門用于創(chuàng)建對象的方法,通常執(zhí)行對成員變量賦值等初始化操作。構造方法有3個特性,一是一種特殊的成員方法,二是方法名與類名一致,三是方法定義中無返回值類型。我們先看一下構造方法的格式,中括號是可選項,修飾符為訪問控制修飾符,如public,代表的是公共的方法。后面直接是方法名,要求方法名與類名一致,括號中是參數(shù),根據(jù)需要可選。大括號中方法體內容主要為成員變量賦值。
[修飾符] 方法名([參數(shù)])
{//方法體}
2應用舉例
我們通過一個列子來看一下構造方法的定義和使用。首先我們定義一個公共的構造方法,方法名與類名一致,括號中無參數(shù),方法體為對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括號,其實就是調用的構造方法。我們把不帶參數(shù)的構造方法稱之為默認的構造方法,同樣我們把默認構造方法成員變量也應該賦值為默認值?;蛘呤裁炊疾粚懸沧詣淤x為默認值。默認值半徑為0,運行結果面積也為0。
構造方法我們可以定義多個,如我們定義一個帶參數(shù)的構造方法,方法名與類名一致,帶有一個double類型的參數(shù)。這樣參數(shù)可以為double類型的成員變量賦值。定義一個c2對象,調用帶參數(shù)的構造方法,參數(shù)為2,調用求面積方法看一下運行結果。第一個是半徑為默認值0的面積,第二個是半徑為指定值2的面積。
在上一個例子中只有一個成員變量,當類中存在多個成員變量時,應該如何定義構造方法呢。我們來看第二個例子。
在person類中,有5個成員變量,如果沒有寫構造方法,其實類中已經(jīng)存在默認的構造方法了,一個成員方法outValue輸出所有成員變量的值。通過定義對象調用默認的構造方法,再調用outValue方法輸出所有值,我們看一下運行結果。運行結果中,都為默認值,數(shù)值型的為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
下面我們來定義構造方法,只要顯式定義構造方法,則默認的構造方法就消失了,所以我們需要重新定義一下。我們再定義一個帶參數(shù)的構造方法,參數(shù)的數(shù)據(jù)類型與成員變量的數(shù)據(jù)類型一定要一致。如給成員變量name賦值。我們定義對象p2,調用帶一個參數(shù)的構造方法測試一下。參數(shù)值為字符串“張”。調用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,其它未賦值的為默認值。
我們用同樣的方法定義第三個構造方法,參數(shù)為name和age賦值。數(shù)據(jù)類型要一一對應。生成對象p3測試一下。調用的構造方法帶兩個參數(shù),看一下運行結果,姓名和年齡,有值,其它為默認值。
運行結果:姓名:null 性別:null 年齡:0 身高:0.0 體重:0.0。 姓名:zhang 性別:null 年齡:0 身高:0.0 體重:0.0。姓名:王五 性別:男 年齡:19 身高:170.0 體重:50.0
3總結反思
回憶一下構造方法的概念,構造方法是專門用于創(chuàng)建對象的方法,構造方法名與類名一致,且無返回值類型。在沒有定義構造方法的類中,有默認的構造方法,所有成員值為默認值。如果顯式定義了構造方法,則默認的構造方法就取消了。下面大家來完成Person類的其他構造方法并測試一下吧。