2007年9月29日

          英文里動詞是一個句子中不可缺少的部分。
          1.完全及物動詞
          動詞加了賓語后意思很完全。
          形態:
          主語+完全及物動語+賓語
          I love her.
          Don't hit me.
          主語+be動詞+現在分語+賓語
          I am pulishing him.
          主語+be動語+過去分語
          He was hit.
          2.完全不及物動詞
          形態:
          主語+完全不及物動詞
          He ran.
          主動+be動詞+現在分詞
          He was running.
          3.不完全不及物動詞 例如:be動語
          主語+不完全不及物動語+補語
          He becomes handsome.
          He got mad/angry/hungry
          He got hurted/killed.
          He face turned pale.
          The leaves are turning yellow.
          4.不完全及物動詞
          I make him wash the car. make/have sb do sth(動詞原型)
          get sb to do sth
          let sb do sth
          I let him sing a song.
          let up雨停了
          I have a house to let.我有房子要出租

          I will force him to do it.
          That story cause me to cry.

          5.受予動詞
          I gave him a car.
          give后跟的是雙賓語,第一個間接賓語(通常是人或對象),第二個直接賓語(通常是事或物)
          tell,lend
          I gave a book to him.
          I teach english to him.
          I bought a book for him.
          I made a chair fom him.

          posted @ 2009-08-30 21:35 在從未放棄的路上 閱讀(186) | 評論 (0)編輯 收藏

          在英文里,動語不能直接做主語,要變為動名詞或者不定式短語。
          例如:
          Working with him is interesting.
          To learn engish with peter is fan.
          動名詞用于做有經驗的事情。
          不定式用于沒有實現的事情,例如計劃,設想等。

          如果不定式短語做為主語過長,可以虛的主語,it來代替,不定式短語放在句尾。
          例如:
          It it my plan to study aboard with very good friend of mine whose call jone.

          中文里可以用句子做主語,而英文里不可以,要將句子變為名詞從句。
          句子前面加一個連詞that,構成名詞從句。
          例如:
          That she loves me is ture.
          That he doesn't agree with me makes me angry.
          It makes me angry that he doesn't agree with me.

          posted @ 2009-08-29 20:37 在從未放棄的路上 閱讀(2883) | 評論 (0)編輯 收藏

          1.Self Encapsulate Field

          為這個field建立getting/setting method,并且只通過這些函數來訪問field.
          例:
          privte int low,high;
          boolean includes(int arg){
              return arg>=low&&arg<=high;
          }
          重構為:
          private int low,high;
          boolean includes(int arg){
              return arg>=getLow()&&arg<=getHigh();
          }
          int getLow(){return low;}
          int getHigh(){return high;}

          2.Replace Data Value with Object
          將一個數據項變成一個對象。
          3.Change Value to Reference
          將這個實值對象變成一個引用對象。
          4.Change Reference to Value
          將一個引用對象變成實值對象。
          例:
          Class Currency{
          private String code;
          public String getCode()}
              return code;
          }
          private Currency(String code){
              this.code=code;
          }
          }
          5.Replace Array with Object
          以對象替換數組,對于數組中的每個元素,以一個值域表示之。
          例:
          String[] row=new String[3];
          row[0]="Liverpool";
          row[1]="15";
          重構為:
          Performance row=new Performance();
          row.setName("Liverpool");
          row.setWins("15");
          6.Duplicate Observed Data
          7.Change Unidirectional Association to Bidirectional
          8.Change Bidirectional Association to Unidirectional

          posted @ 2009-08-18 21:02 在從未放棄的路上 閱讀(231) | 評論 (0)編輯 收藏

          Abstract Factory
          通過工廠類創建某一對象,而不是直接使用new關鍵字。
          public class Computer(){
          }
          public class NoteBookComputer extends Computer(){
          }
          public abstract class ComputerFactory(){
              public abstract Computer createComputer();
          }
          public class NoteBookComputerFactory extends ComputerFactory{
               public Computer createComputer() {
                   return new NoteBookComputer();
              }
          }
          client code:
          ComputerFactory factory=new NoteBookComputerFactory();
          Computer noteBook=factory.createComputer();

          posted @ 2009-08-18 21:01 在從未放棄的路上 閱讀(182) | 評論 (0)編輯 收藏

          1.Singleton(單例模式)
          一個類在系統中只存在一個實例,并提供該實例的全局訪問點。
          樣例代碼,lazy-load:
          public class Singleton {
           private static Singleton instance;
           private Singleton(){
            
           }
           public static synchronized Singleton getInstance(){
            if(instance==null)
             instance=new Singleton();
            return instance;
           }
          }
          or
          public class Singleton(){
              public static final Singleton instance=new Singleton();
              private Singleton(){
              }
          }

           

          posted @ 2009-08-17 22:32 在從未放棄的路上 閱讀(174) | 評論 (0)編輯 收藏

          1.文字常量(literal constant)
               char,int,short,long,float,double,long double,boolean
           for example: 128u,1024L,7LU,3.14f,'a',"aa",true
          轉義序列:一部分不可打印的字符,如換行,制表,單引號,雙引號等。
          (\n,\t,,\v,\b,\r,\f,\a,\\,\?,\',\")
          寬字符文字:字符文字前面加上L,例:L'a'。寬字符常量用來支持某些語言的字符集合如漢語,日語這些語言中的某些字符不能用單個字符來表示。
          2.變量
          C++k中的每個符號變量都與一個特定的數據類型相關聯,這個類型決定了相關內存的大小,布局,能夠存儲在該內存區的值的范圍以及可以應用其上的操作集。

          例如:
                    int student_count;
                    double salary;
                    bool on_loan;
                    string street_address;
                    char delimiter;
          變量和文字常量都有存儲區,并且有相關的類型。區別在于變量是可尋址的。
          每個變量,都有兩個值:
                   1.數據值,存儲于某個內存地址中。被稱為右值,即被讀取的值。文字常量和變量都可被用作右值。
                   2.地址值,存儲數據值的那塊內存的地址。它有時被稱為變量的左值,即位置值。文字常量不能被用作左值。
          在C++中,程序在使用之前必須先知道該對象。可以通過對象聲明來實現,它的作用是使程序知道該對象的類型和名字。由關鍵字extern以及跟在后面的對象類型以及對象的名字構成。聲明不是定義,不會引起內存分配。一個程序只能包含一個對象的一個定義,卻可以包含任意數目的對象聲明。可將聲明放于頭文件中。

          變量名可由數字,字母,下劃線組成。以字母或下劃線開頭,區分大小寫。對長度不限制。不能使用C++的關鍵字。在實際開發中,變量名通常取代表實際含義的英文字母。
          對象的定義
          類型指示符+名字,分號結束。例如:unsigned long distance;
          如果變量是在全局域定義的,系統提供初始值0。如果是局部域的,或是通過new表達式動態分配的,系統不提供初始值0。這樣的對象是未初始化的,它們不是沒有值,而是未定義。
          C++支持兩種形式的初始化。
          一種是使用賦值操作符的顯式語法形式:int ival=1024;
          第二種是隱式形式:int ival(1024);
          每種內置數據類型都支持一種特殊的構造函數語法,可將對象初始化為0。例:int ival=int();
          對象可以用任意復雜的表達式來初始化,包括函數的返回值。
          指針
          指針持有另一個對象的地址,使我們能夠間接地操作這個對象。
          通過在標識符前加一個解引用操作符(*)來定義指針。例:
          int *p1,p2;
          complex<double> *cp;
          當指針持有0值時,表明它沒有指向任何對象,或持有一個同類型的數據對象的地址。
          空(void*)類型指針,它可以被任何數據指針類型的地址值賦值(函數指針不能賦值給它).
          不能操作空類型指針所指向的對象,只能傳送該地址值或將它與其他地址值作比較。
          C++提供了解引用操作符(*)來間接地讀和寫指針所指向的對象。
          int ival=1024;
          int *pi=&ival;
          int **ppi=&pi;ppi是指向int指針pi的指針。
          int *pi2=*ppi;
          要訪問到ival,需要兩次解引用ppi.*ppi
          指針可以讓它的地址值增加或減少一個整數值。稱為指針的算式運算。典型用法是遍歷一個數組。
          字符串類型
          C風格字符串

          posted @ 2007-09-29 01:38 在從未放棄的路上 閱讀(381) | 評論 (0)編輯 收藏


          posts - 9, comments - 0, trackbacks - 0, articles - 3

          Copyright © 在從未放棄的路上

          主站蜘蛛池模板: 延寿县| 息烽县| 婺源县| 南漳县| 慈溪市| 阿合奇县| 炉霍县| 正蓝旗| 汶上县| 称多县| 金门县| 玉山县| 逊克县| 巫山县| 剑河县| 偃师市| 广水市| 武陟县| 青田县| 天峻县| 贵港市| 合肥市| 翼城县| 阳东县| 垦利县| 泾川县| 鄄城县| 莫力| 电白县| 敖汉旗| 宁南县| 木里| 福清市| 恩施市| 琼海市| 柞水县| 南宫市| 五大连池市| 合阳县| 扎囊县| 开江县|