thirteen 1毕谴、final 關(guān)鍵字 2距芬、static 關(guān)鍵字 3、匿名對(duì)象 4舀武、內(nèi)部類 5离斩、包的聲明與訪問 6、訪問修飾符 7寻馏、代碼塊

今日內(nèi)容介紹
1核偿、final 關(guān)鍵字
2、static 關(guān)鍵字
3聂薪、匿名對(duì)象
4蝗羊、內(nèi)部類
5、包的聲明與訪問
6翔悠、訪問修飾符
7野芒、代碼塊

第一節(jié)課

01(面向?qū)ο?final關(guān)鍵字概念.avi 02:20

02(面向?qū)ο?final修飾類.avi 04:25

03(面向?qū)ο?final修飾方法.avi 04:01

04(面向?qū)ο?final修飾局部變量.avi 05:57

05(面向?qū)ο?final修飾成員變量.avi 10:04

06(面向?qū)ο?static的概念.avi 09:28

第二節(jié)課

07(面向?qū)ο?static修飾的對(duì)象特有數(shù)據(jù).avi 06:53

08(面向?qū)ο?static的內(nèi)存圖.avi 14:09

09(面向?qū)ο?static注意事項(xiàng)_靜態(tài)不能直接調(diào)用非靜態(tài).avi 08:02

10(面向?qū)ο?static靜態(tài)的使用場(chǎng)景.avi 08:14

11(面向?qū)ο?對(duì)象中的靜態(tài)調(diào)用.avi 06:45

12(面向?qū)ο?定義靜態(tài)常量.avi 03:44

第三節(jié)課

13(面向?qū)ο?匿名對(duì)象.avi 12:46

14(面向?qū)ο?內(nèi)部類.avi 03:34

15(面向?qū)ο?成員內(nèi)部類的調(diào)用格式.avi 09:19

16(面向?qū)ο?成員內(nèi)部類的同名變量調(diào)用.avi 02:59

17(面向?qū)ο?局部內(nèi)部類.avi 07:18

18(面向?qū)ο?匿名內(nèi)部類.avi 12:22

第四節(jié)課

19(面向?qū)ο?匿名內(nèi)部類_2.avi 04:19

20(面向?qū)ο?包的概念.avi 02:29

21(面向?qū)ο?導(dǎo)入包.avi 06:48

22(面向?qū)ο?權(quán)限修飾符.avi 12:47

23(面向?qū)ο?代碼塊.avi 05:17

============上面的內(nèi)容,方便我們只做ppt,word教案以及書寫下面的簡要的筆記=================

=======================第一節(jié)課開始=============================================

01final關(guān)鍵字概念

* A: 概述
        繼承的出現(xiàn)提高了代碼的復(fù)用性狞悲,并方便開發(fā)。但隨之也有問題丹拯,有些類在描述完之后,不想被繼承死相,
        或者有些類中的部分方法功能是固定的咬像,不想讓子類重寫“构瘢可是當(dāng)子類繼承了這些特殊類之后七芭,
        就可以對(duì)其中的方法進(jìn)行重寫,那怎么解決呢预明?
        要解決上述的這些問題耙箍,需要使用到一個(gè)關(guān)鍵字final,final的意思為最終辩昆,不可變汁针。
        final是個(gè)修飾符,它可以用來修飾類施无,類的成員猾骡,以及局部變量。

02final修飾類義

* A: final 修飾類
        final修飾類不可以被繼承兴想,但是可以繼承其他類嫂便。
* B: 案例
        class Yy {}
        final class Fu extends Yy{} //可以繼承Yy類
        class Zi extends Fu{} //不能繼承Fu類

?

03final修飾方法

* A: final修飾方法
        ?   final修飾的方法不可以被覆蓋,但父類中沒有被final修飾方法,子類覆蓋后可以加final。
* B: 案例 
        class Fu {
            // final修飾的方法几迄,不可以被覆蓋冰评,但可以繼承使用
            public final void method1(){}
            public void method2(){}
        }
        class Zi extends Fu {
            //重寫method2方法
            public final void method2(){}
        }

04final修飾局部變量

* A:修飾基本數(shù)據(jù)類型變量
    ??final修飾的變量稱為常量甲雅,這些變量只能賦值一次


* B:案例1
        final int i = 20;
        i = 30; //賦值報(bào)錯(cuò)坑填,final修飾的變量只能賦值一次
        
* C: 修飾引用數(shù)據(jù)類型
    ?   引用類型的變量值為對(duì)象地址值,地址值不能更改趴久,但是地址內(nèi)的對(duì)象屬性值可以修改

* D: 修飾引用數(shù)據(jù)類型
        final Person p = new Person();
        Person p2 = new Person();
        p = p2; //final修飾的變量p,所記錄的地址值不能改變
        p.name = "小明";//可以更改p對(duì)象中name屬性值
        p不能為別的對(duì)象绝页,而p對(duì)象中的name或age屬性值可更改续誉。

05final修飾成員變量

* A: 修飾成員變量
    ? 修飾成員變量初肉,需要在創(chuàng)建對(duì)象前賦值,否則報(bào)錯(cuò)臼隔。(當(dāng)沒有顯式賦值時(shí)妄壶,多個(gè)構(gòu)造方法的均需要為其賦值。)

* B: 案例
        class Demo {
            //直接賦值
            final int m = 100;
            
            //final修飾的成員變量盒发,需要在創(chuàng)建對(duì)象前賦值狡逢,否則報(bào)錯(cuò)。
            final int n; 
            public Demo(){
                //可以在創(chuàng)建對(duì)象時(shí)所調(diào)用的構(gòu)造方法中蛮艰,為變量n賦值
                n = 2016;
            }
        }

06static的概念

* A:概念
    當(dāng)在定義類的時(shí)候雀彼,類中都會(huì)有相應(yīng)的屬性和方法即寡。而屬性和方法都是通過創(chuàng)建本類對(duì)象調(diào)用的袜刷。
    當(dāng)在調(diào)用對(duì)象的某個(gè)方法時(shí)著蟹,這個(gè)方法沒有訪問到對(duì)象的特有數(shù)據(jù)時(shí),方法創(chuàng)建這個(gè)對(duì)象有些多余奸披。
    可是不創(chuàng)建對(duì)象涮雷,方法又調(diào)用不了,這時(shí)就會(huì)想样刷,那么我們能不能不創(chuàng)建對(duì)象览爵,就可以調(diào)用方法呢?
    可以的沃疮,我們可以通過static關(guān)鍵字來實(shí)現(xiàn)梅肤。static它是靜態(tài)修飾符,一般用來修飾類中的成員俊啼。

==============================第二節(jié)課開始====================================

07static修飾的對(duì)象特有數(shù)據(jù)

* A:特點(diǎn)1:
        被static修飾的成員變量屬于類左医,不屬于這個(gè)類的某個(gè)對(duì)象。
        (也就是說跛十,多個(gè)對(duì)象在訪問或修改static修飾的成員變量時(shí)秕硝,其中一個(gè)對(duì)象將static成員變量值進(jìn)行了修改,
        其他對(duì)象中的static成員變量值跟著改變奈偏,即多個(gè)對(duì)象共享同一個(gè)static成員變量)
* B: 代碼演示
        class Demo {
            public static int num = 100;
        }

        class Test {
            public static void main(String[] args) {
                Demo d1 = new Demo();
                Demo d2 = new Demo();
                d1.num = 200;
                System.out.println(d1.num); //結(jié)果為200
                System.out.println(d2.num); //結(jié)果為200
            }
        }

?

08static的內(nèi)存圖

* A: 略
        參考day13_source 靜態(tài)的內(nèi)存圖.jpg

09static注意事項(xiàng)_靜態(tài)不能直接調(diào)用非靜態(tài)

* A: 注意事項(xiàng)?  
        被static修飾的成員可以并且建議通過類名直接訪問惊来。
        
* B: 訪問靜態(tài)成員的格式:
        類名.靜態(tài)成員變量名
        類名.靜態(tài)成員方法名(參數(shù))
        對(duì)象名.靜態(tài)成員變量名             ------不建議使用該方式,會(huì)出現(xiàn)警告
        對(duì)象名.靜態(tài)成員方法名(參數(shù))     ------不建議使用該方式内狸,會(huì)出現(xiàn)警告
        
* C: 代碼演示
        class Demo {
            //靜態(tài)成員變量
            public static int num = 100;
            //靜態(tài)方法
            public static void method(){
                System.out.println("靜態(tài)方法");
            }
        }
        class Test {
            public static void main(String[] args) {
                System.out.println(Demo.num);
                Demo.method();
            }
        }

?

10static靜態(tài)的使用場(chǎng)景

* A: 使用場(chǎng)景
    static可以修飾成員變量和成員方法厘擂。    
    什么時(shí)候使用static修飾成員變量锰瘸?
        加static修飾成員的時(shí)候避凝,這個(gè)成員會(huì)被類的所有對(duì)象所共享。一般我們把共性數(shù)據(jù)定義為靜態(tài)的變量
    什么時(shí)候使用static修飾成員方法管削?
        靜態(tài)的方法只能訪問靜態(tài)的成員含思,如果靜態(tài)方法中引用到了靜態(tài)的其他成員,那么這個(gè)方法需要聲明為靜態(tài)的方法饲做。

11對(duì)象中的靜態(tài)調(diào)用

* A: 對(duì)象的靜態(tài)調(diào)用
  在多態(tài)中遏弱,非靜態(tài)編譯看父類,運(yùn)行看子類泪姨,父類沒有編譯失敗饰抒。
  但多態(tài)中的靜態(tài)方法,編譯看父類,運(yùn)行仍然看父類。因?yàn)殪o態(tài)和對(duì)象沒有關(guān)系唇敞,屬于靜態(tài)綁定。

* B: 舉例
    public class Test{
        public static void main(String[] args){
            Fu f = new Zi();
            f.show();   //父類的引用和父類的方法綁定,和對(duì)象無關(guān),不會(huì)在運(yùn)行時(shí)動(dòng)態(tài)的執(zhí)行子類特有的方法咒精。
        }
    }

12定義靜態(tài)常量

* A: 靜態(tài)常量
    開發(fā)中旷档,我們想在類中定義一個(gè)靜態(tài)常量,通常使用public static final修飾的變量來完成定義范咨。
    此時(shí)變量名用全部大寫厂庇,多個(gè)單詞使用下劃線連接。
* B: 定義格式:
    public static final 數(shù)據(jù)類型 變量名 = 值;
    
* C: 如下演示:
    class Company {
        public static final String COMPANY_NAME = "傳智播客";
        public static void method(){
            System.out.println("一個(gè)靜態(tài)方法");
        }
    }

    當(dāng)我們想使用類的靜態(tài)成員時(shí)替蛉,不需要?jiǎng)?chuàng)建對(duì)象拄氯,直接使用類名來訪問即可译柏。
    System.out.println(Company.COMPANY_NAME); //打印傳智播客
    Company.method(); // 調(diào)用一個(gè)靜態(tài)方法

* D: 注意:
    接口中的每個(gè)成員變量都默認(rèn)使用public static final修飾。
    所有接口中的成員變量已是靜態(tài)常量典唇,由于接口沒有構(gòu)造方法胯府,所以必須顯示賦值∫鼓担可以直接用接口名訪問侣签。
    interface Inter {
        public static final int COUNT = 100;
    }
        訪問接口中的靜態(tài)變量
    Inter.COUNT

==============================第三節(jié)課開始====================================

13匿名對(duì)象

* A:匿名對(duì)象的概述
    * 匿名對(duì)象是指創(chuàng)建對(duì)象時(shí),只有創(chuàng)建對(duì)象的語句蹦肴,卻沒有把對(duì)象地址值賦值給某個(gè)變量猴娩。
* B:案例
    public class Person{
        public void eat(){
            System.out.println();
    }
    }

    創(chuàng)建一個(gè)普通對(duì)象
    Person p = new Person();
    創(chuàng)建一個(gè)匿名對(duì)象
    new Person();

* C: 匿名對(duì)象的特點(diǎn)
    a:創(chuàng)建匿名對(duì)象直接使用,沒有變量名矛双。
        new Person().eat()  //eat方法被一個(gè)沒有名字的Person對(duì)象調(diào)用了议忽。

    b:匿名對(duì)象在沒有指定其引用變量時(shí),只能使用一次栈幸。
        new Person().eat(); 創(chuàng)建一個(gè)匿名對(duì)象速址,調(diào)用eat方法
        new Person().eat(); 想再次調(diào)用eat方法,重新創(chuàng)建了一個(gè)匿名對(duì)象
        
    c:匿名對(duì)象可以作為方法接收的參數(shù)昔园、方法返回值使用
        class Demo {
            public static Person getPerson(){
                //普通方式
                //Person p = new Person();  
                //return p;
                
                //匿名對(duì)象作為方法返回值
                return new Person(); 
            }
            
            public static void method(Person p){}
        }

        class Test {
            public static void main(String[] args) {
                //調(diào)用getPerson方法闹炉,得到一個(gè)Person對(duì)象
                Person person = Demo.getPerson();
                
                //調(diào)用method方法
                Demo.method(person);
                //匿名對(duì)象作為方法接收的參數(shù)
                Demo.method(new Person());
            }
        }

14內(nèi)部類

* A: 內(nèi)部類的概述
    將類寫在其他類的內(nèi)部渣触,可以寫在其他類的成員位置和局部位置壹若,這時(shí)寫在其他類內(nèi)部的類就稱為內(nèi)部類。
    其他類也稱為外部類养篓。
* B: 什么時(shí)候使用內(nèi)部類
    在描述事物時(shí)赂蕴,若一個(gè)事物內(nèi)部還包含其他可能包含的事物,比如在描述汽車時(shí)碧注,汽車中還包含這發(fā)動(dòng)機(jī)糖赔,
    這時(shí)發(fā)動(dòng)機(jī)就可以使用內(nèi)部類來描述。
    class 汽車 { //外部類
        class 發(fā)動(dòng)機(jī) { //內(nèi)部類
        }
    }
* C: 內(nèi)部類的分類
    內(nèi)部類分為成員內(nèi)部類與局部內(nèi)部類逝变。
    我們定義內(nèi)部類時(shí),就是一個(gè)正常定義類的過程拱层,同樣包含各種修飾符态贤、繼承與實(shí)現(xiàn)關(guān)系等。
    在內(nèi)部類中可以直接訪問外部類的所有成員箱吕。

15成員內(nèi)部類的調(diào)用格式

* A: 格式
    成員內(nèi)部類柿冲,定義在外部類中的成員位置假抄。與類中的成員變量相似,可通過外部類對(duì)象進(jìn)行訪問
* B: 定義格式
    class 外部類 { 
        修飾符 class 內(nèi)部類 {
            //其他代碼
        }
    }

* C: 訪問方式
    外部類名.內(nèi)部類名 變量名 = new 外部類名().new 內(nèi)部類名();

* D: 成員內(nèi)部類代碼演示
    class Body {//外部類熏瞄,身體
         private boolean life= true; //生命狀態(tài)
         public class Heart { //內(nèi)部類谬以,心臟
             public void jump() {
                 System.out.println("心臟噗通噗通的跳")
                    System.out.println("生命狀態(tài)" + life); //訪問外部類成員變量
            }
        }
    }

    訪問內(nèi)部類
    public static void main(String[] args) {
        //創(chuàng)建內(nèi)部類對(duì)象
        Body.Heart bh = new Body().new Heart();
        //調(diào)用內(nèi)部類中的方法
        bh.jump();
    }

?

16成員內(nèi)部類的同名變量調(diào)用

* A: 代碼實(shí)現(xiàn)
    public class Outer {
        int i  = 1;
        class Inner {
            int i  = 2;
            public void inner(){
                int i = 3;
                System.out.println(Outer.this.i);
            }
        }
    }

17局部內(nèi)部類

* A 局部內(nèi)部類为黎,定義在外部類方法中的局部位置。與訪問方法中的局部變量相似铭乾,可通過調(diào)用方法進(jìn)行訪問.
* B 定義格式
    class 外部類 { 
        修飾符 返回值類型 方法名(參數(shù)) {
            class 內(nèi)部類 {
                //其他代碼
            }
        }
    }
* C 訪問方式
    在外部類方法中炕檩,創(chuàng)建內(nèi)部類對(duì)象,進(jìn)行訪問

* D 局部內(nèi)部類代碼演示
    定義類
    class Party {//外部類吹泡,聚會(huì)
        public void puffBall(){// 吹氣球方法
            class Ball {// 內(nèi)部類经瓷,氣球
                  public void puff(){
                    System.out.println("氣球膨脹了");
                  }
            }
            //創(chuàng)建內(nèi)部類對(duì)象,調(diào)用puff方法
            new Ball().puff();
        }
    }
    訪問內(nèi)部類
    public static void main(String[] args) {    
        //創(chuàng)建外部類對(duì)象
        Party p = new Party();
        //調(diào)用外部類中的puffBall方法
        p.puffBall();
    }

==============================第四節(jié)課開始====================================

18匿名內(nèi)部類

 * A: 概述
 內(nèi)部類是為了應(yīng)對(duì)更為復(fù)雜的類間關(guān)系揭朝。查看源代碼中會(huì)涉及到,而在日常業(yè)務(wù)中很難遇到柱嫌,這里不做贅述屯换。
 最常用到的內(nèi)部類就是匿名內(nèi)部類,它是局部內(nèi)部類的一種彤悔。
 定義的匿名內(nèi)部類有兩個(gè)含義:
 臨時(shí)定義某一指定類型的子類
 定義后即刻創(chuàng)建剛剛定義的這個(gè)子類的對(duì)象

* B: 本質(zhì)
 匿名內(nèi)部類的本質(zhì)是一個(gè)實(shí)現(xiàn)了接口或繼承了某個(gè)類的子類匿名對(duì)象.
 
* C: 案例
public interface Smoking {
    public abstract void smoking();
    }
    /*
     *  實(shí)現(xiàn)類,實(shí)現(xiàn)接口 重寫接口抽象方法,創(chuàng)建實(shí)現(xiàn)類對(duì)象
     *  class XXX implements Smoking{
     *      public void smoking(){
     *      
     *      }
     *  }
     *  XXX x = new XXX();
     *  x.smoking(); 
     *  Smoking s = new XXX();
     *  s.smoking();
     *  
     *  匿名內(nèi)部類,簡化問題:  定義實(shí)現(xiàn)類,重寫方法,建立實(shí)現(xiàn)類對(duì)象,合為一步完成
     */

測(cè)試類:
public class Test {
    public static void main(String[] args) {
        //使用匿名內(nèi)部類
        /*
         *  定義實(shí)現(xiàn)類,重寫方法,創(chuàng)建實(shí)現(xiàn)類對(duì)象,一步搞定
         *  格式:
         *    new 接口或者父類(){
         *       重寫抽象方法
         *    };
         *    從 new開始,到分號(hào)結(jié)束
         *    創(chuàng)建了接口的實(shí)現(xiàn)類的對(duì)象
         */
        new Smoking(){
            public void smoking(){
                System.out.println("人在吸煙");
            }
        }.smoking();
    }
}

19匿名內(nèi)部類_2

 * A: 匿名內(nèi)部類案例演示
    public abstract class Animal {
        public abstract void eat();
        public abstract void sleep();
    }

測(cè)試代碼
/*
 *    new Animal(){
            public void eat(){
                System.out.println("在吃飯");
            } 
            public void sleep(){
                System.out.println("在睡覺");
            }
         };
    以上代碼,就是Animal的子類的對(duì)象
    多態(tài)性, 父類引用 = 子類的對(duì)象

 */
public class Test2 {
    public static void main(String[] args) {
        Animal a= new Animal(){
            public void eat(){
                System.out.println("在吃飯");
            } 
            public void sleep(){
                System.out.println("在睡覺");
            }
         };
         a.eat();
         a.sleep();
    }
}

20包的概念

 * A: 概念
    java的包抑片,其實(shí)就是我們電腦系統(tǒng)中的文件夾杨赤,包里存放的是類文件。
    當(dāng)類文件很多的時(shí)候植捎,通常我們會(huì)采用多個(gè)包進(jìn)行存放管理他們阳柔,這種方式稱為分包管理。
    在項(xiàng)目中医咨,我們將相同功能的類放到一個(gè)包中架诞,方便管理干茉。并且日常項(xiàng)目的分工也是以包作為邊界。
    類中聲明的包必須與實(shí)際class文件所在的文件夾情況相一致沾谓,即類聲明在a包下戳鹅,則生成的.class文件必須在a文件夾下枫虏,否則爬虱,程序運(yùn)行時(shí)會(huì)找不到類腾它。

* B 聲明格式
    通常使用公司網(wǎng)址反寫,可以有多層包曲梗,包名采用全部小寫字母妓忍,多層包之間用”.”連接
        類中包的聲明格式: 
    package 包名.包名.包名…;
        如:黑馬程序員網(wǎng)址itheima.com那么網(wǎng)址反寫就為com.itheima
            傳智播客 itcast.cn  那么網(wǎng)址反寫就為 cn.itcast
        注意:聲明包的語句,必須寫在程序有效代碼的第一行(注釋不算)
    代碼演示:
    package cn.itcast; //包的聲明碘举,必須在有效代碼的第一行
    
    import java.util.Scanner;
    import java.util.Random;

    public class Demo {}
    
* C: 包的訪問
    在訪問類時(shí)搁廓,為了能夠找到該類境蜕,必須使用含有包名的類全名(包名.類名)。
    包名.包名….類名
    如: java.util.Scanner
         java.util.Random
        cn.itcast.Demo
    帶有包的類售滤,創(chuàng)建對(duì)象格式:包名.類名 變量名 = new包名.類名();
         cn.itcast.Demo d = new cn.itcast.Demo();
        前提:包的訪問與訪問權(quán)限密切相關(guān)台诗,這里以一般情況來說,即類用public修飾的情況弊知。

        類的簡化訪問
    當(dāng)我們要使用一個(gè)類時(shí)粱快,這個(gè)類與當(dāng)前程序在同一個(gè)包中(即同一個(gè)文件夾中),或者這個(gè)類是java.lang包中的類時(shí)通陈祝可以省略掉包名鳍咱,直接使用該類。
    如:cn.itcast包中有兩個(gè)類蓄坏,PersonTest類,與Person類干旧。我們?cè)赑ersonTest類中妹蔽,訪問Person類時(shí),由于是同一個(gè)包下编整,訪問時(shí)可以省略包名乳丰,即直接通過類名訪問 Person产园。
    類名 變量名 = new類名();
    Person p = new Person();

        當(dāng)我們要使用的類,與當(dāng)前程序不在同一個(gè)包中(即不同文件夾中)粘勒,要訪問的類必須用public修飾才可訪問屎即。
    package cn.itcst02;
    public class Person {}

?

22導(dǎo)入包

  * A:導(dǎo)入包
    我們每次使用類時(shí),都需要寫很長的包名乘陪。很麻煩雕擂,我們可以通過import導(dǎo)包的方式來簡化。
    可以通過導(dǎo)包的方式使用該類谣拣,可以避免使用全類名編寫(即族展,包類.類名)拔鹰。
    導(dǎo)包的格式:
    import 包名.類名;

        當(dāng)程序?qū)胫付ǖ陌罅兄褂妙悤r(shí)宾茂,就可以簡化了拴还。演示如下
    //導(dǎo)入包前的方式
    //創(chuàng)建對(duì)象
    java.util.Random r1 = new java.util.Random();
    java.util.Random r2 = new java.util.Random();
    java.util.Scanner sc1 = new java.util.Scanner(System.in);
    java.util.Scanner sc2 = new java.util.Scanner(System.in);

    //導(dǎo)入包后的方式
    import java.util.Random;
    import java.util.Scanner;
    //創(chuàng)建對(duì)象
    Random r1 = new Random();
    Random r2 = new Random();
    Scanner sc1 = new Scanner(System.in);
    Scanner sc2 = new Scanner(System.in);
    import導(dǎo)包代碼書寫的位置:在聲明包package后片林,定義所有類class前,使用導(dǎo)包import包名.包名.類名;

23權(quán)限修飾符

 * A 權(quán)限修飾符有哪些
         在Java中提供了四種訪問權(quán)限焕妙,使用不同的訪問權(quán)限時(shí)弓摘,被修飾的內(nèi)容會(huì)有不同的訪問權(quán)限,
         以下表來說明不同權(quán)限的訪問能力:
                                public          protected     default       private
         同一類中                 √                √             √             √
         同一包中(子類與無關(guān)類)     √                √              √ 
         不同包的子類           √                √        
         不同包中的無關(guān)類         √         
* B: 小結(jié)
    歸納一下:在日常開發(fā)過程中末患,編寫的類锤窑、方法果复、成員變量的訪問
    要想僅能在本類中訪問使用private修飾;
    要想本包中的類都可以訪問不加修飾符即可走搁;
    要想本包中的類與其他包中的子類可以訪問使用protected修飾
    要想所有包中的所有類都可以訪問使用public修飾迈窟。
    注意:如果類用public修飾,則類名必須與文件名相同曲稼。一個(gè)文件中只能有一個(gè)public修飾的類湖员。

24代碼塊

 * A: 概述:
    程序中用大括號(hào)括起來的代碼叫代碼塊
 * B: 分類
  局部代碼塊  構(gòu)造代碼塊  靜態(tài)代碼塊  同步代碼塊
 
 * C 局部代碼塊:
    局部代碼塊是定義在方法或語句中
    特點(diǎn):
        以”{}”劃定的代碼區(qū)域娘摔,此時(shí)只需要關(guān)注作用域的不同即可
        方法和類都是以代碼塊的方式劃定邊界的

      class Demo{
            public static void main(String[] args)  {
                {
                         int x = 1;
                         System.out.println("普通代碼塊" + x);
                }
                int x = 99;
                System.out.println("代碼塊之外" + x);
            }
      }
      結(jié)果:
        普通代碼塊1
        代碼塊之外99
      局部代碼塊作用:可以限定變量的聲明周期.

* D: 構(gòu)造代碼塊
    構(gòu)造代碼塊是定義在類中成員位置的代碼塊
    特點(diǎn):
        優(yōu)先于構(gòu)造方法執(zhí)行,構(gòu)造代碼塊用于執(zhí)行所有對(duì)象均需要的初始化動(dòng)作
        每創(chuàng)建一個(gè)對(duì)象均會(huì)執(zhí)行一次構(gòu)造代碼塊鸭津。
    public class Person {
        private String name;
        private int age;
        
         //構(gòu)造代碼塊
        {
            System.out.println("構(gòu)造代碼塊執(zhí)行了");
        }
        Person(){
            System.out.println("Person無參數(shù)的構(gòu)造函數(shù)執(zhí)行");
        }
        Person(int age){
            this.age = age;
            System.out.println("Person(age)參數(shù)的構(gòu)造函數(shù)執(zhí)行");
        }
    }
    class PersonDemo{
        public static void main(String[] args)  {
            Person p = new Person();
            Person p1 = new Person(23);
        }
    }

* E: 靜態(tài)代碼塊
    靜態(tài)代碼塊是定義在成員位置逆趋,使用static修飾的代碼塊。
    特點(diǎn):
        它優(yōu)先于主方法執(zhí)行闻书、優(yōu)先于構(gòu)造代碼塊執(zhí)行惠窄,當(dāng)以任意形式第一次使用到該類時(shí)執(zhí)行。
        該類不管創(chuàng)建多少對(duì)象楞卡,靜態(tài)代碼塊只執(zhí)行一次脾歇。
        可用于給靜態(tài)變量賦值,用來給類進(jìn)行初始化池摧。
        public class Person {
            private String name;
            private int age;
             //靜態(tài)代碼塊
            static{
                System.out.println("靜態(tài)代碼塊執(zhí)行了");
            }
        }
        
* F: 同步代碼塊(多線程學(xué)習(xí))

25總結(jié)

* 把今天的知識(shí)點(diǎn)總結(jié)一遍激况。

1.final修飾類乌逐,修飾方法,修飾變量有什么特點(diǎn)?

2绢慢、package,import,class之間有沒有順序關(guān)系洛波?

3、Java中的權(quán)限修飾符有哪些缚窿?

4闻伶、內(nèi)部類的訪問特點(diǎn)是什么够话?

5光绕、局部內(nèi)部類訪問局部變量诞帐,該局部變量必須用哪個(gè)關(guān)鍵字修飾爆雹,為什么?

6慧起、內(nèi)部類的格式? 它的本質(zhì)是什么册倒?

7、匿名內(nèi)部類的前提條件灿意,格式分別是什么崇呵?

8.代碼塊的分類?

9.不運(yùn)行下面代碼: 口述打印結(jié)果
class Student {
static {
System.out.println("Student 靜態(tài)代碼塊");
}

    {
            System.out.println("Student 構(gòu)造代碼塊");
    }

    public Student() {
              System.out.println("Student 構(gòu)造方法");
    }

}

class Demo2_Student {
static {
System.out.println("Demo2_Student靜態(tài)代碼塊");
}

      public static void main(String[] args) {
        System.out.println("我是main方法");
    
            Student s1 = new Student();
            Student s2 = new Student();
    }

}

10缤剧、請(qǐng)編寫一個(gè)抽象類Phone,兩個(gè)抽象方法,call() sendMessage()
兩個(gè)子類OldPhone 和 NewPhone , 其中NewPhone想添加一個(gè)玩游戲的功能.
請(qǐng)根據(jù)接口的思想實(shí)現(xiàn),并用匿名內(nèi)部類的方式調(diào)用玩游戲的功能.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市域慷,隨后出現(xiàn)的幾起案子荒辕,更是在濱河造成了極大的恐慌,老刑警劉巖犹褒,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兄纺,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡化漆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門座云,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疙赠,“玉大人,你說我怎么就攤上這事朦拖∑匝簦” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵璧帝,是天一觀的道長捍岳。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么锣夹? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任页徐,我火速辦了婚禮,結(jié)果婚禮上银萍,老公的妹妹穿的比我還像新娘变勇。我一直安慰自己,他們只是感情好贴唇,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布搀绣。 她就那樣靜靜地躺著,像睡著了一般戳气。 火紅的嫁衣襯著肌膚如雪链患。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天瓶您,我揣著相機(jī)與錄音锣险,去河邊找鬼。 笑死览闰,一個(gè)胖子當(dāng)著我的面吹牛芯肤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播压鉴,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼崖咨,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了油吭?” 一聲冷哼從身側(cè)響起击蹲,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎婉宰,沒想到半個(gè)月后歌豺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡心包,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年类咧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蟹腾。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡痕惋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出娃殖,到底是詐尸還是另有隱情值戳,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布炉爆,位于F島的核電站堕虹,受9級(jí)特大地震影響卧晓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜赴捞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一逼裆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧螟炫,春花似錦波附、人聲如沸艺晴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽封寞。三九已至然评,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間狈究,已是汗流浹背碗淌。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抖锥,地道東北人亿眠。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像磅废,于是被迫代替她去往敵國和親纳像。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容