java基础:Object 的toString方法

一:首先看Demo1

<strong><span style="font-size:18px;">public class Dog1{
	Dog1(){

	}
	public static void main(String[] args) {
		Dog1 d = new Dog1();
		System.out.println(d);
	}
}</span></strong>

输出结果:

[email protected]

我们经常会看到对象的输出结果是这个样子?但是你想过为什么会输出这个结果吗?

明白这个输出,需要了解一下Object这个类,Object类是java所有类的基类。

也就是上面的类定义,其实等价于

<strong><span style="font-size:18px;">public class Dog1<span style="color:#ff0000;"> extends Object{</span></span></strong>
<strong><span style="font-size:18px;">Object类中有一个toString()方法</span></strong>
<strong><span style="font-size:18px;">它的实现代码为:</span></strong>
<strong><span style="font-size:18px;">
 <span style="color:#ff0000;">public String toString() {
<span style="white-space:pre">	</span>  return getClass().getName() + "@" + Integer.toHexString(hashCode());
  }</span>
</span></strong>

System.out.println(d);

//等价于System.out.println(""+d);

//等价于System.out.println(""+d.toString());

//任何对象与字符串拼接,都会将对象转化为字符串类型,相当于调用对象的toString方法。这里就会调用父类的toString()方法

二:再来看Demo2

public class Dog2{
	Dog2(){

	}
	 public String toString() {
	        return "i am a dog";
	    }
	public static void main(String[] args) {
		Dog2 d = new Dog2();
		System.out.println(d);

	}

来看输出结果:

i am a dog

为什么呢?

因为Dog2重写Override了父类Object的toString()方法。就会调用自己的toString方法。

建议类最好都重写一下Object的toString()方法。

时间: 2024-08-28 04:36:09

java基础:Object 的toString方法的相关文章

黑马程序员——java基础 ArrayList集合基本方法演示

java基础 ArrayList集合基本方法演示 import java.util.ArrayList; import java.util.Iterator; public class ArrayListDemos { public static void main(String[] args) { // 创建一个新的容器 ArrayList al = new ArrayList(); al.add("abc1"); al.add("abc2"); al.add(&

java基础学习总结——equals方法

永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! java基础学习总结——equals方法 一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class TestEquals { 4 public static void main(String[] args) { 5 /** 6 * 这里使用构造方法Cat()在堆内存里面new出了两只猫, 7 * 这两只猫的color,weight,hei

理解JAVA - 面向对象(object) - 属性,方法

理解JAVA - 面向对象(object) - 属性,方法 多态的体现:    向上造型,父类接收子类对象:向上造型:    从父类角度看不到子类独有的方法: 面向对象,人类认知世界的方式:生活中每天都在多态:    这个人是谁,这是个人,多态来看待他了:    他是老师  把它向下造型来看待了,他是老师,知道他能讲课了,老师是人下面的子类型: 我们每天都已多态来接收事物,然后向下造型:    这是人,这人是老师:    这是车,这车是奥迪 小时候,不知到是什么,就问这是什么东西,世间万物都能成

JavaScript中Object.prototype.toString方法的原理

在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. ? 1 2 var arr = []; console.log(Object.prototype.toString.call(arr)) //"[object Array]" 本文要讲的就是,toString方法是如何做到这一点的,原理是什么. ECMAScript 3 在ES3中,Object.prototype.toString方法的规范如下:

JavaScript:Object.prototype.toString方法的原理

在JavaScript中,想要判断某个对象值属于哪种内置类型,最靠谱的做法就是通过Object.prototype.toString方法. var arr = []; console.log(Object.prototype.toString.call(arr)) //"[object Array]" 本文要讲的就是,toString方法是如何做到这一点的,原理是什么. ECMAScript 3 在ES3中,Object.prototype.toString方法的规范如下: 15.2.

Java基础 之 System.getProperty()方法

Java基础 之 System.getProperty()方法大全 1 public static void main(String[] args) { 2 System.out.println("java版本号:" + System.getProperty("java.version")); // java版本号 3 System.out.println("Java提供商名称:" + System.getProperty("java.

Java基础03 构造器与方法重载(转载)

显式初始化要求我们在写程序时就确定初始值,这有时很不方便.我们可以使用构造器(constructor)来初始化对象.构造器可以初始化数据成员,还可以规定特定的操作.这些操作会在创建对象时自动执行. 定义构造器 构造器(constructor)是一个方法.像普通方法一样,我们在类中定义构造器.构造器有如下基本特征: 构造器的名字和类的名字相同 构造器没有返回值 我们定义Human类的构造器: public class Test{    public static void main(String[

一个对象toString()方法如果没有被重写,那么默认调用它的父类Object的toString()方法,而Object的toString()方法是打印该对象的hashCode,一般hashCode就是此对象的内存地址

昨天因为要从JFrame控件获取密码,注意到一个问题,那就是用toString方法得到的不一定是你想要的,如下: jPasswordField是JFrame中的密码输入框,如果用下面的方法是得不到密码的value的: jPasswordField.getPassword().toString(); 这是因为jPasswordField.getPassword()得到的是字符数组char[],然后调用toString方法得到的是这个字符数组的hashCode,即字符数组的内存地址. 只有用下面的方

匿名对象,内部类,包的声明与访问,访问修饰符,代码块,java的API equals toString方法整理

匿名对象  匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. public class Person{ public void eat(){ System.out.println(); } }创建一个普通对象person p=new person();创建一个匿名对象new person(); 匿名对象的特点: 1创建匿名对象直接使用,没有变量名. new Person().eat() //eat方法被一个没有名字的Person对象调用了. 2,匿名对象在没有指定其