WEB开发网
开发学院WEB开发Jsp 为什么用“==”与“equal”得到的输出不同 阅读

为什么用“==”与“equal”得到的输出不同

 2008-01-05 08:37:52 来源:WEB开发网   
核心提示: 以下内容为程序代码class ObjectEquals {static int maxElements;ObjectEquals(int maxElements) {this.maxElements = maxElements;}public static void main(String[] args) {Obje

  
以下内容为程序代码 以下内容为程序代码

  class ObjectEquals {
    static int maxElements;
  
    ObjectEquals(int maxElements) {
      this.maxElements = maxElements;
    }
  
    public static void main(String[] args) {
      ObjectEquals a = new ObjectEquals(100);
      ObjectEquals b = new ObjectEquals(100);
      if(a.equals(b))
        System.out.PRintln("Objects have the same values");
      else
        System.out.println("Objects have different values");
    }
  }
  

  
  以上的输出是 different ,为什么? 当然假如比较 "==" ,更是 different 了。
  
  nod,其实equals并非真正的比较value,在这里equals和==其实都是比较引用。
  但是我们经常认为equals是比较值,有两个原因:
  1。原始类型的数据比如string,int,用equals实际是比较值。
  2。sun实际上是鼓励大家通过重写equals来使之的语义是比较值。但是我们往往很少重写。

Tags:为什么 equal 得到

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接