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

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

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

    godlike

    若腳步太慢 思緒會亂

    遺忘是一種罪。

    basic teach

    [code="java"]public class Point {
        int x , y ;
        void output(){
            System.out.println(x);
            System.out.println(y);
        }
        public static void main(String[] args){
            Point pt;
            pt = new Point();
            pt.x = 10 ;
            pt.y = 20 ;
            pt.output();
        
        }
    }[/code]

    需求 : 編寫一個駕駛汽車的方法 。

    面向過程: 編寫一個方法 drivecar() ;

    面向?qū)ο螅?將CAR看作一個對象 ,將CAR的共性抽取出來 ,設計一個CAR類,類中定義一個方法drive();,調(diào)用CAR.drive() ,實現(xiàn)需求 。


     * 類的構造方法 :
    [code="java"]public class Point {
        int x , y ;
        Point(int a ,int b){  //構造方法 :構造方法的名稱和類名是一樣的 ,沒有返回值。
            x=a;
            y=b;
        }
        void output(){
            System.out.println(x);
            System.out.println(y);
        }
        public static void main(String[] args){
            Point pt;
            pt = new Point(3,5);//在這里傳參
            //pt.x = 10 ;
            //pt.y = 20 ;
            pt.output();
        
        }
    }[/code]
    1,構造方法的名字和類名一樣,并且沒有返回值。
    2,構造方法只要用于類的對象定義初始化狀態(tài)。
    3,不能直接調(diào)用構造方法 ,必須new關鍵字,創(chuàng)建類的實例。
    4,java類都要求有構造方法 ,如果沒有定義構造方法,java編譯器會自動為我們添加一個缺省的構造方法。
    5,javap.exe---->反編譯工具

    new 關鍵字的理解
    1,為對象分配內(nèi)存空間。
    2,引起對象構造方法的調(diào)用。
    3,為對象返回一個引用 。

    各種數(shù)據(jù)類型的默認值 :
    1,數(shù)值型                0
    2,boolean     false
    3,char        '\0'
    4,對象                         null    

    方法的重載 overload :
    條件 :方法的名稱相同,但參數(shù)類型或者參數(shù)個數(shù)不同,才能構成方法的重載。

    [code="java"]
    public class Point {
        int x , y ;
        Point(int a ,int b){  //構造方法 :構造方法的名稱和類名是一樣的 ,沒有返回值。
            x=a;
            y=b;
        }
        Point(){
        
        }
        void output(){
            System.out.println(x);
            System.out.println(y);
        }
        public static void main(String[] args){
            Point pt;
            pt = new Point(3,5);//這樣會調(diào)用帶有參數(shù)的構造方法
            pt = new Point();//這樣會調(diào)用缺省無參的構造方法
            //pt.x = 10 ;
            //pt.y = 20 ;
            pt.output();
        
        }
    }[/code]
    特殊變量 this :
    1,this變量代表對象本身。
    2,當類中有兩個同名變量,一個屬于類的成員變量 ,一個屬于方法里面的局部變量 ,使用this區(qū)分成員變量和局部變量。
    3,使用this簡化構造函數(shù)的調(diào)用。

    實例方法和實例數(shù)據(jù)成員的說明 :
    1,一個類所有的實例對象調(diào)用的成員方法在內(nèi)存中只有一份拷貝,盡管在內(nèi)存中有可能有多個對象,
        而數(shù)據(jù)成員在類的每個對象所在的內(nèi)存中都存在一份拷貝。
    2.this對象允許相同的實例方法為不同的對象工作。

    當調(diào)用static靜態(tài)方法時,可以直接調(diào)用類名.方法 :
    [code="java"]public class Point {
        int x , y ;
        Point(int a ,int b){          x=a;
            y=b;
        }
        static void output(){
            
            System.out.println("靜態(tài)方法");

        }
        public static void main(String[] args){
    //        Point pt;
    //        pt = new Point(3,5);//在這里傳參
    //        pt.x = 10 ;
    //        pt.y = 20 ;
    //        pt.output();
            Point.output(); //直接調(diào)用
            
        }
    }[/code]


    關鍵字 static :

    1,靜態(tài)方法只屬于類的本身 ,稱為類的方法 ,非靜態(tài)方法可稱為實例方法。
    2,靜態(tài)方法和靜態(tài)變量是屬于同一個類,而不屬于類的對象。
    3,靜態(tài)方法和靜態(tài)變量可以直接通過類名引用 。
    4,在靜態(tài)方法中不能訪問非靜態(tài)非靜態(tài)方法和引用非靜態(tài)成員,反之可以。
    5,可以用類的對象obj去調(diào)用靜態(tài)的方法method(),如obj.method().

    常量的定義 :

    1,例如 : static final double PI = 3.1415926 ;
    2,作為一種約定 ,在定義常量時 ,一般采用大寫形式 。
    3,final常量可以在聲明的同時賦予初值 ,也可以在構造函數(shù)中賦予初值。
    4,為了節(jié)省內(nèi)存 ,我們通常將常量聲明為static 。

    類的繼承 :
      被繼承的類稱為超類(父類、基類) ,繼承的類稱為子類(派生類) 。java中不允許多繼承。

    方法的覆蓋 : override
      在子類中定義一個與父類同名,返回類型,參數(shù)類型均相同的一個方法 ,稱為方法的覆蓋 。覆蓋發(fā)生在子類與父類之間 。

    特殊變量super :

    1,特殊變量super提供了對父類的訪問。
    2,可以使用super訪問父類被子類隱藏的變量或覆蓋的方法 。
    3,每個子類構造方法的第一條語句,都是隱含的調(diào)用super(),如果父類沒有這種形式的構造方法 ,那么在編譯的時候就會據(jù)報錯 。

    [code="java"]
    class Animal{
        
        int height , weight ;
        
        void eat(){
            System.out.println("animal eat");
        }
        void sleep(){
            System.out.println("animal sleep");
        }
        void breathe(){
            System.out.println("animal breathe");
        }
    }

    class Fish extends Animal{
        void breathe(){
            super.breathe();//子類調(diào)用父類的方法 。
            System.out.println("fish breathe");
        }
    }

    class Integration{
        public static void main(String[]aargs){
            Animal an = new Animal();
            Fish fh = new Fish();
            
            an.breathe();
            fh.height= 22;
            fh.breathe();
        }
    }
    [/code]

    多態(tài)性 :
    通過覆蓋父類的方法來實現(xiàn) ,在運行時根據(jù)傳遞對象的引用 ,來調(diào)用相應的方法 。

    例 :
    需求 : 求長方形的周長和面積
    1,面向過程的方法
    [code="java"]class Rectangle{
        static int perimeter(int length ,int width)
        {
            return 2*(length+width);
        }
        static int area(int length,int width)
        {
            return length*width ;
        }
        
        
        
        
        public static void main(String[] args)
        {
            System.out.println(Rectangle.perimeter(2, 3));
            System.out.println(Rectangle.area(3,5));
        }
    }[/code]
    2,面向?qū)ο蟮姆椒?
    [code="java"]class Rectangle
    {
        int l ,w ;
        
        int perimeter()
        {
            return 2*(l+w) ;
        }
        int area()
        {
            return l*w ;
        }
        public static void main(String[] args)
        {
            Rectangle rect1 = new Rectangle();
            Rectangle rect2 = new Rectangle();
            rect1.l = 10 ;
            rect1.w =  91;
            rect2.l = 2 ;
            rect2.w = 3 ;
            System.out.println(rect1.perimeter());
            System.out.println(rect1.area());
            System.out.println(rect2.perimeter());
            System.out.println(rect2.area());
        }
    }[/code]


    方法的使用控制  :
              public  protected    default   private
    同類      1            1                1         1
    同包      1            1                1 
    子類      1            1
    通用性   1

    final 方法 :
        1,為了確保某個函數(shù)行為在繼承過程中保持不變,并且不能被覆蓋,可以使用final方法。
        2,為了效率上的考慮,將方法聲明為final ,讓編譯器對此方法的調(diào)用進行優(yōu)化,更注意的是 : 編譯器會自行對final方法進行判斷,并決定是否進行優(yōu)化,通常在方法的體積很小,而我們確實不希望覆蓋它時,才將他聲明為final 。
        3,class中的private和static方法自然就是final 。

    抽象方法和抽象類:
        1,在類中沒有方法的方法就是抽象方法 。
        2,還有抽象方法的類 ,即為抽象類 。
        3,如果一個子類沒有實現(xiàn)基類方法中所有抽象方法 ,則子類也為一個抽象類 。
        4,我們可以將一個沒有任何抽象方法的類聲明為abstract ,避免這個類產(chǎn)生任何的對象 。
        5,抽象類不能實例化對象 。
       

    posted on 2011-12-19 14:39 CODLIKE 閱讀(63) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統(tǒng)計

    公告

    @import url(http://www.tkk7.com/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

    留言簿

    文章檔案

    搜索

    最新評論

    godlike
    主站蜘蛛池模板: 亚洲大尺度无码专区尤物| 免费无码又黄又爽又刺激| 亚洲欧洲日产国码一级毛片| 亚洲中文字幕精品久久| www.黄色免费网站| 亚洲va在线va天堂va手机| 国产v精品成人免费视频400条| 亚洲人和日本人jizz| 无码人妻一区二区三区免费| 亚洲入口无毒网址你懂的| 色吊丝最新永久免费观看网站| 亚洲熟妇丰满xxxxx| 又粗又大又硬又爽的免费视频| 美女视频黄a视频全免费网站一区 美女视频黄a视频全免费网站色 | 国产一级a毛一级a看免费人娇| 亚洲日韩VA无码中文字幕| 99视频在线观看免费| 亚洲国产精品久久久久婷婷软件| 午夜老司机永久免费看片| 亚洲人成在线中文字幕| 成年女人毛片免费视频| 精品一区二区三区无码免费直播 | 亚洲区小说区图片区| jizz免费观看| 亚洲视频一区调教| 成人免费视频网址| 国产精品免费大片一区二区| 久久精品国产亚洲| 扒开双腿猛进入爽爽免费视频| 老司机福利在线免费观看| 亚洲Av无码精品色午夜| 野花高清在线观看免费完整版中文| 亚洲精品精华液一区二区| 久久精品国产精品亚洲人人 | 成人网站免费观看| xxxx日本在线播放免费不卡| 亚洲综合精品一二三区在线| 国内精品免费视频自在线| 国产精品内射视频免费| 亚洲午夜成激人情在线影院| 国产免费av片在线无码免费看|