發表文章

differences between app server & web server

剛好看到, 這篇講得滿好的 http://www.javaworld.com/article/2077354/learn-java/app-server-web-server-what-s-the-difference.html

更多了解superclass和subclass的互動

第一個可多了解的是: 當subclass需要用到superclass的method, 並想再對這method額外加上自己的行為 時(也就是說subclass不想完全override掉superclass的method)? --> ans. 可使用super這個關鍵字       e.g.       public void walk() {           super.walk();                         --> 先執行super版的walk()           // subclass's own walk stuff   --> 再回來執行sub版自訂的行為/功能       } 第二個可多了解的是superclass的"存取權限(access level)": --> 共有4種權限(權限最受限制到最不受限制為由左到右排):       PRIVATE -> DEFAULT -> PROTECTED -> PUBLIC --> 這些存取權限控制誰可以接觸什麼, 目前先討論public & private:       public的member會被繼承       private的member不會被繼承

設計繼承步驟 & IS-A test

如何設計繼承的步驟分為5個: step 1: 找出具有共通屬性&行為的物件 step 2: 設計代表共通狀態&行為的class step 3: 決定subclass是否需要有特殊設計的method(也就是讓某行為具有特定不同的表現方式) step 4: 透過尋找使用共通行為的subclass來找到更多抽象化的機會 step 5: 最後完成class的繼承階層 IS-A test: 此測試是適用繼承階層的任一地方, 也就是說, 如果繼承階層樹被設計地很好, --> 則所有的subclass皆應通過任一個上層superclass的IS-A test。 e.g. (繼承順序由上到下) class Animal:     makeNoise()     eat()     sleep()     roam() -->     class Canine:         roam()     -->         class Wolf:             makeNoise()             eat() 寫好繼承階層樹後, 開始做IS-A test: 1. Canine extends Animal    --> 通過 2. Wolf extends Canine    --> 通過 3. Wolf extends Animal    --> 通過 4. Canine IS-A Animal    --> 通過 5. Wolf IS-A Canine    --> 通過 6. Wolf IS-A Animal    --> 通過 可以這麼說: --> Wolf是一個Canin...

繼承簡介

當我們說"a class繼承自b class" --> 以Java方式說: subclass extends the superclass --> 意為subclass繼承了superclass的成員(member) 那什麼是"member"? --> 一個class的member包含:        1. instance variable       2. method subclass可以: 1. 新增自有method 2. 覆蓋(override)過superclass所提供的method, 以改善或延伸superclass原本method內容 最後, 為何instance variable不能被override掉? --> 因instance variable沒有被定義特殊的行為,所以並不需要這麼做。 如果今天subclass需要某instance variable是別的內容, 可以直接在subclass中將該instance variable賦予自己想要的值就好。 e.g.      superclass中, int size = 2;     subclass中, 直接寫int size = 3;  

指定自己使用到的class完整名

class完整名稱: e.g. java.util . ArrayList  (黃底: package名稱; 藍底:class名稱) 有兩種方法能指定class, 第一種是我想要的那種: import java.util.ArrayList; 第二種是隨時用到該class時便要打出全名, e.g. java.util.ArrayList<Egg> list = new java.util.ArrayList <Egg>(); --> 標橘底是全名 p.s. 只有來自於java.lang這個package不用指定全名。  -->  因為java.lang經常被使用到,所以是個會被預先引用的package

mapping between Java & SQL data type (in JDBC)

有兩個參考連結: http://www.service-architecture.com/articles/database/mapping_sql_and_java_data_types.html https://www.ibm.com/support/knowledgecenter/zh-tw/SSGU8G_11.70.0/com.ibm.jccids.doc/src/tpc/imjcc_rjvjdata.htm

如何在mac版的Eclipse workspace中找到.metadata?

圖片
如果有寫過JSP, 會知道它會編譯成.java和.class檔, 而要看到它們要到.metadata裡找, 但是mac不像Windows會顯示出.metadata檔案夾, 而是需要去終端機(terminal)下指令才能顯示: 下面截圖是我在終端機下完指令後出現的樣子: 以下是顯示步驟: 1. 打開terminal 2. 輸入: /Applications/Utilities 3. 接著     有分版本: (參考連結: http://osxdaily.com/2009/02/25/show-hidden-files-in-os-x/ )  擷取連結重點如下 -->     Enter the proper command exactly as shown below, choosing for your version of MacOS or Mac OS X: a.) For showing hidden files and folders in OS X El Capitan 10.11, Yosemite 10.10, and OS X Mavericks 10.9, use the following command string to show hidden files: defaults write com.apple.finder AppleShowAllFiles TRUE;killall Finder b.) For showing hidden files in Mac OS X 10.8 Mountain Lion, OS X 10.7 Lion, Mac OS X 10.6 Snow Leopard, and before, use this defaults command string instead: defaults write com.apple.Finder AppleShowAllFiles TRUE;killall Finder 再輸入(因為我的mac符合a條件):  defaults write com.apple.finder AppleShowAllFiles TRUE;killall Finder ...