- Java面向對象軟件開發(fā)
- 姚駿屏 汪衛(wèi)星主編
- 891字
- 2018-12-29 19:04:15
2.1.4 類的構造方法
在Java中,任何變量在被使用前都必須先設置初值。在每次創(chuàng)建一個實例時,初始化類中的所有變量是一項枯燥無味的工作。如果在第一次創(chuàng)建對象時就完成所有的設置,這將會使工作更簡單。基于這個原因,Java允許在對象創(chuàng)建時就對其進行初始化。這種自動初始化工作是通過使用構造方法來完成的。
構造方法(constructor)在創(chuàng)建對象時就自動運行,它一般用來初始化成員變量。構造方法與它所在的類有同樣的名稱,在語法上與一般方法類似。構造方法的一般形式如下:
[修飾符] 方法名([形式參數(shù)列表]){ // 方法體 }
構造方法是一種特殊的成員方法,它的特殊性反映在如下幾個方面:
(1)構造方法名與類名完全相同(包括大小寫也一樣)。
(2)構造方法不返回任何值,也沒有返回類型(連void都沒有)。
(3)每一個類可以有零個或多個構造方法,如果沒有寫構造方法則默認存在一個沒有參數(shù)的構造方法。
(4)一旦用戶定義了自己的構造方法,默認的無參構造方法就不再存在。
(5)構造方法在創(chuàng)建一個類的對象時由系統(tǒng)自動地調用執(zhí)行,一般不能顯式地像使用普通方法一樣直接調用。
【例2-2】 繼續(xù)改造長方體類,使對象創(chuàng)建時能自動初始化長方形的尺寸。
定義一個帶參構造方法來進行初始化,這個構造方法的功能是將每個長方形的尺寸設置為指定的參數(shù)值。請?zhí)貏e注意Rectangle對象是如何被創(chuàng)建的。
public class Rectangle{ double length; // 長 double width; // 寬 // 帶參構造方法,用于初始化長方形的長和寬 public Rectangle(double w, double l){ width = w; length = l; } // 求長方形的面積 double area(){ return length * width; } } public class RectangleDemo{ public static void main (String args[]){ // 調用構造方法初始化每個長方形對象 Rectangle rect1 = new Rectangle(10,20); Rectangle rect2 = new Rectangle(3,6); double area; area=rect1.area(); // 調用area()方法得到第一個長方形的面積 System.out.println("第一個長方形的面積是:" + area); area=rect2.area(); // 調用area()方法得到第二個長方形的面積 System.out.println("第二個長方形的面積是:" + area); } }
該程序的運行結果如下所示:
第一個長方形的面積是:200.0 第二個長方形的面積是:18.0
可以看到,每個對象按其構造方法所指定的參數(shù)初始化。例如,在下面的代碼行中,
Rectangle rect1 = new Rectangle(10,20);
當new創(chuàng)建對象時,將自動調用構造方法,那么rect1的width和length屬性就將分別被賦值10和20。
在【例2-2】的Rectangle類中存在用戶定義的構造方法,此時就只能調用這個用戶定義的構造方法Rectangle(double w, double l)來創(chuàng)建Rectangle類的兩個對象rect1和rect2。而不能再使用無參構造方法了。
- Building Modern Web Applications Using Angular
- React Native Cookbook
- OpenCV for Secret Agents
- 老“碼”識途
- Java深入解析:透析Java本質的36個話題
- 深度學習:算法入門與Keras編程實踐
- 劍指MySQL:架構、調優(yōu)與運維
- Rust游戲開發(fā)實戰(zhàn)
- 計算機應用基礎教程(Windows 7+Office 2010)
- Visual C++開發(fā)寶典
- After Effects CC案例設計與經典插件(視頻教學版)
- Instant GLEW
- Selenium WebDriver Practical Guide
- Getting Started with hapi.js
- 優(yōu)化驅動的設計方法