異常

---------------------- ASP.Net+Android+IOS開發.Net培訓、期待與您交流! ----------------------

 

接口

       格式:interface 接口名 {}

       接口中的成員修飾符是固定的。

       成員常量:publicstatic final

       接口裏面定義變量是全局常量,而且上面三個關鍵字都可以省略。

       成員函數:publicabstract

       接口裏面定義的方法都是抽象的,而且上面的兩個關鍵字也是可以省略的。

       發現接口中的成員都是public的。

       接口的出現將多繼承通過另一種形式體現出來,即多實現

   接口的特點:

                              接口是對外暴露的規則

                              接口是程序的功能擴展

                              接口的出現降低耦合性

                              接口可以用來多實現

              類與接口之間是實現關係,而且類可以繼承一個類的同時實現多個接口。

              接口與接口之間可以有繼承關係。

              如:

                              public  interface   I  {  

                                     method1(){};  

                              }  

                             class  A   implements   I {  

                                     method1() {  

                                             somefunction......  

                                     }  

                             }

 

              接口於抽象類的區別:

                   共  性:

都是不斷抽取出來的抽象的概念

                   區別 1:

抽象類體現繼承關係,一個類只能單繼承

接口體現實現關係,一個類可以多實現

                   區別 2:

抽象類是繼承,是 "is a "關係

接口是實現,是 "like a"關係

                   區別 3:

抽象類中可以定義非抽象方法,供子類直接使用

接口的方法都是抽象,接口中的成員都有固定修飾符

 

多態:

              程序中的提現:父類或者接口的引用指向或者接收自己的子類對象。

              好處和作用:多態的存在提高了程序的擴展性和後期可維護性

              多態三個必要條件:

                              父類引用指向子類對象

                              要有覆蓋操作,也就是重寫

                              需要存在繼承或者實現關係

           1、多態的體現:

                             父類的引用指向了自己的子類對象。

                             父類的引用也可以接收自己的子類對象。

           2、多態的前提:

                             必須是類與類之間有關係。要麼繼承,要麼實現。

                             通常還有一個前提:存在覆蓋。

            3、多態的好處:

                             多態的出現大大的提高程序的擴展性。

           4、多態的弊端:

                             提高了擴展性,但是隻能使用父類的引用訪問父類中的成員。

 

            在多態中成員函數的特點:

                              在編譯時期:參閱引用型變量所屬的類中是否有調用的方法。如果有,編譯通過,如果沒有編譯失敗。

                            在運行時期:參閱對象所屬的類中是否有調用的方法。

             簡單總結就是:成員函數在多態調用時,編譯看左邊,運行看右邊。

 

            在多態中,成員變量的特點:無論編譯和運行,都參考左邊(引用型變量所屬的類)

            在多態中,靜態成員函數的特點:無論編譯和運行,都參考做左邊。

       

 

內部類:

              將一個類定義在另一個類的裏面,對裏面那個類就稱爲內部類(內置類,嵌套類)。

              訪問特點:

                              內部類可以直接訪問外部類中的成員,包括私有成員。是因爲內部類中持有了一個外部類的引用,格式外部類名.this。而外部類要      訪問內部類中的成員必須要建立內部類的對象。

   訪問格式:

       1、當內部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中。可以直接建立內部類對象。

       格式:

          外部類名.內部類名 變量名 = 外部類對象.內部類對象;

          Outer.Inner in = new Outer().new Inner();

       2、當內部類在成員位置上,就可以被成員修飾符所修飾。

          如:private:將內部類在外部類中進行封裝。

              static:內部類就具備static的特性。

          當內部類被static修飾後,只能直接訪問外部類中的static成員。出現了訪問侷限。

 

       在外部其他類中,如何直接訪問static內部類的非靜態成員呢?

          new Outer.Inner().function();

 

       在外部其他類中,如何直接訪問static內部類的靜態成員呢?

          uter.Inner.function();

 

       注意:當內部類中定義了靜態成員,該內部類必須是static的。

             當外部類中的靜態方法訪問內部類時,內部類也必須是static的。

       

       當描述事物時,事物的內部還有事物,該事物用內部類來描述。因爲內部事務在使用外部事物的內容。

       如果一個類繼承內部類,則創建該類的對象時需提供一個外部類的對象作爲構造方法的參數。如:

          class Car{
                                                           classWheel{ }
                                              }

                                              classSuperWheel extends Car.Wheel{
                                                           SuperWheel(Carcar){
                                                           car.super();
                                                           }

                                                           publicstatic void main(String [] args){
                                                            Carcar = new Car();
                                                           SuperWheelwl = new SuperWheel(car);
                                                           
                                              }

 

匿名內部類:

    1、匿名內部類其實就是內部類的簡寫格式。

    2、定義匿名內部類的前提:內部類必須是繼承一個類或者實現接口。

    3、匿名內部類的格式:  new 父類或者接口(){定義子類的內容}

    4、其實匿名內部類就是一個匿名子類對象。而且這個對象有點胖。可以理解爲帶內容的對象。

    5、匿名內部類中定義的方法最好不要超過3個。

    如:

              classConstant{          
                                             intn;                        
                                             Constant(inti){             
                                                           n=i;                      
                                             }
                               }


                               publicclassThing{                    
                              ConstantgetConstant(){       
                                            returnnew Constant(5){    
                                                          intn=5;                      
                                            };
                                             }
                             public static voidmain(String[]args){           
                                            Thingth=newThing();                            
                                                          System.out.println(th.getConstant().n);;        
                                              }
                              }

 

---------------------- ASP.Net+Android+IOS開發.Net培訓、期待與您交流! ----------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章