【问题标题】:Access object by reference [closed]通过引用访问对象[关闭]
【发布时间】:2017-02-24 07:12:21
【问题描述】:

以下程序的输出是什么?我不知道对象分配或引用。

class ObjEx
{
    public static void main(String arg[])
    {
        ObjEx ob=new ObjEx();
        Object o = ob;

    if(o==ob)
        System.out.println("1");
    if(o!=ob)
        System.out.println("10");
    if(o.equals(ob))
        System.out.println("101");
    if(ob.equals(o))
        System.out.println("1101");

    }
}

选项:A)1 (B)10 (C)101 (D)1101 请向我解释将输出什么以及如何可能? 我在屏幕上得到输出,但我没有得到这个程序:

1

101

1101

【问题讨论】:

  • 如果有办法运行程序并找出...
  • 您回答了自己的问题,好先生。 o==ob、o.equals(ob) 和 ob.equals(o)'; all of these things are true! o==ob` 最重要的是;只有一个ObjEx 实例,并且有两个对它的引用。

标签: java object reference equals


【解决方案1】:

这里if(o==ob) 您正在比较参考资料 最后两种情况:

if(o.equals(ob))
if(ob.equals(o))

在java中equals是一个比较对象的操作并且这个操作是对称的:对于任何非空引用值x和y,x.equals(y)应该返回true当且仅当y.equals(x) 返回真。

【讨论】:

    猜你喜欢
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 2019-01-11
    • 1970-01-01
    • 2022-09-29
    • 1970-01-01
    相关资源
    最近更新 更多