zoukankan      html  css  js  c++  java
  • 如何区分同一Class的不同实例对象

    如何区分同一Class的不同实例对象

    标签: Java


    今天在一个Java群里有一个群友问了一个问题:

    public class AClass {
    
    	public static void main(String[] args) {
    		SubClass s1 = new SubClass();
    		s1.print();
    		SubClass s2 = new SubClass();
    		s2.print();
    	}
    	
    }
    
    class SubClass{
    	 void print(){
    		System.out.println("s1 or s2 invoke thie method?");
    	}
    }
    

    SubClass实例化了两个对象,分别是s1s2,两个对象都调用了print()方法,在方法中我们如何得知到底是哪个对象调用了这个方法?

    有人说使用System.out.println(this.getClass().getName());,这显然是不行的。这样只能得到SubClass这个类型的信息,不管是s1还是s2对象,他们都是属于SubClass类型。

    我建议使用System.out.println(this.hashCode());,这样可以得到不同的对象的哈希码。更改print()方法之后,得到结果如下:

    1908246931
    1385385019
    

    这样,不同的对象拥有不同的哈希码,也就拥有了一个唯一标识。

  • 相关阅读:
    CSS 兼容 总结
    IF IE
    取消chrome浏览器下input和textarea的默认样式
    左右浮动边距为0,中间间隔一定
    标题右边10px位置紧跟发布时间
    两款CSS3样式可视化在线生成工具
    文字截取,多余文字用省略号(...)代替
    O
    N
    M
  • 原文地址:https://www.cnblogs.com/baininghan/p/4221943.html
Copyright © 2011-2022 走看看