[Java] 4.4. 回傳值

回傳值,讓你取得方法執行後的結果。

 

image/svg+xml4.4. 回傳值 - Return Value 我需要讓⼈員寫下個⼈的⾃傳 class Person { String id; String name; int age; String writeMemoir () { String context = " 我的⾝份證字號是 " + id + " " + " 姓名是 " + name + " " + " 年齡是 " + age + " " ; return context ; } } class Main{ public static void main( String [] args){ Person p = new Person (); p.id = "k123456789" ; p.name = "Jack" ; p.age = 20 ; String c = p . writeMemoir (); System.out.println(c); p . writeMemoir (); } } class Memoir { String context ; } class Person { String id; String name; int age; Memoir writeMemoir () { Memoir m = new Memoir (); m . context = " 我的⾝份證字號是 " + id + " " + " 姓名是 " + name + " " + " 年齡是 " + age + " " ; return m ; } } class Main{ public static void main( String [] args){ Person p = new Person (); p.id = "k123456789" ; p.name = "Jack" ; p.age = 20 ; Memoir m = p . writeMemoir (); System.out.println( m . context ); } } 執⾏結果 我的⾝份證字號是 k123456789 ,姓名是 Jack ,年齡是 20 class Memoir { String context ; } class Person { String id; String name; int age; Memoir writeMemoir ( boolean brief ) { if ( brief == true ){ Memoir m1 = new Memoir (); m1.context = " 我的姓名是 " + name + " " ; return m1 ; } Memoir m2 = new Memoir (); m2.context = " 我的⾝份證字號是 " + id + " " + " 姓名是 " + name + " " + " 年齡是 " + age + " " ; return m2 ; } } class Memoir { String context ; } class Person { String id; String name; int age; Memoir writeMemoir () { Memoir m = new Memoir(); m.context = " 我的⾝份證字號是 " + id + " " + " 姓名是 " + name + " " + " 年齡是 " + age + " " ; //return m; } } 編譯時發⽣錯誤 ./Person.java:15: error: missing return statement } ^ 1 error 1. 這是⼈員類別( Person )。 J4_4_1 – Person.java 寫下⼀份⾃傳,但,怎麼取得這份⾃傳? 3. ⽅法前⽅的型別是 String ,代表著這個 ⽅法最後必須要回傳 String 型別的資料。 2. writeMemoir 就是⼈員撰寫⾃傳的⽅法名稱。 6. 注意,回傳資料所對應的型 別,必須與⽅法前⽅所規定的回傳 型別⼀致,否則會發⽣編譯錯誤。 4. 先將回傳的⾃傳內容透過加號( + )組合,並存 放在⼀個叫 context String 型別的變數中。 5. return 是⼀個關鍵字,代表著等會要將 return 後⽅的資料 傳出這個⽅法之外,⽽接在 return 關鍵字後⽅的即是 context 變數,這表⽰ context 變數中的字串將會回傳⾄⽅法外。 J4_4_1 – Main.java 1. 建立⼈員物件( Person )。 2. 使⽤撰寫⾃傳⽅法( writeMemoir() ),最後將取得⼀個字串;取得字串的同 時便可使⽤變數的⼿法,將這串⽂字變數(在此⽤ c 為這個變數的名稱)中保存。 3. 雖然 撰寫⾃傳( writeMemoir() ⽅法會回傳⼀個字串, 但也可以忽略這個回傳的字串,並非⼀定需要使⽤變數進⾏保存。 J4_4_2 – Memoir.java 1. ⽤類別定義⼀個叫做⾃傳( Memoir )的東⻄。 2. ⾃傳中簡單包含⼀個內容屬性( context ),以存放這份⾃傳中的內容。 J4_4_2 – Person.java J4_4_2 – Main.java 3. 這是⼈員類別( Person )。 4. 其中的撰寫⾃傳⽅法( writeMemoir ),以變更回傳值型別為⾃傳類別。 5. 建立⼀個⾃傳( Memoir )物件以表 ⽰⼀份⾃傳,同時將其存放在 m 變數中。 7. 最後透過 return 關鍵字回傳⾃傳物件。注意,回傳的型別 為⾃傳- Memoir 時,就必須回傳⾃傳- Memoir 的物件。 6. 將回傳的⾃傳內容放在⾃傳物件的內容屬性中。 8. 建立⼀個⼈員物件( Person )。 9. 使⽤撰寫⾃傳⽅法( writeMemoir() ),以取得⼀個 ⾃傳物件( Memoir ),並在取得後放⼈ m 變數當中。 10. 在從內容屬性( context )中取得這份⾃傳的⽂字內容,若有需要,您可對⾃傳類 別在作屬性的擴充,如此就可更完善您的⾃傳物件,如在⾃傳中加入⽇期、⾴數等屬性。 J4_4_3 – Memoir.java 1. 這是⾃傳類別( Memoir )。 2. 這是⼈員類別( Person )。 3. 參數與回傳值可共同存在於⽅法中。在此加上簡介參數( brief )與⾃傳回傳值型別。 J4_4_3 – Person.java 4. brief true 的話,將會回傳將在 m1 變數中的簡短⾃傳。回傳的同時,程式 將不會往下在執⾏,並跳出此⽅法。 6. ⼜因為 return 具有中斷程式的特性, 因此兩個 return 只有⼀個會被執⾏。 5. 這段程式要執⾏的可以,就是當 brief false 的時候;這 樣就不會遇到上述的 ”return m1” 程式,程式也不會提前跳 離。因此若沒回傳 m1 中的⾃傳物件,最後還是要使⽤ return 傳⼀個⾃傳物件(在此回傳的是 m2 變數中的物件)。 J4_4_4 – Memoir.java J4_4_4 – Person.java 1. 這是⾃傳類別( Memoir )。 2. 這是⼈員類別( Person )。 3. 撰寫⾃傳⽅法( writeMemoir ),以指定了它的會傳回⼀個⾃傳物件。 4. 若在撰寫⾃傳⽅法中卻沒有使⽤ return 傳回⾃傳物件。 編譯器會告訴您,您少使⽤ return 關鍵字將物件傳回。 1 步,回傳值,回傳⾃傳的內容 2 步,接收撰寫⽅法回傳的⾃傳內容 ⾃訂的⾃傳類別,完善撰寫⾃傳的⾏為 參數與回傳值之間的合作 注意,⽅法加上回傳型別後, 務必使⽤ return 將物件回傳 1 1 1 1

留言