java tostring怎么用_Java中的ToString方法

当我们创建任何用户定义类的对象并打印该对象时,我们将获得该对象的十六进制地址。见下文,Book B = new Book ("Include Help");

System.out.println(B);

输出结果@2a139a55

在这里,当我们打印Book类的B对象时,我们将获得Object的十六进制代码而不是Object的值。

但是,当我们对Java预定义类(例如String)执行相同的操作时。它不会打印地址,但会打印该对象的值。String  S= new String ("Include Help");

System.out.println(S);

输出结果Include Help

那么,在用户定义的类的情况下情况如何?看看后台发生了什么有趣吗?

这是因为Java编译器会toString()在每个类中搜索将对象转换为字符串的方法。如果使用此方法,则在类中找不到它,它将打印对象的HexaCode地址。但是在预定义的Java类(如String)中,预定义了toString方法。

如果我们想要在用户定义的类中实现相同的功能,则必须在类中显式声明toString方法,这在示例中已完成。

让我们来看一个例子,

在类中未定义toString方法的类package logicProgramming;

//代表一本书的类

class Book

{

private String Name;

private String Code;

private String Author;

public Book(String Name,String Code,String Author)

{

this.Name=Name;

this.Code=Code;

this.Author=Author;

}

}

public class ExImportant {

public static void main(String[] args) {

Book B=new Book("Let Us C","HT301","Harsh Tomar");

//如果我们使用System.out.println(B),它将打印

//对象B的十六进制代码地址

//但是如果我们要打印对象的值

//我们必须在用户定义的类中使用toString方法

//让我们了解......-

System.out.println(B);

//查看输出,它将打印B的地址

}

}

输出结果[email protected]

注意: logicProgramming是程序包的名称,Book是类的名称

现在,让我们修改此代码以获取Object的值,以便执行此操作,我们必须toString()在类中定义一个方法package logicProgramming;

//代表这本书的类

class Book

{

private String Name;

private String Code;

private String Author;

public Book2(String Name,String Code,String Author)

{

this.Name=Name;

this.Code=Code;

this.Author=Author;

}

//toString方法

public String toString()

{return ("Name :"+this.Name+"\nCode :"+this.Code+"\nAuthor :"+this.Author);}

}

public class ExImportant2 {

public static void main(String[] args) {

Book B=new Book("Let Us C","HT301","Harsh Tomar");

//如果我们使用System.out.println(B)

//它将打印对象B的十六进制代码地址

//但是如果我们要打印对象的值

//我们必须在用户定义的类中使用toString方法

//让我们了解......-

System.out.println(B);

//查看将打印Obeject B信息的输出

}

}

输出结果Name :Let Us C

Code :HT301

Author :Harsh Tomar

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值