一逾条、構造方法
構造器近她,又稱為構造方法。(類中膳帕,只有“屬性”或者“方法”這兩種東西,而構造方法也屬于方法薇缅,只不過比較特殊)
一般方法危彩,通過對象來調(diào)用(object.method)。而構造方法在調(diào)用的時候泳桦,還沒有對象呢(用來構造器以后才有的實例 對象)汤徽。
對于上面的幾點,逐條解釋:
- 通過new關鍵字調(diào)用灸撰。
首先谒府,因為構造方法也是一個方法,所以也是需要調(diào)用的浮毯,比如完疫,定義好Car類以后,現(xiàn)在想要構造一個新的實例债蓝,就需要調(diào)用這個構造器壳鹤。
第三點解釋
之前課程中,我們在定義類的時候饰迹,沒有定義構造方法芳誓,但是不代表沒有,系統(tǒng)會自動定義啊鸭。(當你在類中定義了以后锹淌,系統(tǒng)就不會自動定義了)
比如上面的Car類中,沒有定義Car構造方法的時候赠制,用new 調(diào)用赂摆,仍然能夠調(diào)用構造方法。第二點解釋:
注意構造方法的格式钟些,修飾符后面是沒有返回值類型的库正。不能用void,也更不能用int什么的厘唾。
此時褥符,如果用new 調(diào)用Car構造方法,就會建立一個實例抚垃,并且輸出代碼中的字符串喷楣。
二趟大、示例
代碼示例:
package cn.bjsxt.oop;
import javax.swing.text.html.MinimalHTMLWriter;
public class Point {
double x,y,z;
//構造方法,可以幫助我們初始化對象屬性,傳入?yún)?shù)铣焊,
//最好不要跟上面的變量重名,防止歧義
public Point(double _x,double _y,double _z){ //構造器中逊朽,是不用返回值的
x = _x;
y = _y;
z = _z;
}
//設置三個點的坐標.
public void setX(double _x){
x = _x;
}
public void setY(double _y){
x = _y;
}
public void setZ(double _z){
x = _z;
}
// 計算距離,需要有返回值了.
//因為要計算兩點之間的距離曲伊,因此對于這個方法需要傳入一個形參叽讳,等會傳入實參計算
public double distance(Point p){
return Math.sqrt((x-p.x)*(x-p.x) + (y-p.y)*(y-p.y) + (z-p.z)*(z-p.z));
}
public static void main(String[] args){
Point p = new Point(3,4,8);
Point p2 = new Point(1,1,1);
//對p調(diào)用計算距離的dist方法,傳入p2坟募,即可
System.out.println(p.x);
System.out.println(p.distance(p2));
}
}