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
    

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

  • 相关阅读:
    结对项目开始
    团队项目开始
    个人项目总结
    python面向对象
    OSI七层模型
    Django中的orm的惰性机制
    Python装饰器
    python运算符
    python元祖和列表
    Sencha Touch 1.x 快速入门 第三章 布局(2) Card布局
  • 原文地址:https://www.cnblogs.com/baininghan/p/4221943.html
Copyright © 2011-2022 走看看