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-generatedmethodstubBirthDatedate0=newBirthDate(3,5,1988);printDate(date0);date0=date0.addDays(7);printDate(date0);date0=addDays2(date0,4);printDate(date0);}}第一,构造方法publicBirthDate(BirthDatedate)这种调用自身类类型作为参数究竟是什么意思?目的何在?第二,BirthDatedate1=newBirthDate(this);这里的this又作为了参数目的是什么?
2 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
构造方法publicBirthDate(BirthDatedate)主要作用是将BirthDate的子类实例转化为BirthDate实例或者实现类似克隆的效果。newBirthDate(this)作用是保证子类调用方法时得到的也是BirthDate实例而不是子类实例,也可能仅仅是想获取一个新BirthDate实例。
RISEBY
TA贡献1856条经验 获得超5个赞
1构造方法publicBirthDate(BirthDatedate)主要作用是复制一个属性和date一样的BirthDate实例出来。2newBirthDate(this)其实就是复制一个跟当前对象属性一样的BirthDate出来
添加回答
举报
0/150
提交
取消