第51節 - Java: toString() Method
這一節我會介紹Java的toString() Method。
為甚麼要學Java的toString() Method?
因為我會在下一節開始介紹Java的Blackjack紙牌遊戲(文字版),而這文字版就會用到Java的toString()方法,toString()方法可以把Blackjack紙牌遊戲結果輸出到您的電腦屏幕上(console, Android Studio IDE),我會在這節詳細介紹toString()方法的用法。
注意: 當我們掌握了Java Blackjack(文字版)的程式設計技考後,我會在下幾節介紹如何把Java的Blackjack紙牌遊戲(文字版)改寫為最後的LibGDX的Blackjack紙牌遊戲(2D動畫版)。
Java - Object Class
首先介紹Java的Object Class,它是所有Java類別的父類別,Java會自動設定所有類別的父類別為java.lang.Object類別。
- Java的Object類別儲存在java.lang.Object內。
- Object類別內有個toString()方法。
注意: 所有類別的父類別都是Object類別,所以每一個類別都有繼承Object父類別的toString()方法。
例子1 - toString()的用法1
例子1十分簡單,用System.out.printIn()方法輸出字串"i1"。
- 建立一個Interger data type的i1,設定數值為100 。
- 用System.out.printIn()方法輸出字串"i1"。
- 輸出字串"i1",不是100。
例子2 - toString()的用法2
例子2用System.out.printIn()方法輸出i1的字串值"100"。
- 建立一個Interger data type的i1,設定數值為100 。
- 用System.out.printIn()方法輸出i1的字串值。
- 注意,System.out.printIn(i1)其實是預設用了System.out.printIn(i1.toString())。
- 以上兩個方法都是輸出i1的字串值"100"。
例子3 - toString()的用法3
例子3用System.out.printIn()方法輸出s1的字串值"100"。
- 建立一個Interger data type的i1,設定數值為100 。
再用i1的toString()方法把100轉為String(字串)100。 - 用System.out.printIn()方法輸出s1的字串值。
- 輸出s1的字串值"100"。
例子4 - toString()的用法4
例子4用System.out.printIn()方法輸出s1的字串值"100"。
- 直接把數值100用Integer.toString()方法轉為字串,並存入字串s1內。
再用i1的toString()方法把100轉為String(字串)100。 - 用System.out.printIn()方法輸出s1的字串值。
- 輸出s1的字串值"100"。
例子5 - toString()的用法5
例子5會建立一個新的"Card1"類別,亦嘗試把Card1類別的物件(card1)的value值輸出。
- 建立一個新的"Card1"類別,並建立一個Card1 Constructor(建構子)。
- 建立一個新的Card1類別物件(card1),並設定初始值King。
- 輸出Card1類別物件(card1)的值。
- 注意,System.out.printIn(card1)其實是預設用了System.out.printIn(card1.toString())。
- 但是輸出的結果不是card1.value的值,而是看不懂的字串(xxx.Card1@xxx)。
例子6 - toString()的用法6
例子6會改善例子5不能輸出card1.value值的問題。
- 建立一個新的"Card1"類別,並建立一個Constructor(建構子)。
- 這次用地@Override,覆寫toString()方法,把card1.value的值存入字串str內。
- 建立一個新的Card1類別物件(card1),並設定初始值King。
- 輸出Card1類別物件(card1)的值。
- 注意,System.out.printIn(card1)其實是預設用了System.out.printIn(card1.toString())。
- 這次就可以正常輸出card1.value的值King。