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

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

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

    隨筆 - 3, 文章 - 152, 評論 - 17, 引用 - 0
    數(shù)據(jù)加載中……

    Java的基礎(chǔ)問題(四)

    1.String類和StringBuffer類

    它們都是處理字符串的類,但是它們有一個最大的區(qū)別,那就是,String對象是存儲你不能改
    動的文本字符
    串,相反,如果你希望改動,則應(yīng)使用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
    運行結(jié)果:
    You are fired!
    You are hired!
    結(jié)果分析:
    從結(jié)果,明顯可知,s1的值并沒有被改變,而第一行結(jié)果只是屏幕內(nèi)容的替換.
    eg2:
    ......
    //omit some code
    StringBuffer s2=new StringBuffer("Hello from Java!");
    s2.replace(6,10,"to");
    System.out.println(s2);
    ......
    //omit some code
    運行結(jié)果:
    Hello to Java!
    結(jié)果分析:
    顯然,s2的值已改變.

    2.位邏輯與條件邏輯

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

    它們都有各自的操作符,位邏輯操作符有:&(與運算),^(異或運算),|(或運算);條件邏輯操
    作符有:&&(并
    且),||(或者).
    位邏輯運算通常是針對兩個數(shù)而言,實行位操作;而條件邏輯運算是針對兩個條件表達(dá)式而
    言,實行條件操
    作.其實,位邏輯操作符一樣可以實現(xiàn)條件操作,但是此時有一個重要的區(qū)別:用位操作符時
    ,不管操作符兩邊的
    條件表達(dá)式成不成立,它都要通通進行運算判斷,而條件邏輯操作符不一樣了,如果通過左側(cè)
    的操作數(shù)就可以進
    行它們需要的判斷,那么它就不會再計算右側(cè)的操作數(shù)了,這種情況叫短路.廢話少說!且看
    下例.
    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
    運行結(jié)果:
    The value is too small.
    結(jié)果分析:
    照理說應(yīng)會出現(xiàn)除數(shù)為0的錯誤,但是我剛才說了,由于條件邏輯操作符是短路操作符,顯然
    ,value!=0不
    成立,立即就可作出判斷應(yīng)執(zhí)行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
    運行結(jié)果:
    int2=2.0
    int3=1.0
    結(jié)果分析:
    我想不用我分析了,你應(yīng)該懂了吧.

    3.實例變量與類變量

    可以通過兩種方法在類中存儲數(shù)據(jù)───作為實例變量和類變量.實例變量是特定于對象的
    ,如果你有兩個對
    象(即一個類的兩個實例),每一個對象中的實例變量獨立于另一個對象中的實例變量的;另
    一方面,兩個對象的
    類變量均指向相同的數(shù)據(jù),并因此面保存相同的值,換句話說,類變量被類中的所有對象共享
    .差點忘了,它們在
    形式上的區(qū)別,類變量在聲明時比實例變量多一個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);
    }
    }
    運行結(jié)果:
    b.intdata=0
    結(jié)果分析:
    可以看出,a.intdata的值雖然變了,但并沒有影響b.intdata.但是如果在data類中聲明int
    data時,在其前
    面加上static就變成類變量了(即:public static int intdata=0;),則此時運行結(jié)果會變
    為:
    b.intdata=1
    這次a.intdata值的改變可把b.intdata影響了,事實上,對象a和b的類變量均指向相同的數(shù)
    據(jù),所有值一
    樣,這就是類變量的作用.

    4.實例方法,類方法,構(gòu)造器方法

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

    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));
    } //直接用類名作為對象調(diào)用類方法
    }

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

    再說說構(gòu)造器方法,它是用來初始化對象中的數(shù)據(jù)的一種方法,創(chuàng)建很容易,只需在類中加上
    一個與這個類
    同名的方法,不需要在前面加任何訪問說明符或者返回類型,另外,構(gòu)造器也一樣可以向方法
    一樣傳遞參數(shù).
    eg:
    class data
    {
    private String data1;//事先聲明

    data(String s)
    {
    data1=s; /*通過接收數(shù)據(jù)來初始化變量.(注:不能在構(gòu)造器內(nèi)
    聲明變量,事先在外就要聲明.)*/
    }

    public String getdata()
    {
    return data1;
    }
    }

    public class xxf
    {
    public static void main(String[] args)
    {
    System.out.println((new data("I love you")).getdata());/*通過傳遞參數(shù)調(diào)用構(gòu)造器
    新建一
    個對象,再通過對象調(diào)用方法得到數(shù)據(jù)*/
    }
    }

    5.接口與類

    類是對一類特定對象的規(guī)格說明,我們可以類定義創(chuàng)建對象,通過創(chuàng)建對象來組合所有屬于
    該類的組件,而
    接口不能這樣做.而接口實質(zhì)上就是一個常量和抽象方法的集合,要使用一個接口,就需要在
    類中實現(xiàn)這個接
    口,然后作為類定義的一部分,編寫接口中聲明的每一個方法,接口中的方法永遠(yuǎn)是public,
    abstract,接口中的
    常量永遠(yuǎn)是public static和final,因此不需要為它們說明屬性.
    因為在Java中不支持多重繼承,但是,可以用接口來實現(xiàn)類似的功能,這是接口的重要作用之
    一.
    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(){}//可以為一個空實現(xiàn).
    void String getString(){}
    }
    //在類中必須實現(xiàn)接口中聲明的所有方法.(當(dāng)然也可不必,但是要用到適配器類或用抽象類

    posted on 2005-03-05 18:07 閱讀(203) 評論(0)  編輯  收藏 所屬分類: J2se

    主站蜘蛛池模板: 全亚洲最新黄色特级网站| 美女视频黄是免费的网址| 亚洲av日韩av欧v在线天堂| 亚洲AV成人一区二区三区观看| 国产麻豆视频免费观看| 亚洲一卡2卡4卡5卡6卡残暴在线| 国产电影午夜成年免费视频 | 亚洲午夜国产片在线观看| 免费一级毛片在线播放放视频| 亚洲乱码中文字幕手机在线| av午夜福利一片免费看久久| 亚洲国产成人精品无码区在线网站| 日韩插啊免费视频在线观看 | 成人免费无码大片a毛片| 亚洲日本久久久午夜精品| 日韩中文字幕免费| 亚洲VA中文字幕不卡无码| 午夜无码A级毛片免费视频| 亚洲无砖砖区免费| 成年男女男精品免费视频网站| 亚洲av片在线观看| 亚洲色偷拍另类无码专区| 69视频免费观看l| 亚洲国产成人精品无码区花野真一 | 亚洲欧洲日产国码久在线观看| 亚洲黄色免费网址| 亚洲国产成人AV在线播放| 久久亚洲欧洲国产综合| 亚洲第一成年免费网站| 精品亚洲成α人无码成α在线观看| 国产成人免费AV在线播放| 亚洲制服丝袜一区二区三区| 国产在线a不卡免费视频| a级毛片高清免费视频| 亚洲人6666成人观看| 国产亚洲色婷婷久久99精品91| www视频在线观看免费| 黄网站色成年片大免费高清| 亚洲今日精彩视频| 国产在线观看免费视频播放器| 日本道免费精品一区二区|