搜尋此網誌

顯示具有 Foundation Knowledge Of Programming 標籤的文章。 顯示所有文章
顯示具有 Foundation Knowledge Of Programming 標籤的文章。 顯示所有文章

2013年4月25日 星期四

用介面寫程式

用介面寫程式的好處 , 是你可以抽換運算或資料處理方式的演算法 , 而不必大幅更動程式碼

如下例 , 只要重新new 一個AnotherCustomMathAdd物件 , 把CustomMathAdd物件換掉 , 就會

得到新的結果.


 package convention;  
 public class CodingByInterface {  
      public static void main(String[] args){  
           CustomMathAdd cma = new CustomMathAdd();  
           add(cma , 1, 2);  
      }  
      public static void add(MathAdd ma , int a , int b){  
           System.out.println(ma.basicAdd(a, b));  
      }  
 }  
 interface MathAdd{  
      public int basicAdd(int a , int b);  
      public int advanceAdd(int a , int b);  
 }  
 class CustomMathAdd implements MathAdd {  
      public int basicAdd(int a, int b) {  
           return a + b;  
      }  
      public int advanceAdd(int a, int b) {  
           return a*2 + b;  
      }  
 }  
 class AnotherCustomMathAdd implements MathAdd {  
      public int basicAdd(int a, int b) {  
           return 0;  
      }  
      public int advanceAdd(int a, int b) {  
           return 1;  
      }  
 }  

2011年8月10日 星期三

學習程式設計

沒學過程式設計的新手,我建議要從Java開始學起,因為如果一

開始就學c or c++的話,會被指標和動態記憶體配置嚇到,然後

產生了程式設計好難學的想法,因為指標和動態記憶體配置這

兩個比較抽象偏難的主題,指標在Java已不存在(除非要使用

JNI,這又是另一個話題了),動態記憶體方面,JVM已經幫你做

好了,你只要專注在邏輯實現即可.另一方面,寫程式難免要用

到資料結構,這又是另一個會讓初學程式設計的人會產生恐懼

的主題,而Java已經幫你實現了許多常用到的資料結構,諸如

List , Set, Map.Queue ....等. 在實際應用方面,在104以Java為

關鍵字去尋找工作項目,有很多選擇.這會讓人有動力,不會覺

得學了程式語言,我以後能幹嘛的困惑.另一個實用面在

Android上面,因為現在Android的使用者介面是用Java寫的,

如果專注在這個領域,也很有發展潛力.以上是個人接觸程

式語言到目前為止的心得分享

2010年7月14日 星期三

程式設計概念

帶入參數的語法:
in C#
int number1,number2;
Console.WriteLine("The numbers entered are {0} and {1}", number1, number2 );

in C
int i;
printf("%d", i);

Loop迴圈


for loop:

int n=10;
for(int i=0;i<n;i++){
System.out.println(i);
}


while loop:

int n=10;
int i=0;
while(i<n){
System.out.println(i);
i++;
}


do while loop:

int n=10;
int i=0;
do{
System.out.println(i);
i++;
}while(i<n);

指定Java字元值


標籤

日文歌曲 (4) 股市 (7) 股票 (9) 英文歌詞 (1) 時事 (1) 硬體(hardware) (1) 資料結構 (4) 演算法 (21) 數學(Math) (4) ACM (3) ajax (7) algorithms (1) Android (27) Blog Notes(部落格記事) (6) C (9) c++ (19) CodingHomeWork (1) Database (1) Design Pattern (4) Foundation Knowledge Of Programming (3) GWT (1) How (2) J2EE (1) Java (96) Java語言 (4) JavaScript (7) Leetcode (4) LOL (1) OpenMp (6) QUT (2) Uva (2) Yahoo知識問答 (11)