黑马程序员技术交流社区
标题:
求助
[打印本页]
作者:
莫运飞
时间:
2012-4-5 14:17
标题:
求助
class Demo
{
private int num;
Demo(int num)
{
this.num=num;//
这有一个this.num
}
public boolean compare(Demo d)
{
return this.num==d.num
;//这里又有一个this.num :这两个this.num不同之处是什么?并且return返回的true或false返回到哪里去?
}
}
class Object01
{
public static void main(String[] args)
{
Demo d1=new Demo(4);
Demo d2=new Demo(4);
System.out.println(d1.compare(d2));//
怎么进行比较的???是上面return返回来的 进行比较?还是同是4在进行比较??
}
}
作者:
刘士
时间:
2012-4-5 14:39
第一个this.num是构造函数的,在Demo d1=new Demo(4); 就会把4赋值给num。那么这个值是属于d1这个对象的。
第二个是this.num,是 d1.compare(d2);d1这个对象的num的值。
System.out.println(d1.compare(d2)); 是 d1的num的值 与 d2 的num的值进行比较的结果;上面的return 就是返回到这里。
作者:
张志阳
时间:
2012-4-5 14:56
首先运行结果是true。 return this.num==d.num这句中的this.num是此对象也就是d1,d.num指的是要比较的对象也就是d2。return的值是谁调用返回给谁,这里就是System.out.println(d1.compare(d2))调用,所以会在屏幕输出。
作者:
江远云
时间:
2012-4-5 15:03
//public void setName(int num)
//this.num=num;//这有一个this.num
this代表本类对象的引用,哪个对象调用这个方法,this就代表哪个对象。
//return this.num==d.num;//这里又有一个this.num :这两个this.num不同之处是什么?并且return返回的true或false返回到哪里去?
this.num还是代表所属函数所属对象的引用,意思是说哪个对象调用了这个方法,this就代表哪个对象。
//两个this有什么不同?
这要看调用两个this所在属性的对象是不是同一个了。
return返回的true或false返回到哪里去?
当然是返回给调用者了。
//System.out.println(d1.compare(d2));怎么进行比较的???是上面return返回来的 进行比较?还是同是4在进行比较??
读到d1.compare的时候就去d1就去执行compare函数,并把d2传给形式参数d。执行函数里的this.num==d.num并返回。的确是上面这个函数return返回来的。同是4在比较这样说也没错,可是得有个指示让它去比较,得有个关系,比如方法,比如写出==。
作者:
姜志钦
时间:
2012-4-5 16:37
本帖最后由 姜志钦 于 2012-4-5 16:38 编辑
class Demo
{
private int num;
Demo(int num)
{
this.num=num;//这有一个this.num}
public boolean compare(Demo d)
{
return this.num==d.num;//这里又有一个this.num :这两个this.num是一样的,
并且return返回的true或false返回到你调用这个方法的地方,即 System.out.println(d1.compare(d2))}
} 这边少了一个} 不然内部类无法使用静态路口
class Object01
{
public static void main(String[] args)
{
Demo d1=new Demo(4);
Demo d2=new Demo(4);
System.out.println(d1.compare(d2));//怎么进行比较的???是上面return返回来的 进行比较?还是同是4在进行比较?? 就是调用上面的compare方法比较d1和d2两个对象返回的结果}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2