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);
}
} 展开
谢谢!
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);
}
} 展开
5个回答
展开全部
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*/
}
}
{
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*/
}
}
展开全部
因为你有两个变量名字相同,一个是全局变量一个是局部变量,如果不用this是不能确定是哪个变量的!例如:
private int num;//全局变量
Demo(int num)//参数是局部的
{
this.num = num;//将传入的参数赋给全局变量
}
boolean compare(Demo d)
{
return this.num == d.num;//这里也是一样的道理,但是this可以省略到!
}
private int num;//全局变量
Demo(int num)//参数是局部的
{
this.num = num;//将传入的参数赋给全局变量
}
boolean compare(Demo d)
{
return this.num == d.num;//这里也是一样的道理,但是this可以省略到!
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
this 表示当前类
用this点 可以访问类里面的成员
用this点 可以访问类里面的成员
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
}
}
{
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;
}
//可能导致无法给对象的属性赋值
想下面的两个方法中,变量名都一样,如果不明确指出,那么可能导致赋值或逻辑判断错误。
Demo(int num)
{
this.num = num;
}
//可能导致无法给对象的属性赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询