<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    www.baidu.com

    JavaCode--我愛你,芳兒

    JavaStudy--我愛你,芳兒

    Java初學者容易混淆的幾個問題詳細解析 --轉

    1.String類和StringBuffer類


    它們都是處理字符串的類,但是它們有一個最大的區別,那就是,String對象是存儲你不能改動的文本字符串,相反,如果你希望改動,則應使用StringBuffer類作為替換.


    eg1:

       ......

       //omit some code

       String s1="You are hired!";

       System.out.println(s1.replace(h,f));//用f把字串中的h替換了

       System.out.println(s1);

       ......

       //omit some code

       運行結果:

       You are fired!

       You are hired!
       結果分析:

       從結果,明顯可知,s1的值并沒有被改變,而第一行結果只是屏幕內容的替換.

       eg2:

       ......

       //omit some code

       StringBuffer s2=new StringBuffer("Hello from Java!");

       s2.replace(6,10,"to");

       System.out.println(s2);

       ......

       //omit some code


      

    運行結果:

    Hello to Java!

    結果分析:

    顯然,s2的值已改變.


    2.位邏輯與條件邏輯


    首先聲明, 為了與位邏輯更好區分開來,我把通常所說的邏輯取了個別名叫做條件邏輯.


    它們都有各自的操作符,位邏輯操作符有:&(與運算),^(異或運算),|(或運算);條件邏輯操作符有:&&(并且),||(或者).

    位邏輯運算通常是針對兩個數而言,實行位操作;而條件邏輯運算是針對兩個條件表達式而言,實行條件操作.其實,位邏輯操作符一樣可以實現條件操作,但是此時有一個重要的區別:用位操作符時,不管操作符兩邊的

    條件表達式成不成立,它都要通通進行運算判斷,而條件邏輯操作符不一樣了,如果通過左側的操作數就可以進行它們需要的判斷,那么它就不會再計算右側的操作數了,這種情況叫短路.廢話少說!且看下例.


    eg1:

       ......

       //omit some code

       double value=0;

       if(value!=0 && 1/value<1000){

       System.out.println("The value is not too small.");

       }

       else{

       System.out.println("The value is too small.");

       }

       ......

       //omit some code


      

    運行結果:

    The value is too small.

    結果分析:

    照理說應會出現除數為0的錯誤,但是我剛才說了,由于條件邏輯操作符是短路操作符,顯然,value!=0不成立,立即就可作出判斷應執行else后的語句,所以它就不再會運算判斷1/value<1000了.如果不懂請再看一例:


    eg2:

       ......

       //omit some code

       double int1=0,int2=1,int3=1;

       if(int1!=0 & (int2=2)==1){}

       System.out.println("int2="+int2);

       if(int1!=0 && (int3=2)==1){}

       System.out.println("int3="+int3);

       ......

       //omit some code


    運行結果:

    int2=2.0

    int3=1.0

    結果分析:

    我想不用我分析了,你應該懂了吧.




    3.實例變量與類變量

    可以通過兩種方法在類中存儲數據───作為實例變量和類變量.實例變量是特定于對象的,如果你有兩個對象(即一個類的兩個實例),每一個對象中的實例變量獨立于另一個對象中的實例變量的;另一方面,兩個對象的類變量均指向相同的數據,并因此面保存相同的值,換句話說,類變量被類中的所有對象共享.差點忘了,它們在形式上的區別,類變量在聲明時比實例變量多一個static.


    eg:

       class data

       public int intdata=0;//顯然,intdata在這兒是實例變量

       }

       public class exam

       {

       public static void main(String[] args)

       {

       data a,b;

       a=new data();

       b=new data();

       a.intdata=1;

       System.out.println("b.indata="+b.intdata);

       }

       }


    運行結果:

    b.intdata=0

    結果分析:

    可以看出,a.intdata的值雖然變了,但并沒有影響b.intdata.但是如果在data類中聲明intdata時,在其前面加上static就變成類變量了(即:public static int intdata=0;),則此時運行結果會變為:

    b.intdata=1

    這次a.intdata值的改變可把b.intdata影響了,事實上,對象a和b的類變量均指向相同的數據,所有值一樣,這就是類變量的作用.


    4.實例方法,類方法,構造器方法


    我們通常所說的方法系指實例方法,就像c語言中的函數一樣,其具體方法我就不用說了,在這里我主要是用它來區分類方法和構造器方法.類方法與實例方法最大的區別是:在形式上類方法多一個static,在用法上,不必創建對象就可直接調用類方法(而實例方法卻一定要先創建對象,再通過對象調用).


    eg:

       class add

       {

       static int addem(int op1,int op2)

       {
       return op1+op2;

       }

       }

       public class xxf

       {

       public static void main(String[] args)

       {

       System.out.println("addem(2,2)="+add.addem(2,2));

       } //直接用類名作為對象調用類方法

       }


      

    注: 也可按通常的方法,即先創建對象,再調用方法,不過,這時static就無任何意義了.


    再說說構造器方法,它是用來初始化對象中的數據的一種方法,創建很容易,只需在類中加上一個與這個類同名的方法,不需要在前面加任何訪問說明符或者返回類型,另外,構造器也一樣可以向方法一樣傳遞參數.


    eg:

      class data

       {

       private String data1;//事先聲明
       data(String s)

       {

       data1=s; /*通過接收數據來初始化變量.(注:不能在構造器內

       聲明變量,事先在外就要聲明.)*/

       }

       public String getdata()

       {

       return data1;

       }

       }

       public class xxf

       {

       public static void main(String[] args)

       {

       System.out.println((new data("I love you")).getdata());
    /*通過傳遞參數調用構造器新建一個對象,再通過對象調用方法得到數據*/

       }

       }


    5.接口與類

    類是對一類特定對象的規格說明,我們可以類定義創建對象,通過創建對象來組合所有屬于該類的組件,而接口不能這樣做.而接口實質上就是一個常量和抽象方法的集合,要使用一個接口,就需要在類中實現這個接口,然后作為類定義的一部分,編寫接口中聲明的每一個方法,接口中的方法永遠是public,abstract,接口中的常量永遠是public static和final,因此不需要為它們說明屬性.因為在Java中不支持多重繼承,但是,可以用接口來實現類似的功能,這是接口的重要作用之一.


    eg:

       interface anyone //定義一個接口

       {

       final double PI=3.1416;

       void setNumber(int number);

       int getNumber();

       }

       interface anyother //定義另一個接口

       {

       void setString(String str);

       String getString();

       }

       class xxf implement anyone,anyother //定義一個類,并使用兩個接口

       {

       int number;

       String str;

       public xxf(){}

       void setNumber(int number)

       {

       this.number=number;

       }

       void setString(String str)

       {

       this.str=str;

       }

       void int getNumber(){}//可以為一個空實現.

       void String getString(){}

       }


    //在類中必須實現接口中聲明的所有方法.(當然也可不必,但是要用到適配器類或用抽象類)


     

    芳兒寶貝.我愛你

    posted on 2007-12-09 15:16 wǒ愛伱--咾婆 閱讀(258) 評論(0)  編輯  收藏 所屬分類: JavaBaseFiles

    導航

    統計

    公告

    芳兒寶貝.我愛你


    黑客基地
    http://www.hackbase.com
    全球最大的黑客門戶網站


     最近在讀的書:

    常用鏈接

    留言簿(1)

    隨筆分類(37)

    JavaCode

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: a毛片免费在线观看| 亚洲中文字幕伊人久久无码| 午夜免费福利在线| 夜色阁亚洲一区二区三区| 亚洲欧洲无卡二区视頻| 在线永久看片免费的视频| 亚洲精品午夜在线观看| 18观看免费永久视频| 又粗又大又猛又爽免费视频| 亚洲丁香婷婷综合久久| 日本无卡码免费一区二区三区| 国产亚洲无线码一区二区| 日本免费A级毛一片| 天天看免费高清影视| 亚洲国产精品无码久久九九大片 | 亚洲国产免费综合| 羞羞视频网站免费入口| 亚洲精品一级无码鲁丝片| 亚洲一卡2卡3卡4卡乱码 在线| 久久久久久久久久免免费精品| 成年女人喷潮毛片免费播放| 亚洲国产精品免费观看| 免费看国产精品麻豆| 国产精品1024在线永久免费| 久久久亚洲精品国产| jizz中国免费| 水蜜桃亚洲一二三四在线| 免费观看激色视频网站(性色)| 亚洲中久无码永久在线观看同| 亚洲AV成人精品一区二区三区| 亚洲毛片在线免费观看| 最新亚洲卡一卡二卡三新区| 国产aa免费视频| 亚洲狠狠婷婷综合久久蜜芽| 亚洲第一页日韩专区| 一级毛片免费观看不卡视频| 亚洲Av永久无码精品黑人| 国产亚洲婷婷香蕉久久精品| 日本精品人妻无码免费大全| 亚洲午夜电影一区二区三区| 免费人妻无码不卡中文字幕系|