java 对象调用方法的问题

classTest{inta,b;Test(inti,intj){a=i;b=j;}booleanequals(Testo){if(o.a==a&&o.b==b)retu... class Test
{
int a,b;

Test (int i,int j)
{a=i;
b=j;
}
boolean equals(Test o)
{if(o.a==a && o.b==b)return true;
else return false;
}
}
class PassOb
{
public static void main(String args[])
{
Test ob1=new Test(10,20);
Test ob2=new Test(10,20);
Test ob3=new Test(10,50);
System.out.println(ob1.equals(ob2));
System.out.println(ob1.equals(ob3));
}
}
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
boolean equals(Test o)这一句 test o 是什么?
System.out.println(ob1.equals(ob2));这是怎么一步步的运行直到输出结果的呢?ob2不是对象吗?怎么和Test o联系起来了?
各位。。。请讲讲,谢谢了
展开
 我来答
星梦羽6
推荐于2018-04-11 · TA获得超过136个赞
知道答主
回答量:123
采纳率:0%
帮助的人:65.4万
展开全部
text是一个类。而o是他的一个对象。。。
Text o 就是建了一个对象。。。
if(o.a==a && o.b==b)return true;
else return false;
就不用说了把。。
System.out.println(ob1.equals(ob2));就是用obj1和obj2比较。。
也就是比较引用。输出的应该为false
如果真的要弄懂的话就得好好学内存解析。。
还有个api文档。。
也可以查的到的....
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友388688327
2009-09-10 · TA获得超过1053个赞
知道小有建树答主
回答量:1297
采纳率:0%
帮助的人:964万
展开全部
这个程序是重写了equals()方法,然后在里面为它重新指定比较规则.
你应该去Object类下面看看,equals()方法是从里面继承迩来,所以JAVA中所有的类都默认的有这个方法.只是根据具体情况不同,需要对它进行重写而已.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友caa5791b9
2009-09-10 · TA获得超过207个赞
知道答主
回答量:37
采纳率:0%
帮助的人:28.1万
展开全部
boolean equals(Test o)这一句 test o 是什么?
test是类型 o是对象,例如boolean equals(String str),String是字符串类型,str是str对象,将str参数传递给equal。

System.out.println(ob1.equals(ob2));这是怎么一步步的运行直到输出结果的呢?ob2不是对象吗?怎么和Test o联系起来了?
ob1.equals(ob2)返回的是boolean类型的值 是由boolean equals(Test o)而来的。ob2是属于 Test类的对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
马超1980928
2009-09-14
知道答主
回答量:6
采纳率:0%
帮助的人:0
展开全部
Test o是申明一个引用变量。引用变量实际上和一般变量没有区别,只是他只能用来指向用new创建出来的对象在内存中的地址。(和C/C++中的指针是同一概念,只是被封装的深一些)。
在调用equals(ob2)的时候,实际上是将ob2的值,即所指向的对象的地址传给了o这个引用变量。所以o和ob2都引用同一个对象, 即指向的是同一个地址。
默认情况下,Java的==运算符比较的是变量的值,在比较引用变量的时候,也是比较它们的值。即对象在内存中的地址。所以要比较两个对象,除非两个引用变量都指向同一个地址,否则都会返回false。在Objec类里的equals方法就是这样实现的。因此为了能正确比较两个对象里的内容,我们往往都要重写equals方法。才能按照需要运行。
还有一般在给对象之间进行拷贝时,不要使用=运算符,比如:
Test o1 = new Test ();
Test o2 = o1;
这样是不行的。原因还是和上面的道理一样。赋值的时候只是将o1的值,即引用的地址传给了o2。这样o1和o2引用了同一个地址。修改o2,o1也会跟着改变。达不到预期效果。所以一般在拷贝对象是要重写Object的clone方法。将o1的每一个成员都复制一份给o2。
建议了解一下引用变量,equals方法, hash方法的概念。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式