A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hsen 中级黑马   /  2014-4-18 15:06  /  485 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hsen 于 2014-4-19 10:31 编辑

1.toString()方法
Object类具有一个toString()方法,你创建的每个类都会继承该方法。它返回对象的一个String表示,并且对于调试非常有帮助。然而对于默认的toString()方法往往不能满足需求,需要覆盖这个方法。
toString()方法将对象转换为字符串。看以下代码:



package sample;

class Villain {
private String name;

protected void set(String nm) {
name = nm;
}

public Villain(String name) {
this.name = name;
}

public String toString() {
return "I'm a Villain and my name is " + name;
}
}

public class Orc extends Villain {
private int orcNumber;

public Orc(String name, int orcNumber) {
super(name);
this.orcNumber = orcNumber;
}

public void change(String name, int orcNumber) {
set(name);
this.orcNumber = orcNumber;
}

public String toString() {
return "Orc" + orcNumber + ":" + super.toString();
}

public static void main(String[] args) {
Orc orc = new Orc("Limburger", 12);
System.out.println(orc);
orc.change("Bob", 19);
System.out.println(orc);
}
}



结果:
sample.Orc@11b86e7
sample.Orc@11b86e7
如果去掉注释,即加入2个toString()方法后,得到
结果:
Orc12:I'm a Villain and my name is Limburger
Orc19:I'm a Villain and my name is Bob

2.在容器类中使用toString()
编写一个工具类,用于在控制台输出Iterator。

import java.util.Iterator;

public class Printer {
static void printAll(Iterator e){
while(e.hasNext()){
System.out.println(e.next());
}
}
}


在Hamster类中重写父类的toString()方法。

public class Hamster {
private int hamsterNumber;
public Hamster(int hamsterNumber){
this.hamsterNumber=hamsterNumber;
}

public String toString(){
return "This is Hamster #"+hamsterNumber;
}
}


在HamsterMaze类中使用容器类加载Hamster类对象并输出结果。

import java.util.ArrayList;
import java.util.List;

public class HamsterMaze {
@SuppressWarnings("unchecked")
public static void main(String[] args){
List list=new ArrayList();
for(int i=0;i<3;i++)
list.add(new Hamster(i));
Printer.printAll(list.iterator());
}
}


结果:
This is Hamster #0
This is Hamster #1
This is Hamster #2

评分

参与人数 1黑马币 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马