当前位置:  技术问答>java相关

什么情况下两个对象可以用“==”或者“!=”来比较啊?

    来源: 互联网  发布时间:2015-09-08

    本文导语:  为什么我自己写的这个类的实例不能用“==”和“!=”来比较呢? import java.io.*; public class MyApp { public static void main(String[] args){ M m = new M("n"); N n = new N("n"); System.out.println(n==m); } } class M { pub...

为什么我自己写的这个类的实例不能用“==”和“!=”来比较呢?


import java.io.*;


public class MyApp
{
public static void main(String[] args){
M m = new M("n");
N n = new N("n");


System.out.println(n==m);


}

}


class M {

public String str;

public M(String s){
str=s;
        }

}
class N {
public String str;

public N(String s){
str = s;

     }
}


编译出错:

incomparable types: N and M


|
你定义的两个类虽然形式一样,但他们没有直接的关系,所以不能这样比较。
1 .简单变量,如int,char等,
2 .引用性变量在比较是否是引用同一内存空间。

|
因为是同一个类对象的不同实例的比较,
应为==是运算符操作,在类里已经封装了它的方法,
就是比较同类实例对象是否相等。


|
用"=="或"!="是判斷對象的引用是否相等,即這兩個對象是否為同一個對象.
而用"equals"是判斷對象的內容是否相等.

String s1 = new String("1234");
String s2 = new String("1234");

s1==s2,為false;
用"equals",則 s1.equals(s2)為true;

這裡說的都是類,而不是基本類型.

|
当你想知道两个对象名在内存中是否是同一对象对,可以用==和!=来比较
这两个符号在对象比较对是看地址是否相等

|
在这里用equals呀,==,!=是比较同一个对象的

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我这种情况,用什么文档管理软件比较好
  • C++ Vectors 成员 capacity():返回vector所能容纳的元素数量(在不重新分配内存的情况下)
  • 请问什么情况下用servlet,什么情况下用ejb,什么情况下用jsp.给出理由?
  • linux下free命令显示的内存使用情况分析
  • 如何查看分区情况和硬盘空间使用情况?
  • 求助:java实现显示linux下的cpu占用率,内存使用情况,硬盘占用情况
  • shell 函数中的用exit时,什么情况下仅仅退出函数,什么情况下退出整个shell程序?
  • tcp和udp套接字有何不同?在什么情况下用tcp什么情况下用udp????
  • 在AIX(4.3)系统上如何查看内存情况
  • SWAP分区满的问题,有同学碰到这种情况吗?
  • AIX 4.3.X中用什么命令能查看到系统内存的使用情况?
  • 如何编程查看 cpu 内存 占用情况
  • 磁盘使用情况统计工具 KDirStat
  • ubuntu的问题。查看内存使用情况的问题
  • 网络使用情况统计工具 AsItHappens
  • 系统资源使用情况
  • socket连接建立,收不到告警的情况?netstat结果如下
  • 关于freebsd在多系统情况下的安装
  • 如何查看某个进程的cpu使用和内存使用情况????
  • 如何取得内存占用情况?
  • java/j2ee iis7站长之家
  • 请问在UNIX上如何看一个进程的内存使用情况?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3