【java考试】this赋值的用法[选择题]

publicclassBase{intw,x,y,z;publicBase(inta,intb){x=a;y=b;}publicBase(inta,intb,intc,i... public class Base{
int w, x, y ,z;
public Base(int a,int b)
{
x=a; y=b;
}
public Base(int a, int b, int c, int d)
{
// assignment x=a, y=b
w=d;
z=c;
}
}
在代码说明// assignment x=a, y=b处写入如下哪个代码是正确的?( )
(A) Base(a,b); (B) x=a, y=b; (C) super(a,b); (D) this(a,b);

this是什么意思,怎么用,用在哪里儿?结合例子说说吧,为什么需要this
展开
 我来答
百度网友23e9cedbd
2013-01-02 · TA获得超过1573个赞
知道小有建树答主
回答量:537
采纳率:0%
帮助的人:463万
展开全部
这个属于基础问题。
你这个类的名称叫做Base,有两个显式构造方法Base(int a,int b)(以下简称构造A)和
public Base(int a, int b, int c, int d)(以下简称构造B),
这个题的意思是要在构造B中对变量x,y进行赋值,也就是 x=a, y=b,而构造A方法中恰好提供了这个解决方案,只要在构造B中调用构造A方法即可。
在java基础中,在构造方法中调用其他的重载构造方法使用的关键字如下:
调用本类的:this()
调用父类的:super()
this字如其意,就是“这个类”的意思,this.x可以读作"这个类的x变量"。调用构造函数就直接用this(你需要调用的构造方法的参数列表).
super表示调用父类的,很多书籍把父类翻译成超类,也是对该词的直接翻译造成的。
具体的你可以多看下面向对象部分的讲解。
追问
谢谢您,但有个疑问
构造A属于构造B的本类吗?
本类是指层次上平行的类吗
追答
本类就是属于名字叫做Base的类中,这个Base是你这个例子的类名,当然还可以叫其他名。是不是本类你看生存空间,从public class Base{这个大括号开始,到最后一个}结束中定义的叫做Base的方法都是属于本类的构造方法。楼下有位朋友说调用父类的用base,不对哦,是super
仙境ois
2013-01-02 · 超过31用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:62.1万
展开全部
在java中,this关键字有两种用法:
1、用于区分全局变量和局部变量,以及区分成员变量和方法参数

2、用于调用构造函数。(此处指的是调用自身的构造函数,调用父类则用base()函数)

--- 考题代码中,当实例化四个参数对象时,回调自身双参构造函数,从而达到全部参数赋值的效果,其实也是绕了个圈子
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
优源小程序
2013-01-02 · 来吧,一起专注小程序开发
优源小程序
采纳数:34 获赞数:45

向TA提问 私信TA
展开全部
多余的不说,看以下代码,还有别的用处,就不一一解释了
Public String str="";
Public int No="";
public DataList(String pcStr,int count) { // pcStr与count 是传的值
this.str=pcStr;
this.No=count;
this.width();//this可用可不用
}
private void width(){
double width = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
double height = Toolkit.getDefaultToolkit().getScreenSize().getHeight();
this.setLocation((int) (width - this.getWidth()) / 2, (int) (height - this.getHeight()) / 2);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牙刷的悲伤
2013-01-02 · TA获得超过1467个赞
知道小有建树答主
回答量:341
采纳率:0%
帮助的人:393万
展开全部
this指的是当前对象。。在这就是Base。。。
Base(a,b);就是调用当前对象的构造方法。。。。所以选D。。
追问
this指的是当前对象。。在这就是Base

这样说的话,A,D应该都可选呢?朋友,麻烦细说
追答
真正的创建对象用的是new这个关键字。。。比如Base ba = new Base();
此时就调用了构造方法。。。。用this是特定的用法。。this的本义就是指的是当前对象。。
super就是指的是父类对象,,。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhaolijun
2013-01-02 · TA获得超过837个赞
知道小有建树答主
回答量:92
采纳率:100%
帮助的人:92.4万
展开全部
D.,this指针指向类本身,super指向基类,用于派生类,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式