[問題] 新手入門 關於宣告與定義
最近開始想學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
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
02/23 21:45, 9F
java 近期熱門文章
PTT數位生活區 即時熱門文章