最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

Java編程-Object中toString方法簡介

2018-11-08 15:08 作者:動(dòng)力節(jié)點(diǎn)  | 我要投稿


一、Object類介紹


Object類在Java里面是一個(gè)比較特殊的類,Java只支持單繼承,子類只能從一個(gè)父類來繼承,如果父類又是從另外一個(gè)父類繼承過來,那他也只能有一個(gè)父類,父類再有父類,那也只能有一個(gè),Java為了組織這個(gè)類組織得比較方便,它提供了一個(gè)最根上的類,相當(dāng)于所有的類都是從這個(gè)類繼承,這個(gè)類就叫Object。所以O(shè)bject類是所有Java類的根基類,是所有Java類的老祖宗。所有的類,不管是誰,都是從它繼承下來的。? ? ?? ? ?

二、toString方法介紹


一個(gè)字符串和另外一種類型連接的時(shí)候,另外一種類型會(huì)自動(dòng)轉(zhuǎn)換成String類型,然后再和字符串連接?;A(chǔ)的數(shù)據(jù)類型int,float,double轉(zhuǎn)換成字符串比較簡單,按照它們的數(shù)字轉(zhuǎn)換過來就成了,可以引用類型呢,Person p = new Person();一個(gè)字符串加上這個(gè)p,你就不知道要怎么把這個(gè)p轉(zhuǎn)換成字符串了,因?yàn)檫@個(gè)p是一個(gè)引用類型。 p = new Person();

public class TestToString {

?

? ? public static void main(String[] args) {

? ? ? ? ?Dog d = new Dog();

? ? ? ? /**

? ? ? ? ? * 如果沒有重寫toString方法,那么輸出來的默認(rèn)的字符串內(nèi)容是“類名+哈希編碼”,

? ? ? ? ?* 如:dog=cn.galc.test.Dog@150bd4d

? ? ? ? ? * 這里的d就是一個(gè)引用類型,打印的時(shí)候,這個(gè)引用類型d會(huì)自動(dòng)調(diào)用toString()方法將自己轉(zhuǎn)換成字符串然后再與字符串”d:=”相連,

? ? ? ? ?* 然后一起被打印出來。d為什么可以自動(dòng)調(diào)用toString()方法呢,Dog類里面也沒有聲明這個(gè)toString()方法。

? ? ? ? ? * 這是因?yàn)閠oString()方法是Object類里面的方法,而所有的類都是從Object類繼承下來的,

? ? ? ? ? * Dog類當(dāng)然也不例外,所以Dog類繼承了Object類里面的toString()方法,

? ? ? ? ? * 所以Dog類的對象當(dāng)然可以直接調(diào)用toString()方法了。

? ? ? ? ? * 但是Dog類對繼承下來的toString()方法很不滿意,

? ? ? ? ? * 因?yàn)槭褂眠@個(gè)繼續(xù)下來toString()方法將引用對象轉(zhuǎn)換成字符串輸出時(shí)輸出的是一連串令人看不懂的哈希編碼。

? ? ? ? ? * 為了使打印出來的信息使得正常人都能看得懂,因此要在Dog類里面把這個(gè)繼承下來的toString()方法重寫,

? ? ? ? ? * 使得調(diào)用這個(gè)toString()方法將引用對象轉(zhuǎn)換成字符串時(shí)打印出來的是一些正常的,能看得懂的信息。

? ? ? ? ? * 在子類重寫從父類繼承下來的方法時(shí),從父類把要重寫的方法的聲明直接copy到子類里面來,

? ? ? ? ? * 這樣在子類里面重寫的時(shí)候就不會(huì)出錯(cuò)了。

? ? ? ? ? */

? ? ? ? ?System.out.println("dog="+d);//打印結(jié)果:dog=I’m a cool Dog

? ? ?}

?}

?

?class Dog{

? ? ?/**

? ? ? * 在這里重寫了Object類里面的toString()方法后,

? ? ? * 引用對象自動(dòng)調(diào)用時(shí)調(diào)用的就是重寫后的toString()方法了,

? ? ? * 此時(shí)打印出來的顯示信息就是我們重寫toString()方法時(shí)要返回的字符串信息了,

? ? ? * 不再是那些看不懂的哈希編碼了。

? ? ? */

? ? ?public String toString() {

? ? ? ? ?return "I’m a Dog";

? ? ?}

?}

任何一個(gè)類都是從Object類繼承下來的,因此在任何一個(gè)類里面都可以重寫這個(gè)toString()方法。toString()方法的作用是當(dāng)一個(gè)引用對象和字符串作連接的時(shí)候,或者是直接打印這個(gè)引用對象的時(shí)侯,這個(gè)引用對象都會(huì)自動(dòng)調(diào)用toString()方法,通過這個(gè)方法返回一個(gè)表示引用對象自己正常信息的字符串,而這個(gè)字符串的內(nèi)容由我們自己去定義,默認(rèn)的字符串內(nèi)容是“類名+哈希編碼”。因此我們可以通過在類里面重寫toString()方法,把默認(rèn)的字符串內(nèi)容改成我們自己想要表達(dá)的正常信息的字符串內(nèi)容。

Java編程-Object中toString方法簡介的評論 (共 條)

分享到微博請遵守國家法律
南和县| 云南省| 瓦房店市| 贺兰县| 乐平市| 古丈县| 新宁县| 阿克陶县| 天全县| 山阴县| 乳山市| 绵竹市| 阿瓦提县| 仪征市| 永昌县| 永济市| 肥东县| 蒲城县| 扎兰屯市| 贵溪市| 平罗县| 澄江县| 大荔县| 黄石市| 开平市| 宣恩县| 无棣县| 寿宁县| 精河县| 景东| 北票市| 唐海县| 叶城县| 砀山县| 双峰县| 遵化市| 墨竹工卡县| 泸水县| 津市市| 汉阴县| 汉寿县|