① java中重寫toString()的問題
作用:每個自定義類都 繼承自Object類。Object類的toString 方法是獲取對象在內存中的值。如果你的自定義類不需要這個信息,而是想要 如上面例子所要求的 列印各個對象的熟悉,這是就可以重寫這個toString()方法實現自己要的格式。重寫 是會默認調用子類的方法;toString()的對象是這個定義toString的這個對象;
new Instance()是新建一個Instance()對象。
② 如何在JAVA中重寫toString()方法
string是一個對象,但也可以用基本類型創建的方式來創建,例如:
String s="abababababa";// 基本類型創建的方式
String s= new String("asdsad");//對象
java里,所有的類,不管是java庫裡面的類,或者是你自己創建的類,全部是從object這個類繼承的。object里有一個方法就是toString(),那麼其實所有的類創造的時候,都有一個toString的方法。java輸出用的函數print();是不接受對象直接輸出的,只接受字元串或者數字之類的輸出。例如:
class Acccc
{}
Acccc s1 = new Acccc();
System.out.print(s1);
按照print接受的類型來說,s1是不能直接輸出的,那麼是否代表這個是不能編譯運行的呢?當然不是。因為當print檢測到輸出的是一個對象而不是字元或者數字時,那麼它會去調用這個對象類裡面的toString 方法。
即使你沒有創建,因為是所有的類都是集成object類,所以自然也繼承了這個方法。所以默認情況下,你輸出一個對象,會調用這個對象繼承的toString方法,而object里的這個方法,默認的功能是返回這個對象的名稱。
class A
{
String toString()
return 「cao」;
}
class B
{
public static void main(String [] args)
{
A x1 = new A();
System.out.println(x1);//輸出就是"cao"……
}
}
③ java中的toString什麼意思toString有什麼用
toString() ,中文理解字元串。
toString()是Object的方法,因為所有類都默認繼承了Object類,所以也都具有toString()方法,但是並不是通常想要的功能。
舉個例子:
你定義了一個類Person如下:
public class Persion {
String name;
int age;
String gender;
}
那現在,需要直接獲取到這個Persion對象的數據,可以這樣對重寫這個toString()方法,如下:
public class Persion {
String name = "AAA";
int age = 22;
String gender = "女";
@Override
public String toString() {
return "[name=" + name + ", age=" + age + ", gender=" + gender + "]";
}
}
調用方法:
Persion p = new Persion();
System.out.println(p); // 隱式調用toString(0)方法
System.out.println(p.toString()); // 顯式調用toString(0)方法
(3)java重寫tostring擴展閱讀:
字元串在存儲上類似字元數組,它每一位單個元素都是能提取的,字元串的零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入數組。
通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。
④ java怎麼重寫arraylist的tostring方法
在ArrayList容器類中使用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
3.一個實現toString()的通用的Bean
在作一個項目時發現,許多bean需要實現toString()方法,就實現一個通用的bean,然後通過其他繼承即可。
import java.lang.reflect.Field;
public class BaseBean {
public String toString() {
StringBuffer sb = new StringBuffer();
try {
Class t = this.getClass();
Field[] fields = t.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
field.setAccessible(true);
sb.append("{");
sb.append(field.getName());
sb.append(":");
if (field.getType() == Integer.class) {
sb.append(field.getInt(this));
} else if (field.getType() == Long.class) {
sb.append(field.getLong(this));
} else if (field.getType() == Boolean.class) {
sb.append(field.getBoolean(this));
} else if (field.getType() == char.class) {
sb.append(field.getChar(this));
} else if (field.getType() == Double.class) {
sb.append(field.getDouble(this));
} else if (field.getType() == Float.class) {
sb.append(field.getFloat(this));
} else
sb.append(field.get(this));
sb.append("}");
}
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString();
}
}
測試類
public class TestBean extends BaseBean {
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public static void main(String[] args) {
TestBean testBean = new TestBean();
testBean.setId(9);
System.out.println(testBean.toString());
}
}
結果
{id:9}
⑤ Java 在什麼情況下要重寫toString
兩個都重寫toString了吧。你查查JDK的API就知道了。
首先說一下,什麼情況下要重寫toString,object類里的toString只是把字元串的直接列印,數字的要轉化成字元再列印,而對象,則直接列印該對象的hash碼。所以當你要想按照你想要的格式去字元串一些對象的時候,就需要重寫toString了。比如一個Student對象,直接toString肯定是一個hash碼。然而你想得到的比如是:name:***,age:***。這時就重寫toString就是在toString里寫:System.out.println(「name:」+student.getName);
System.out.println(「age:」+student.getAge)。
這樣再toString就直接反回你想要的格式。
通過查api我們就可以知道HashSet的toString是把s的值格式化成[*, * ,*],就是給s的加個中括弧,而且用逗號分開。
而HashMap的toString是把m的值格式化成{key1=value1,key2=value2,key3=value3}
所以你列印出來的是那樣的格式,這就是重寫toString的作用,具體請看api吧。
希望你能理解。謝謝,有不懂的再問。
⑥ 關於Java中toString方法
1、JAVA 中 toString 方法是經常被重寫的方法之一(此處注意重寫與重載的區別,重寫即子類重新實現父類方法)。
2、你描述的這個方法其實挺清楚的,即這個類的 toString 方法,返回的是這個類的data屬性的 toString 方法的值。這也是很常見的一種形式。即某些類的 toString 方法返回的其實是類中某個屬性的值。
3、這部分其實是J2SE非常基礎的知識點,你多看看就明白了。
4、希望對你有幫助。
⑦ java中,tostring如何重寫,顯示數據,請補充
1.在eclipse中按住快捷鍵alt+shif+s
2.選擇GeneratetoString();自動生成
publicStringtoString(){
return"poke[Number="+Number+",Huase="+Huase+",PaiID="
+PaiID+"]";
}