[問題] 新手入門 關於宣告與定義

看板java作者 ((0_ 0))時間10年前 (2015/02/23 13:28), 10年前編輯推噓0(009)
留言9則, 3人參與, 最新討論串1/1
最近開始想學Java 先是看thenewboston的入門影片 他的影片都滿簡單的,可是怕有模糊的地方 就找了中文的資源<程式語言教學誌>來看,其中有一個例題是這樣 class test { int fu(int s) { if (s == 0 || s == 1) { return 1; } else { return fu(s - 1) + fu(s - 2); } } public static void main(String[] args) { test v = new test(); int s = 5; while (s > 0) { System.out.println(v.fu(s)); s--; } } } 這題執行出來的結果,讓我完全抓不到頭緒 先說一下我對這段的理解 int s = 5 , 作迴圈直到s不大於0 當s等於0或s等於1時回傳1,反之則回傳fu(s - 1) + fu(s - 2) 然後印出v.fu(s)的數值並斷行,s每次執行後遞減 其中對else的話,return的fu()中的s值為什麼不是5開始 將5代入fu()然後回傳數值,再來4..3..2..1,是哪一段有理解錯誤? 再來是繼承的疑問,因為不是相關科系的 而且算剛入們程式語言所以對這些繼承的方式感覺很疑惑 對程式語言基礎很薄弱,本來的認知是 爸爸的車(父) 顏色:藍色的,款式:五門,種類:跑車,輪胎:四顆米其林輪胎 駕駛習慣:爸爸最高只用4檔行駛 兒子的車(子)繼承(父) 輪胎是四顆普利司通輪胎,兒子會用到6檔 只要將輪胎和開車習慣重新定義就好 沒想到現在看到的例題大部分是這樣 兒子的車(子)繼承(父) 顏色:藍色的,款式:五門,種類:跑車,輪胎:四顆普利斯通輪胎 駕駛習慣:兒子最高會用到6檔行駛 這樣不就跟再重新打一遍一樣? 那使用或不使用繼承看起來差別沒有很大 因為通常都還是要指定兒子的車(子)才會執行(子) 還是對繼承觀念上的錯誤實在很大? 歡迎各位指教,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.118.188.217 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1424669317.A.CFF.html

02/23 13:36, , 1F
1.你知道recursive嗎? 2.物件化 請參考軟體工程
02/23 13:36, 1F
第一個問題懂了XD,因為一直把fu(s-1)和fu(s-2)的數值直接相加

02/23 14:13, , 2F
你應該先定義"車"
02/23 14:13, 2F

02/23 14:14, , 3F
然後四輪車 兩輪車 六輪車(?) 幾門? 顏色?
02/23 14:14, 3F

02/23 14:14, , 4F
有些會有屬性 有些會用繼承 看情形自己設計
02/23 14:14, 4F
好像懂了 所以必須先定義(車)然後繼承給(父)、(子) (車) 顏色 1=藍色,2=紅色,3=白色 款式 a=五門,b=四門,c=雙門 種類 q=跑車,w=轎車,e=休旅車...等 再來建構車子 顏色=1,款式=a,種類=q...等 這樣繼承給(父)或(子)時 就不用再告訴它,1=藍色、2=紅色...等定義 是這個意思嗎? ※ 編輯: hugh509 (122.118.188.217), 02/23/2015 14:38:40

02/23 19:17, , 5F
繼承可以使得子類別具有父類別的各種屬性和方法,而不需要
02/23 19:17, 5F

02/23 19:18, , 6F
再次編寫相同的代碼
02/23 19:18, 6F

02/23 19:18, , 7F
所以你說跟重新打一遍一樣 是的 但是就是不需要重新打一遍
02/23 19:18, 7F

02/23 21:45, , 8F
車是比如"摩托車" "跑車" "計程車"繼承"車"
02/23 21:45, 8F

02/23 21:45, , 9F
誰的車誰的車通常是創造不同的object就好了
02/23 21:45, 9F
文章代碼(AID): #1Kwhg5p_ (java)
文章代碼(AID): #1Kwhg5p_ (java)