JAVA中关于this.的用法,麻烦大家来帮忙解答下!

下面这个程序的this用法,我实在搞不清楚,能不能用中文对每句做个解释啊?谢谢!classDemo{privateintnum;Demo(intnum){this.num... 下面这个程序的this用法,我实在搞不清楚,能不能用中文对每句做个解释啊?

谢谢!

class Demo
{
private int num;

Demo(int num)
{
this.num = num;
}
boolean compare(Demo d)
{
return this.num == d.num;
}
}

class lkj
{
public static void main(String[] args)
{
Demo d1 = new Demo(5);
Demo d2 = new Demo(5);
boolean b = d1.compare(d2);
System.out.println("b="+b);
}
}
展开
 我来答
百度网友bdf5ca26c
2011-10-20 · TA获得超过203个赞
知道答主
回答量:70
采纳率:0%
帮助的人:55.7万
展开全部
class Demo//建一个默认类
{
private int num;//声明一个私有的int类型的num
Demo(int num)//这里是建一个构造方法,传入的参数为int类型
{
this.num = num;//这里的this.num指的是当前类的私有num
}
boolean compare(Demo d)//这里传入Demo类型的参数,这里是传入的是d2
{
return this.num == d.num;/*判断num2与this.num(当前的num)是否相等,相等返回true,不等返回false,这里是相等的,返回true*/
}
}

public class Lkj /*这里你是有错误的,类名首字母是要大写的,而且要使main方法运行,必须要在public声明的类中,而且每个包中的类中只能有一个public公共类*/
{
public static void main(String[] args)
{
Demo d1 = new Demo(5); /*实例化Demo,命名为d1,传入一个类型为int的5,此后num=5;*/
Demo d2 = new Demo(5); /*实例化Demo,命名为d2,传入一个类型为int的5,此后num(为了区分,这里等会我用num2表示)=5;*/
boolean b = d1.compare(d2);/*把d2传入d1所拥有的方法compare中,将返回的值赋给b*/
System.out.println("b="+b);/*刚才compare中已经返回true,然后赋值给b,所以b的值为true*/
}
}
86782473
2011-10-20
知道答主
回答量:3
采纳率:0%
帮助的人:3.2万
展开全部
因为你有两个变量名字相同,一个是全局变量一个是局部变量,如果不用this是不能确定是哪个变量的!例如:

private int num;//全局变量
Demo(int num)//参数是局部的
{
this.num = num;//将传入的参数赋给全局变量
}
boolean compare(Demo d)
{
return this.num == d.num;//这里也是一样的道理,但是this可以省略到!
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
guoliuhuan
2011-10-20 · TA获得超过156个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:215万
展开全部
this 表示当前类

用this点 可以访问类里面的成员
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
名字要长的
2011-10-20 · TA获得超过248个赞
知道小有建树答主
回答量:177
采纳率:100%
帮助的人:117万
展开全部
class Demo
{
private int num;

Demo(int num)
{
this.num = num;//这行的意思是 把private的Num赋给当前这个构造函数的num,这个应该是构造方法注入吧
}
boolean compare(Demo d)
{
return this.num == d.num;//把d的属性值num赋给当前Num
}
}

class lkj
{
public static void main(String[] args)
{
Demo d1 = new Demo(5);
Demo d2 = new Demo(5);
boolean b = d1.compare(d2);
System.out.println("b="+b);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-10-20
展开全部
this通常用于表明同名的属性、方法是属于当前对象的,通常可以不写,但在一些可能会混淆的地方需要使用。
想下面的两个方法中,变量名都一样,如果不明确指出,那么可能导致赋值或逻辑判断错误。
Demo(int num)
{
this.num = num;
}
//可能导致无法给对象的属性赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式