这种java类的构造方法究竟是什么意思?这么写的目的到底是什么?

packagemeta;
publicclassBirthDate{
privateintday=1;
privateintmonth=1;
privateintyear=1900;
publicBirthDate(intday,intmonth,intyear){
this.day=day;
this.month=month;
this.year=year;
}
publicBirthDate(BirthDatedate){
this.day=date.day;
this.month=date.month;
this.year=date.year;
}
publicBirthDateaddDays(intadd_days){
BirthDatedate1=newBirthDate(this);
//构造方法用this作为参数调用
date1.day=date1.day+add_days;
returndate1;
}
publicstaticBirthDateaddDays2(BirthDatedate1,intadd_days){
date1.day=date1.day+add_days;
returndate1;
}
publicstaticvoidprintDate(BirthDatedate){
System.out.println(date.year+""+date.month+""+date.day);
}
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
BirthDatedate0=newBirthDate(3,5,1988);
printDate(date0);
date0=date0.addDays(7);
printDate(date0);
date0=addDays2(date0,4);
printDate(date0);
}
}第一,构造方法publicBirthDate(BirthDatedate)这种调用自身类类型作为参数究竟是什么意思?目的何在?第二,BirthDatedate1=newBirthDate(this);这里的this又作为了参数目的是什么?
holdtom
浏览 312回答 2
2回答

慕虎7371278

构造方法publicBirthDate(BirthDatedate)主要作用是将BirthDate的子类实例转化为BirthDate实例或者实现类似克隆的效果。newBirthDate(this)作用是保证子类调用方法时得到的也是BirthDate实例而不是子类实例,也可能仅仅是想获取一个新BirthDate实例。

RISEBY

1构造方法publicBirthDate(BirthDatedate)主要作用是复制一个属性和date一样的BirthDate实例出来。2newBirthDate(this)其实就是复制一个跟当前对象属性一样的BirthDate出来
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript