Object类的经典方法(06年8月25日更新,修改一个错误)
2006-08-24 09:01
525 查看
我们在编写类的时候都知道,有equals方法,toString方法,hashCode方法,clone方法,getClass方法,在今后的一段时间我会一点一点的把这些方法逐个刨析清楚。
toString()
toString()方法是基类Object的方法,其实我们每天的工作都在使用他,比如我们现在需要打印一个String类型变量i的值,
自然我们就会想到使用System.out.println(i);此时的i其实就是i.toString()他会自动调用toString方法将i转换成为String类型,再打印。
当我们想打印一个对象的时候,也许就不如我们所愿了,比如有一个Students类,当我们使用System.out.println(Students);方法想打印Stends的信息时打印出来的就是我们看不懂的东西了,这是因为我们的Students类没有覆盖Object类的toString方法,我们写一个就行了
public String toString()
{
return getClass().getName() + "学员名称" + name + "学员年龄" + age;
}
这样我们再使用System.out.println(Students);的时候就会打印出我们需要的信息了。
深入一下,如果我们现在有一个类继承了Students,比如 class Pupil extends Students 在Pupil类中又增加了一个int类型的变量id
那么我们Pupil类的toString方法该怎么写呢?
这时我们只要在Pupil类中重写toString方法,在其中增加一些信息就行了,
public String toString()
{
return super.toString() + "学员编号" + id;
}
再使用System.out.println(Pupil);打印小学生的信息,就得到了我们想要的结果了,其实在实际开发中toString方法自己编写这个方法非常有用,他能够很清楚的显示出类的内容和信息。
public class TestgetClass
{
private int id;
private String name;
public TestgetClass(int id,String name)
{
this.id = id;
this.name = name;
}
public String toString()
{
return getClass().getName() + " 学员编号 " +this.id + " 学员姓名 " + this.name;
}
public static void main(String[] args)
{
System.out.print(new TestgetClass(15,"刘翔"));
}
}
toString()
toString()方法是基类Object的方法,其实我们每天的工作都在使用他,比如我们现在需要打印一个String类型变量i的值,
自然我们就会想到使用System.out.println(i);此时的i其实就是i.toString()他会自动调用toString方法将i转换成为String类型,再打印。
当我们想打印一个对象的时候,也许就不如我们所愿了,比如有一个Students类,当我们使用System.out.println(Students);方法想打印Stends的信息时打印出来的就是我们看不懂的东西了,这是因为我们的Students类没有覆盖Object类的toString方法,我们写一个就行了
public String toString()
{
return getClass().getName() + "学员名称" + name + "学员年龄" + age;
}
这样我们再使用System.out.println(Students);的时候就会打印出我们需要的信息了。
深入一下,如果我们现在有一个类继承了Students,比如 class Pupil extends Students 在Pupil类中又增加了一个int类型的变量id
那么我们Pupil类的toString方法该怎么写呢?
这时我们只要在Pupil类中重写toString方法,在其中增加一些信息就行了,
public String toString()
{
return super.toString() + "学员编号" + id;
}
再使用System.out.println(Pupil);打印小学生的信息,就得到了我们想要的结果了,其实在实际开发中toString方法自己编写这个方法非常有用,他能够很清楚的显示出类的内容和信息。
public class TestgetClass
{
private int id;
private String name;
public TestgetClass(int id,String name)
{
this.id = id;
this.name = name;
}
public String toString()
{
return getClass().getName() + " 学员编号 " +this.id + " 学员姓名 " + this.name;
}
public static void main(String[] args)
{
System.out.print(new TestgetClass(15,"刘翔"));
}
}
相关文章推荐
- 修改SQL数据库中表字段类型时,报“一个或多个对象访问此列”错误的解决方法
- windows installer服务不能更新一个或多个受保护的windows文件错误的解决方法
- 修改SQL数据库中表字段类型时,报“一个或多个对象访问此列”错误的解决方法
- "操作必须使用一个可更新的查询"错误的解决方法
- 更新数据库所有表的某一个指定字段 ,附加对‘将 varchar 值转换为数据类型为 int 的列时发生语法错误’处理方法
- Microsoft JET Database Engine 错误 '80004005' 操作必须使用一个可更新的查询。解决方法
- "执行SQL语句时出现问题操作必须使用一个可更新的查询"错误的解决方法
- 写一个方法进行各种属性的更新,而不要每个界面设置改变都改变一个属性。就是点击应用或确定按钮时调用这个更新属性的方法,遍历所有(控制对象属性的)界面控件的状态(值),进行属性修改和刷新。
- 安装Office时出现windows installer服务不能更新一个或多个受保护的windows文件错误的解决方法
- mysql 批量修改表中字段数据成不同的值 用一个表更新另一个表的方法
- 安装Office时出现windows installer服务不能更新一个或多个受保护的windows文件错误的解决方法
- 修改$("form:first").serialize(); 中某一名称的checkbox一个均未选择, 取不到name, 后台无法更新为null的错误
- 修改SQL数据库中表字段类型时,报“一个或多个对象访问此列”错误的解决方法
- oc -3 封装 弱语法(一个经典错误) 类方法
- 网站后台登录aspcms 提示错误号:-2147467259,错误描述:操作必须使用一个可更新的查询。sql=update AspCms_Content set TimeStatus=0 where TimeStatus=1 and Timeing <= 解决方法。
- Microsoft JET Database Engine 错误 '80004005' 操作必须使用一个可更新的查询。解决方法
- C#ADO连接修改Paradox表时“操作必须使用一个可更新的查询”错误的处理办法
- 修改SQL数据库中表字段类型时,报“一个或多个对象访问此列”错误的解决方法
- 修改SQL数据库中表字段类型时,报“一个或多个对象访问此列”错误的解决方法
- 修改SQL数据库中表字段类型时,报“一个或多个对象访问此列”错误的解决方法