Re: [問題] 請問trace code的技巧

看板java作者 (痞子軍團團長)時間11年前 (2014/03/14 12:14), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
※ 引述《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
文章代碼(AID): #1J8e91-z (java)
文章代碼(AID): #1J8e91-z (java)