2014-02-07 28 views
-1

好的,所以我需要幫助的是類和方法之間的關係。我聽說過關聯和聚合,但我不知道如何使用它們,或者即使它們適用於此代碼。Java初學者 - 有關特定代碼的關係和其他問題

另外,我想知道super()是什麼,p3=p3Inclass Pgm2

public class Pgm1 { 

    public Pgm1() { 
     System.out.println("Konstruktor Pgm1"); 
    } 

    public void skriv() { 
     System.out.println("Skriv i Pgm1"); 
    } 

    public static void main(String[] args) { 
     Pgm3 p3=new Pgm3(); 
     p3.skriv(); 
     Pgm4 p4=new Pgm4(p3); 
     p4.skriv(); 
     Pgm2 p2=new Pgm2(); 
     p2.skriv(); 
    } 

} 

public class Pgm2 { 

    private Pgm1 p1; 

    public Pgm2() { 
     p1=new Pgm1(); 
     System.out.println("Konstruktor Pgm2"); 
    } 

    public void skriv() { 
     System.out.println("Skriv i Pgm2"); 
    } 

} 

public class Pgm3 { 

    public Pgm3() { 
     System.out.println("Konstruktor Pgm3"); 
    } 

    public void skriv() { 
     System.out.println("Skriv i Pgm3"); 
    } 

} 

public class Pgm4 extends Pgm2 { 

    private Pgm3 p3; 

    public Pgm4(Pgm3 p3In) { 
     super(); 
     p3=p3In; 
     System.out.println("Konstruktor Pgm4"); 
    } 

    public void skriv() { 
     System.out.println("Skriv i Pgm4"); 
    } 

} 

回答

0

Pgm1,Pgm2Pgm3都是非常正常的類。然而類Pgm4擴展Pgm2這意味着Pgm4Pgm2的子類。想想這就像一個動物園模擬器程序,你可能有一個類叫做Animal或類似的東西,然後是很多其他類來擴展它。這些類的一些例子可能是我在模擬器中的Lion,Tiger,Bear(哦我的)以及這些特定動物類中的每一個都是動物。

​​聲明(與其他人指出的一樣)調用您擴展的類的構造函數。最後,p3=p3In;行將Pgm4類中的變量分配給通過構造函數傳遞給類的任何內容。希望有所幫助!

0

​​呼叫構造(無參數)基類的(在這種情況下,Pgm2)。

p3=p3In;p3In的值賦予類變量p3

0
super() 

是super關鍵字的特殊用法,您可以在其中調用無參數的父構造函數。通常,super關鍵字可用於調用重寫的方法,訪問隱藏的字段或調用超類的構造函數。