JAVA構造函數
JAVA 構造函數
構造函數在每次創建對象時自動調用構造函數可以重載。一個構造函數必須和所屬的類同名必須沒有任何返回值。構造函數雖然也是方法但是不能再非聲明語句中顯示調用!
構造函數的目的是對新創建的對象的數據成員進行初始化 。因此,根據參數的數量和類型,每次創建一個對象都會自動調用一個構造函數。如果沒有編寫任何構造函數,咋編譯器將提供一個默認的構造函數,在這個構造函數中,所有的數值數據都初始化為0,所有的字符串數據成員都初始化為null。除了初始化的作用外,構造函數在調用的時候也可以實現一些其他的任務,并且可用多種方式編寫。
import java.text.*;
public class Asd
{
private int month,day,year;
public void setAsd(int mm,int dd,int yy){
month=mm;
day=dd;
year=yy;
}
public void showAsd(){
DecimalFormat df=new DecimalFormat("00");
System.out.println("The date is "+df.format(month)+'/'+df.format(day)+'/'+df.format(year%100));
}
public static void main(String[] args){
Asd a=new Asd();
Asd b=new Asd();
b.setAsd(12,25,2002);
System.out.println();
a.showAsd();
b.showAsd();
}
}
小知識點:存取方法和增便方法
存取方法是用來訪問對象的數據成員的非構造函數類成員方法。例如showAsd()方法就是一個存取方法。這些方法可以顯示的似有數據的值。在構造一個類時,一定要提供一組完整的存取方法。存取方法并不返回數據成員的實際值,而是返回值的一種有用的表現形式。
增便方法是改變對象的數據成員值的非構造函數類方法。例如setAsd()。構造函數的主要目的是初始化對象的成員變量,不屬于增便方法。
沒有構造函數的這種情況就是很好的就是免了很多初始化的東西了??!
import java.text.*;
public class Asd
{
private int month,day,year;
Asd(){
month=1;
day=2;
year=2001;
System.out.println(""+month+day+year);
}
public void setAsd(int mm,int dd,int yy){
month=mm;
day=dd;
year=yy;
}
public void showAsd(){
DecimalFormat df=new DecimalFormat("00");
System.out.println("The date is "+df.format(month)+'/'+df.format(day)+'/'+df.format(year%100));
}
public static void main(String[] args){
Asd a=new Asd();
Asd b=new Asd();
b.setAsd(12,25,2002);
System.out.println();
a.showAsd();
b.showAsd();
}
}
這個事自己寫了構造函數里面也加進去了一些東西關鍵是看這里
System.out.println(""+month+day+year);//前面有""+
System.out.println(month+day+year);//前面沒有""+
后面的一種輸出的結構是 2004 他把這幾個東西當做加法來做了運算 前面的這種情況就是沒有當做加法來運算 這個是為什么?。???
System.out.println(month+day+""+year);//這種情況的話就是前面的月和日進行了加法運算后面的年份沒有!???這個的規則是什么?。浚浚?/p>
posted @ 2010-09-27 13:42 Acmen 閱讀(142) | 評論 (0) | 編輯 收藏