JAVA的tostring()方法的作用是什么呢? java中的toString()是什么方法?

java\u4e2d\u7684toString\u4ec0\u4e48\u610f\u601d\uff1ftoString\u6709\u4ec0\u4e48\u7528\uff1f

toString() \uff0c\u4e2d\u6587\u7406\u89e3\u5b57\u7b26\u4e32\u3002
toString()\u662fObject\u7684\u65b9\u6cd5\uff0c\u56e0\u4e3a\u6240\u6709\u7c7b\u90fd\u9ed8\u8ba4\u7ee7\u627f\u4e86Object\u7c7b\uff0c\u6240\u4ee5\u4e5f\u90fd\u5177\u6709toString()\u65b9\u6cd5\uff0c\u4f46\u662f\u5e76\u4e0d\u662f\u901a\u5e38\u60f3\u8981\u7684\u529f\u80fd\u3002
\u4e3e\u4e2a\u4f8b\u5b50\uff1a
\u4f60\u5b9a\u4e49\u4e86\u4e00\u4e2a\u7c7bPerson\u5982\u4e0b\uff1a
public class Persion {
String name;
int age;
String gender;
}
\u90a3\u73b0\u5728\uff0c\u9700\u8981\u76f4\u63a5\u83b7\u53d6\u5230\u8fd9\u4e2aPersion\u5bf9\u8c61\u7684\u6570\u636e\uff0c\u53ef\u4ee5\u8fd9\u6837\u5bf9\u91cd\u5199\u8fd9\u4e2atoString()\u65b9\u6cd5\uff0c\u5982\u4e0b\uff1a
public class Persion {
String name = "AAA";
int age = 22;
String gender = "\u5973";
@Override
public String toString() {
return "[name=" + name + ", age=" + age + ", gender=" + gender + "]";
}
}
\u8c03\u7528\u65b9\u6cd5\uff1a
Persion p = new Persion();
System.out.println(p); // \u9690\u5f0f\u8c03\u7528toString(0)\u65b9\u6cd5
System.out.println(p.toString()); // \u663e\u5f0f\u8c03\u7528toString(0)\u65b9\u6cd5

\u6269\u5c55\u8d44\u6599\uff1a
\u5b57\u7b26\u4e32\u5728\u5b58\u50a8\u4e0a\u7c7b\u4f3c\u5b57\u7b26\u6570\u7ec4\uff0c\u5b83\u6bcf\u4e00\u4f4d\u5355\u4e2a\u5143\u7d20\u90fd\u662f\u80fd\u63d0\u53d6\u7684\uff0c\u5b57\u7b26\u4e32\u7684\u96f6\u4f4d\u662f\u5b83\u7684\u957f\u5ea6\uff0c\u5982s[0]=10\uff0c\u8fd9\u63d0\u4f9b\u7ed9\u6211\u4eec\u5f88\u591a\u65b9\u4fbf\uff0c\u4f8b\u5982\u9ad8\u7cbe\u5ea6\u8fd0\u7b97\u65f6\u6bcf\u4e00\u4f4d\u90fd\u80fd\u8f6c\u5316\u4e3a\u6570\u5b57\u5b58\u5165\u6570\u7ec4\u3002
\u901a\u5e38\u4ee5\u4e32\u7684\u6574\u4f53\u4f5c\u4e3a\u64cd\u4f5c\u5bf9\u8c61\uff0c\u5982\uff1a\u5728\u4e32\u4e2d\u67e5\u627e\u67d0\u4e2a\u5b50\u4e32\u3001\u6c42\u53d6\u4e00\u4e2a\u5b50\u4e32\u3001\u5728\u4e32\u7684\u67d0\u4e2a\u4f4d\u7f6e\u4e0a\u63d2\u5165\u4e00\u4e2a\u5b50\u4e32\u4ee5\u53ca\u5220\u9664\u4e00\u4e2a\u5b50\u4e32\u7b49\u3002\u4e24\u4e2a\u5b57\u7b26\u4e32\u76f8\u7b49\u7684\u5145\u8981\u6761\u4ef6\u662f\uff1a\u957f\u5ea6\u76f8\u7b49\uff0c\u5e76\u4e14\u5404\u4e2a\u5bf9\u5e94\u4f4d\u7f6e\u4e0a\u7684\u5b57\u7b26\u90fd\u76f8\u7b49\u3002\u8bbep\u3001q\u662f\u4e24\u4e2a\u4e32\uff0c\u6c42q\u5728p\u4e2d\u9996\u6b21\u51fa\u73b0\u7684\u4f4d\u7f6e\u7684\u8fd0\u7b97\u53eb\u505a\u6a21\u5f0f\u5339\u914d\u3002\u4e32\u7684\u4e24\u79cd\u6700\u57fa\u672c\u7684\u5b58\u50a8\u65b9\u5f0f\u662f\u987a\u5e8f\u5b58\u50a8\u65b9\u5f0f\u548c\u94fe\u63a5\u5b58\u50a8\u65b9\u5f0f\u3002
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1-\u5b57\u7b26\u4e32

1.toString方法

Object类具有一个toString()方法,你创建的每个类都会继承该方法。它返回对象的一个String表示,并且对于调试非常有帮助。然而对于默认的toString()方法往往不能满足需求,需要覆盖这个方法。

toString方法将对象转换为字符串。看以下代码:

结果:

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。

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

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

结果:

This is Hamster #0

This is Hamster #1

This is Hamster #2

3.一个实现toString()的通用的Bean

在作一个项目时发现,许多bean需要实现toString()方法,就实现一个通用的bean,然后通过其他继承即可。

测试类

结果  {id:9}

扩展资料:

public String toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。

Object类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())

返回:该对象的字符串表示形式。

参考资料:toString-百度百科



在JAVA中,所有的对象都有toString方法;

创建类时没有定义toString方法,输出对象时,会输出对象的哈希值;

它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法

它通常只是为了方便输出:

例如:

public class Test2{
String name;    int age;    public String toString(){        return "我的姓名是:"+name+"我的年龄是:"+age;
}    public static void main(String[] args){
Test2 Myclass    =    new    Test2();
Myclass.name    =    "小明";
Myclass.age        =    20;
System.out.println(Myclass);    //直接使用对象名时默认调用该对象的toString方法
System.out.println(Myclass.toString());//手动调用String方法    }

运行结果:

如果类中没有定义toString方法,按照以上案例调用时,会输出对象的哈希值,如下案例所示:

运行结果:

参考资料:toString-百度百科




更正楼上一个错误,不是“许多对象都有这个方法”,而是“所有对象都有这个方法”,因为它是Object里面已经有了的方法,而所有类都是继承Object,所以“所有对象都有这个方法”

它通常只是为了方便输出,比如System.out.println(xx),括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法

总而言之,它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法

回答补充:
写这个方法的用途就是为了方便操作,所以在文件操作里面可用可不用

例子1:
public class A{
public String toString(){return "this is A";}
}
如果某个方法里面有如下句子:
A obj=new A();
System.out.println(obj);
会得到输出:this is A

例子2:
public class A{
public String getString(){return "this is A";}//toString改个名字试试看
}
A obj=new A();
System.out.println(obj);
会得到输出:xxxx@xxxxxxx的类名加地址形式
System.out.println(obj.getString());
会得到输出:this is A

看出区别了吗,toString的好处是在碰到“println”之类的输出方法时会自动调用,不用显式打出来

用System.out.println()输出一个对象的时候,java默认调用对象的toString()方法
一般你要覆盖这个方法,这样根据覆盖逻辑你就可以输出自己的对象
比如你定义一个类User,有id,name属性,你直接输出一个user对象的话
System.out.println(user),得到的只是
全限定名@地址首地址
如果你在User类里面覆盖这个toString方法的话就能输出你要的
比如
public String toString(){
return "user name is:"+this.name+";"+"user id is:"+this.id;
}
这样你输出一个user对象就是
User user = new User(1,"zhangshan");
System.out.println(user);
得到:user name is :zhangshan;user id is: 1;
希望对你有帮助

返回该对象的字符串表示。通常,toString
方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at
标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())

返回:
该对象的字符串表示形式。

  • tostring鏄粈涔堟剰鎬
    绛旓細渚嬪锛屾垜浠彲浠ュ皢涓涓暟缁勮浆鎹负瀛楃涓茬被鍨嬶紝濡備笅鎵绀猴細int[] array = {1, 2, 3}; System.out.println(Arrays.toString(array)); 杈撳嚭缁撴灉涓猴細[1, 2, 3]銆傝繖閲岀敤鍒颁簡Arrays绫讳笅鐨則oString鏂规硶锛屽皢鏁扮粍绫诲瀷杞崲涓哄瓧绗︿覆绫诲瀷銆Java杩樻敮鎸佽嚜瀹氫箟绫诲瀷鐨則oString鏂规硶锛屽湪杩欎釜鏂规硶涓紝鎴戜滑鍙互灏嗚嚜瀹氫箟...
  • JAVA涓璽ostring鏂规硶鐨勪綔鐢
    绛旓細杩斿洖锛氳瀵硅薄鐨勫瓧绗︿覆琛ㄧず褰㈠紡 鍥犱负瀹冩槸Object閲岄潰宸茬粡鏈変簡鐨勬柟娉曪紝鑰屾墍鏈夌被閮芥槸缁ф壙Object锛屾墍浠モ滄墍鏈夊璞¢兘鏈夎繖涓柟娉曗濓紱瀹冮氬父鍙槸涓轰簡鏂逛究杈撳嚭锛屾瘮濡係ystem.out.println(xx)锛屾嫭鍙烽噷闈㈢殑鈥渪x鈥濆鏋滀笉鏄疭tring绫诲瀷鐨勮瘽锛屽氨鑷姩璋冪敤xx鐨則oString()鏂规硶锛涙昏岃█涔嬶紝瀹冨彧鏄痵un鍏徃寮鍙java鐨鏃跺欎负浜嗘柟渚...
  • java toString()鐨勭敤娉
    绛旓細鍏跺疄灏辨槸灏嗕竴涓璞″彉鎴愬瓧绗︿覆杈撳嚭 姣斿涓嬪浘锛
  • 鍏充簬java鐨則ostring()鏂规硶
    绛旓細瀵逛簬绠鍗曠嫭绔嬬殑 Java 搴旂敤绋嬪簭锛岀紪鍐欎竴琛岃緭鍑烘暟鎹殑鍏稿瀷鏂瑰紡鏄細System.out.println(data)java涓鎵鏈夌殑绫婚兘缁ф壙瀛梠bject锛岃绫讳腑鏈氨鏈tostring锛堬級杩欎釜鏂规硶锛屼綘涓嶈繃鏄噸鍐欎簡杩欎釜鏂规硶鑰屽凡銆傛墍浠ヨ緭鍑簅bj鍜宱bj.toString()浣犺繍琛岀殑缁撴灉閮芥槸涓鏍风殑銆傝皟鐢ㄦ柟娉曟樉绀鸿緭鍑虹粨鏋滄槸鍙互鐨勶紝浣嗗鏋滀綘鏂规硶涓病鏈夎緭鍑洪儴鍒嗭紝...
  • java閲鐨則ostring浠涔堢敤?
    绛旓細瀹冮氬父鍙槸涓轰簡鏂逛究杈撳嚭锛屾瘮濡係ystem.out.println(xx)锛屾嫭鍙烽噷闈㈢殑鈥渪x鈥濆鏋滀笉鏄疭tring绫诲瀷鐨勮瘽锛屽氨鑷姩璋冪敤xx鐨則oString()鏂规硶 鎬昏岃█涔嬶紝瀹冨彧鏄痵un鍏徃寮鍙java鐨鏃跺欎负浜嗘柟渚挎墍鏈夌被鐨勫瓧绗︿覆鎿嶄綔鑰岀壒鎰忓姞鍏ョ殑涓涓柟娉 渚嬪瓙1锛歱ublic class A{ public String toString(){return "this is A";} } 濡...
  • 璇峰啓鍑哄java涓鈥滃寘瑁呯被鈥濄佲toString鏂规硶鈥濄佲==姣旇緝杩愮畻绗...
    绛旓細1.鍖呰绫 鍖呰绫讳负鍩烘湰鏁版嵁绫诲瀷鎻愪緵浜嗙浉搴旂殑寮曠敤鏁版嵁绫诲瀷銆(鍩烘湰鏁版嵁绫诲瀷-鍖呰绫)btye-Byte锛宑har-Character,short-Short,float-Float int-Integer,double-Double,long-Long,boolean-Boolean 2.toString()鏂规硶 toString()鏄疧bject绫婚噷闈㈢殑涓涓疄渚嬫柟娉曪紝鍥犱负鎵鏈夌殑绫婚兘鏄疧bject鐨勫瓙绫伙紝鎵浠ユ墍鏈夌殑Java瀵硅薄閮...
  • java涓,涓嬮潰鎯呭喌涓,涓轰粈涔堝彲浠ヨ皟鐢toString()鏂规硶?
    绛旓細鍥犱负杩欎釜toString鏄疧bject杩欎釜绫婚噷闈㈢殑鏂规硶锛屼紬鎵鍛ㄧ煡锛孫bject绫绘槸鎵鏈夌被鐨勭埗绫伙紝鎵浠ュ氨鏄疌ollection璋冪敤浜嗗叾鐖剁被鐨勪竴涓柟娉曡屽凡
  • Java璇█涓负浠涔堟瘡涓被閮芥湁equals()鍜toString()鏂规硶?
    绛旓細1.姣忎釜绫伙紙闄や簡Object锛夐兘榛樿缁ф壙Object锛岃孫bject鎷ユ湁equals鍜toString鏂规硶 2.equals鐢ㄤ簬鍒ゅ畾涓や釜瀵硅薄鏄惁涓哄悓涓瀵硅薄锛岀▼搴忓憳寰楁牴鎹嚜宸辩殑闇瑕侀噸鍐欒繖涓柟娉曟潵杈惧埌瀵硅薄姣旇緝鐨勭洰鐨 3.toString鏂规硶鐢ㄤ簬杈撳嚭瀵硅薄鐨勬瑕佷俊鎭紝寰堝鏂规硶鍜屾瀯閫犳柟娉曞湪璋冪敤杩欎簺瀵硅薄鏃讹紝閮介渶瑕佸悜鐢ㄦ埛杈撳嚭姒傝淇℃伅锛堝Swing涓殑鍒楄〃JList锛...
  • Java涓浠涔堟椂鍊欓渶瑕佹樉绀洪噸杞toString鏂规硶
    绛旓細api涓浜嶰bject绫伙紝榛樿鎵撳嵃涓涓璞(濡傛灉杩欎釜瀵硅薄鐨勭被鍦╝pi涓婄殑鏂规硶涓病鏈toString()鏂规硶)鐨勬椂鍊欙紝鐩存帴鎵撳嵃鍑篻etClass().getName() + '@' + Integer.toHexString(hashCode())杩欐牱鐨勬牸寮忥紝濡傛灉杩欎釜瀵硅薄绫荤殑鏂规硶涓甫鏈塼oString()鏂规硶锛屾瘮濡傚儚String杩欎釜绫讳腑灏辨湁toString()杩欎釜鏂规硶锛岄偅涔堝氨涓嶉渶瑕侀噸杞斤紝...
  • java涓a[i][j].toString().trim().equals("")鏄粈涔堟剰鎬??
    绛旓細java涓a[i][j].toString().trim().equals("")瑙i噴濡備笅锛1.a[i][j]琛ㄧず浜岀淮鏁扮粍鐨勪竴涓暟鎹紝浣跨敤toString()鏂规硶杞崲涓簊tring绫诲瀷銆2.trim()琛ㄧず瀛楃涓插幓鎺夌┖鏍硷紝鎺ョ潃涓庣┖鏍艰繘琛屾瘮杈冿紝鐪嬫槸鍚﹀瓧绗︿覆浠嶆湭绌恒
  • 扩展阅读:javascript innerhtml ... javascript window ... javascript&jquery ... java runnable ... java webservice ... java properties ... javascript onclick ... java serversocket ... java ajax ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网