This program
public class HelloWorld{
public void testFunc(){
System.out.println("Class = "+this);
}
public static void main(String[] args){
HelloWorld hw = new HelloWorld();
System.out.println("Hello, World");
hw.testFunc();
}
}
gives me this output:
Hello, World
Class = HelloWorld@7c6768
What does @7c6768
after HelloWorld in the second line mean?
Object's toString()
is implemented as follows:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
Since your HelloWorld
class doesn't override it, this is the method called.
The toString()
method returns a string representation of the object.
In general, the toString()
method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.
The toString
method for class Object
returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:
getClass().getName() + '@' + Integer.toHexString(hashCode())
As per Docs of toString() method in Object class
The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:
When
getClass().getName() + '@' + Integer.toHexString(hashCode())
When you call toString() on object ,If you ovveride like below ,you get your own implementation
@Override
public String toString() {
//return something
}
Otherwise gives the default implementation,which you are seeing right now
From Object class Source code
Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method.
The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of: getClass().getName() + '@' + Integer.toHexString(hashCode())
Returns:
a string representation of the object.
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With