第五天作業

             IT十八掌大數據第五天作業

1.文字闡述靜態代碼塊的作用。

  靜態代碼塊在類加載時被調用,用於類的初始化,且只被執行一次

 

2.構造代碼塊與構造函數的調用順序如何?和方法的聲明位置是否有關?爲什麼?構造代碼塊的作用是什麼?

  構造代碼塊執行順序先於構造函數

  構造對象時 先調用構造代碼塊  然後是構造函數

和方法的聲明位置無關

  構造代碼塊的作用是對成員變量進行初始化

  可以存放多個構造方法的共同代碼 ,提升代碼的重複性

 

3.類加載時,是否一定會執行靜態代碼塊?如何手動控制類加載?

  類加載時靜態代碼塊不一定被執行

  手動控制類加載使用Class.forName("classname"),默認加載類時,執行代碼塊。

 Class.forName(String,boolean initialize,ClassLoader)可以控制加載時是否初始化,並執行靜態代碼塊。

 

4.定義類Person,Man,Woman形成繼承關係。

 

代碼:

/**

 * Extends

 */

classPerson {

         public String name="Bruce";

         public int age=80;

         public Person(){

                  System.out.println("newPerson");

         }

         public void eat(){

                  System.out.println("eat");

         }

}

 

 

classMan extends Person{

         public String behaviour ="working";

 

         public Man(){

                  System.out.println("newMan");

         }

         public void eat(){

                  //super.eat();

                  System.out.println("Maneat");

         }

        

    public void ShowMan(String  name,int age,String  behaviour){

                 

                  System.out.println("manname is "+name+" , age is "+String.valueOf(age)+",behaviour is "+behaviour);

         }

        

}

 

classWoman extends Person{

         public String behaviour ="Shopping";

 

         public Woman(){

                  System.out.println("newWoman");

         }

         public void eat(){

                  //super.eat();

                  System.out.println("Womaneat");

         }

        

         public void ShowWoman(String  name,int age,String  behaviour){

                 

                  System.out.println("Womanname is "+name+" , age is "+String.valueOf(age)+",behaviour is "+behaviour);

         }

 

        

}

 

classExtendsTest{

         public static void main(String[] args){

 

            Man man=new Man();

                 

                  Woman woman=new Woman();

 

                  man.eat();

                 

                  man.name="Kal";

                 

                  man.age=95;

                 

                  man.ShowMan(man.name,man.age,man.behaviour);

                 

                  woman.eat();

                 

                  woman.name="Kistina";

                 

                  woman.age=100;

                 

                  woman.ShowWoman(woman.name,woman.age,woman.behaviour);

                 

 

                 

         }

}

 

執行結果:

spacer.gif

 

 

Java文件

 

5.什麼是抽象方法?什麼是抽象類?抽象類是否有構造函數,是否可以重載?

  抽象方法:沒有方法體的方法。必須使用abstract修飾。

  抽象類:抽象方法只能存在於抽象類中。抽象類也必須要使用abstract修飾。

  有抽象方法的一定是抽象類,抽象類不一定有抽象方法

  抽象類有構造函數並且可以重載。

 

6.抽象修飾符有哪些非法組合?並給出合理的解釋?

  abstract + static 是非法的修飾符組合。

  abstract + final  是非法的修飾符組合。

  abstract + private是非法的修飾符組合。

  abstract修飾過的方法或類必須要被繼承並實現,但被final修飾過的是最終的,不能更改

  final修飾過的類或方法不能被繼承因此abstract + final是非法的修飾符組合;


  abstract修飾過的方法或類必須要被繼承並實現,但被private修飾過的類或方法是私有的,

  不能被繼承因此abstract + static 是非法的修飾符組合;


  abstract修飾過的方法或類必須要被繼承並實現並且包含abstract方法的類也必須是抽象類

  ,因此這個類不能被實例化,但加上static修飾後通過類名就可以創建對象進行實例化,相互

  矛盾,因此abstract + static 是非法的修飾符組合

 

7.superthis作用以及用法以及注意事項?

 super : 超類,作用方面類似於this.

                  super(...): 訪問超類的構造函數.只能用在第一行。默認是super();

 this是隻想對象自身的引用

                  this:指向對象自身的引用。

                  this(...)表示的是調用當前類的構造函數.只能用在第一行。默認this();

 

8.定義接口

         1.IWhite

         2.IRich

         3.IBeanti

         4.定義類,實現以上三個接口.(WomenStar)

         5.定義土豪類(EarchRicher.marring(...))

05_interface.java

代碼:

 

 

/**

   * 定義接口

*/

 interface IWhite{

         public static final booleaniswhite=true;

          

          

         public void IWhite(boolean iswhite);

          

 }

 

 interface IRich{

          public static final boolean isrich=true;

          

          public void IRich(boolean isrich);

 

 }

 

 

 interface IBeanti{

          public static final boolean isbeautiful=true;

          

     public void IBeanti(boolean isbeautiful);

          

 }

 

 

  interface IBFM extends IWhite,IRich,IBeanti{

          

 }

 

 

 

classWomenStar implements IBFM{

        

      public void IWhite(boolean iswhite){

                   

                    System.out.println("WomenStar white is"+String.valueOf(iswhite));

                   

          }

        

          public void IRich(boolean isrich){

                   

                    System.out.println("WomenStar  rich is "+String.valueOf(isrich));

          }

          

          public void IBeanti(boolean isbeautiful){

                   

                    System.out.println("WomenStar beautifulis "+String.valueOf(isbeautiful));

                   

          }

          

          public static boolean getIswhite(){

                   

                    return iswhite;

                   

          }

          

          

         public static boolean getIsrich(){

                   

                    return isrich;

                   

          }

          

         public static boolean getIsbeautiful(){

                   

                    return isbeautiful;

                   

          }

          

                      

}

        

 

classEarchRicher{

        

         public     voidmarring(WomenStar woman){

                 

                 

                 

                  if(woman.getIswhite()&&woman.getIsbeautiful()&&woman.getIsrich())

                         

                  System.out.println("marringsuccess");

                 

                  elseSystem.out.println("marring fialed");

                 

                 

         }

        

        

}

 

classintefaceTest{

 

        

          public static void main(String[] args){

                   

                    WomenStar ws =new WomenStar();

                   

                    EarchRicher er= new EarchRicher();

                   

                    ws.IWhite(ws.iswhite);

                   

                    ws.IRich(ws.isrich);

                   

                    ws.IBeanti(ws.isbeautiful);

                   

                    er.marring(ws);

 

          }

        

}      

          

                   

 

執行結果:

spacer.gif

 

 


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