java,构造方法用this作为参数调用,怎么理解?
最新java二级,2013版的,第30页有个程序,说this的引用的,最后一个构造方法看不懂,而且,那真是构造方法?看我注析。。。publicclassBirthDate...
最新java二级,2013版的,第30页有个程序,说this的引用的,最后一个构造方法看不懂,而且,那真是构造方法?看我注析。。。
public class BirthDate{
private int day=1;
private int month=1;
private int year=1900;
public BirthDate(int day,int month,int year){
this.day=day;
this.month=month;
this.year=year;
}
public BirthDate(BirthDay date){
this.day=date.day;
this.month=date.month;
this.year=date.year;
}
public BirthDate addDays(int add_days){ //这里不是构造方法吧?addDays叫什么?是不是多了一个s?
BirthDate otherDate=new BirthDate(this); //这里的this有什么作用?代表什么?
otherDate.day=otherDay=new BirthDate(this): //这里的this呢?
return otherDate; //总体来说,上面四行有什么作用?
}
}
谢谢
各位真不好意思,码字码头晕了,最后一段addDays方法这里打错了,是这样的。是全国计算机等级考试二级教程——Java语言程序设计(2013年版)第30页的。
public BirthDate addDays(int add_days){
BirthDate otherDate=new BirthDate(this); //构造方法用this作为参数调用(书原文)
otherDate.day=otherDay.day+add_days;//这里码错了,不好意思
return otherDate;
现在我就是不理解这个this是什么作用,有朋友说传入当前类的对象,当前类是指BirthDate类是吗?那当前类的对象是otherDate还是addDays方法(BirthDate类创造的addDays方法是不是它的对象?)?新手,问题也有点乱,莫见怪~ 展开
public class BirthDate{
private int day=1;
private int month=1;
private int year=1900;
public BirthDate(int day,int month,int year){
this.day=day;
this.month=month;
this.year=year;
}
public BirthDate(BirthDay date){
this.day=date.day;
this.month=date.month;
this.year=date.year;
}
public BirthDate addDays(int add_days){ //这里不是构造方法吧?addDays叫什么?是不是多了一个s?
BirthDate otherDate=new BirthDate(this); //这里的this有什么作用?代表什么?
otherDate.day=otherDay=new BirthDate(this): //这里的this呢?
return otherDate; //总体来说,上面四行有什么作用?
}
}
谢谢
各位真不好意思,码字码头晕了,最后一段addDays方法这里打错了,是这样的。是全国计算机等级考试二级教程——Java语言程序设计(2013年版)第30页的。
public BirthDate addDays(int add_days){
BirthDate otherDate=new BirthDate(this); //构造方法用this作为参数调用(书原文)
otherDate.day=otherDay.day+add_days;//这里码错了,不好意思
return otherDate;
现在我就是不理解这个this是什么作用,有朋友说传入当前类的对象,当前类是指BirthDate类是吗?那当前类的对象是otherDate还是addDays方法(BirthDate类创造的addDays方法是不是它的对象?)?新手,问题也有点乱,莫见怪~ 展开
7个回答
展开全部
this是当前类,当前对象。。。的意思。
回答:
1、不是构造函数 ,所有<方法名>与<类名>相同的才是。addDays是方法名,这名称自定义的,自己喜欢什么都行,当然最好是有意义的,例如在这里表示“添加日期”。
2、这里的this传入是的当前类的对象,代表的就是当前这个类对象。
3、同上。
4、返回一个“生日”类对象
这样理解:
一个叫生日(BirthDate)的类,里面定义了日、月、年三个成员变量(int day,int month,int year)和一个构造函数(BirthDate(BirthDay date)以及一个方法(addDays)
回答:
1、不是构造函数 ,所有<方法名>与<类名>相同的才是。addDays是方法名,这名称自定义的,自己喜欢什么都行,当然最好是有意义的,例如在这里表示“添加日期”。
2、这里的this传入是的当前类的对象,代表的就是当前这个类对象。
3、同上。
4、返回一个“生日”类对象
这样理解:
一个叫生日(BirthDate)的类,里面定义了日、月、年三个成员变量(int day,int month,int year)和一个构造函数(BirthDate(BirthDay date)以及一个方法(addDays)
展开全部
我至今还没看懂是个什么意思? 构造方法与类同名,方法中的参数是个什么东东,你是不是有一个BirthDay的类? 但是你在下面方法中又传this进去,你是不是照着敲都敲错了啊?
还有 otherDate.day=otherDay=new BirthDate(this): 你能给我解释这是什么意思么,用对象点属性,这个属性是个int类型的,你后面写的是什么,我怎么看不懂?
this表示自己,所以可以用this点出本类的所有成员和方法,this一般用来区分成员变量和局部变量,在方法中传this表示传自己这个对象的地址。
总之,你上面的代码一塌糊涂,完全不知道是写的什么!
还有 otherDate.day=otherDay=new BirthDate(this): 你能给我解释这是什么意思么,用对象点属性,这个属性是个int类型的,你后面写的是什么,我怎么看不懂?
this表示自己,所以可以用this点出本类的所有成员和方法,this一般用来区分成员变量和局部变量,在方法中传this表示传自己这个对象的地址。
总之,你上面的代码一塌糊涂,完全不知道是写的什么!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
总之代码一塌糊涂没话说,首先是这个addDays(int add_days)这只是普通的方法并不是构造方法。
从方法名看,是添加一个日期。
至于第二句的this,指代该类的当前实例,由于这个类没有不带参数的构造函数,所以用类当前实例来调用呆一个参数的构造函数。(其实就相当于调用了不带参数的空白构造函数);
第三句就像楼上说的,是错误的,我想大概是这样的才对。
otherDate.day=add_days//至少从函数名来看是这样的意义。
最后,将得到的一个BirthDate的类型实例,从该函数返回。
从方法名看,是添加一个日期。
至于第二句的this,指代该类的当前实例,由于这个类没有不带参数的构造函数,所以用类当前实例来调用呆一个参数的构造函数。(其实就相当于调用了不带参数的空白构造函数);
第三句就像楼上说的,是错误的,我想大概是这样的才对。
otherDate.day=add_days//至少从函数名来看是这样的意义。
最后,将得到的一个BirthDate的类型实例,从该函数返回。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
otherDate.day=otherDay=new BirthDate(this): 这句是错的,编译都不能通过
BirthDate otherDate=new BirthDate(this); this指的是当前对象,也就是的创建该类的实例
public BirthDate addDays(int add_days)这是什么意思,函数传参都没用??这个方法有什么意义!!
一句话代码乱七八糟
BirthDate otherDate=new BirthDate(this); this指的是当前对象,也就是的创建该类的实例
public BirthDate addDays(int add_days)这是什么意思,函数传参都没用??这个方法有什么意义!!
一句话代码乱七八糟
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
this代表当前的类,在你这代码里面就是代表BirthDate这个类;super代表父类,如果有继承关系的话,构造方法就是与类同名而且没有返回的方法。 这么理解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询