Re: [問題] 請問trace code的技巧
※ 引述《topwing (Levin)》之銘言:
: 各位好
: 目前在trace一支java程式
: 因為沒有java的基礎,所以只好邊看邊學邊爬文
請循其本,先找本書把基礎知識還有名詞定義弄好
你這樣子的問題跟問法,爬文是爬不出困境的
我拿著一個 C 的程式問你:
「++i 我知道,但是這個 **i 為什麼出來的值不是我想要的」
你難道不會很無力嗎?
: 但是trace程式流程的過程中遇到一個問題
: 就是在程式中有些成員可能會用到某父類別的方法
: 可是不知道是哪個成員去使用該父類別的方法
: 所以想說是否有function可以放在該父類別的方法裡面
: 當有成員使用該父類別的方法又會自動印出是哪個成員使用的
: 以上是第一個問題
何謂「成員」?
中文沒有翻譯委員會之類的東西來統一名稱
所以姑且用這兩個 reference
* http://openhome.cc/Gossip/JavaGossip-V1/ClassABC.htm
* http://msdn.microsoft.com/zh-tw/library/cs1dtab3(v=vs.90).aspx
所以,大抵上中文翻譯 OO 中的 member 似乎已經習慣用「成員」這個詞
引用第一個 ref 的寫法
在類別中的運算參與資料(Field)及互動方法(Method),
我們統稱其為 類別成員(Class member)。
在這個定義下,你的問題會呈現一種無法理解的困境
如果你要問的是
public class Parent {
public void foo() {
System.out.println("who is your daddy?");
}
}
public class Child1 extends Parent {
public void wtf() {
super.foo();
}
}
public class Child2 extends Parent {
public void orz() {
super.foo();
}
}
在 new Child1().wtf(); new Child2().orz(); 之類的時候
可以印出 Child1 跟 Child2
那麼只要把 Parent.foo() 中改印
System.out.println(this.getClass().getName());
: 第二個問題是想請問一下在C中稱function在java中是指"方法"嗎??
: 因為爬文的教學網站都是稱方法或Method,還是說function跟方法是不同的觀念?
你要說一樣,可以說一樣
你要說不一樣,那他們之間差的可大了
http://pt2club.blogspot.tw/search/label/OOP
: 最後一個問題是想問在trace code的流程是否有常用或特殊的技巧或是特別的軟體?
基本認知是要用 IDE
幫你列 class hierarchy、跳 method declaration 等等都很有用
這部份剛好(可能)是 Java 樂勝其他語言的部份
有些人 trace code 是 debugger 派的
Eclipse 等級的 IDE 都有這功能
單步執行、暫停看變數等等功能都有
不過 debugger 的大前提是你的程式有辦法實際 run
曾經接一個 code review 的 case
時程才開兩個月,我估計建完執行環境就要花掉一個禮拜
而且說不定我的電腦還跑不動....... Zzzz
最重要的特殊技巧就是打好 Java 底子跟燃燒肝臟
(謎之聲:你也好意思說「打好 Java 底子」)
: 因為在沒有基礎的情況下看得蠻吃力的,尤其是日以繼夜的燃燒身體真的撐不住...
: 先感謝各位了
Let me know when your entire life goes up in smoke:
then it's time for a promotion.
-- The Devil Wears Prada
====
我日以繼夜地上 ptt 發廢文呢 [得意狀]
--
錢鍾書: 說出來的話
http://www.psmonkey.org
比不上不說出來的話
Java 版 cookcomic 版
只影射著說不出來的話
and more......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.115.236.161
推
03/14 12:26, , 1F
03/14 12:26, 1F
→
03/14 13:25, , 2F
03/14 13:25, 2F
java 近期熱門文章
PTT數位生活區 即時熱門文章