2015-05-08 20 views
2

我剛剛開始學習java,所以原諒我,如果它是愚蠢的問題,我有3個文件中的3個類。 第一個在java中使用構造函數的問題

package PLAYLIST1; 

public class Utwor { 
    private String tytul1; 
    private String wykonawca2; 
    private Integer rok3; 

    Utwor(String x, String y, Integer z){ 
     x=tytul1; 
     y=wykonawca2; 
     z=rok3; 
    } 
    public String tytul(){ 
     return tytul1;  
    } 
    public String wykonawca(){ 
     return wykonawca2; 
    } 
    public Integer rok(){ 
     return rok3; 
    } 
    public void piosenka(){ 
     System.out.println(tytul1+" ("+wykonawca2+") ["+rok3+"]"); 
    } 

} 

package PLAYLIST1; 

import java.util.Arrays; 

class Playlist { 
    //ArrayList<String> listaUtworow; 
    Utwor[] listaU = new Utwor[3]; 
    private String lista; 
    private int ileJuzJest = 0; 



    Playlist(String nazwaListy) { 
     //listaUtworow = new ArrayList<String>(); 
     lista = nazwaListy; 
    } 

    public String Nazwa() { 
     return lista; 
    } 

    public void dodajUtwor(String tytul, String album, Integer rok) { 
     listaU[ileJuzJest] = new Utwor(tytul,album ,rok); 
     ileJuzJest++; 
     System.out.println("Dodano utwór: '"+tytul+"' do listy: "+lista); 
    } 



    public void wyswietlListe() { 
     if (ileJuzJest==0) { 
      System.out.println("Lista jest pusta"); 
     } 
     System.out.println("Utwory z listy "+lista+":"); 
     for (int i=0; i<ileJuzJest; i++) { 
      listaU[i].piosenka(); 
     } 
    } 
} 

並最終與主

package PLAYLIST1; 

public class ZarzadzaniePlaylistami { 

    public static void main(String[] args) { 
     Playlist p1 = new Playlist("Rock"); 
     Playlist p2 = new Playlist("Pop"); 

     System.out.println(p1.Nazwa()); 
     System.out.println(p2.Nazwa()); 
     p1.dodajUtwor("Stockholm Syndrome","Absolution",2004); 
     p1.dodajUtwor("Absolution","Going to Hell",2014); 
     p1.dodajUtwor("Loud Like Love","Loud Like Love",2013); 
     p2.dodajUtwor("Blank Space","A",2014); 
     p2.dodajUtwor("Sugar","B",2013); 
     p2.dodajUtwor("Budapest","C",2012); 
     p1.wyswietlListe(); 
     p2.wyswietlListe(); 




    } 

} 

當我運行程序的結果是:

​​

爲什麼這些變量不保存在Ut工人階級?我一直在爲這個小時奮鬥,我不打算自己解決,請幫助。

回答

3

向後你Utwor構造爲你分配領域(空)的參數變量賦值:

Utwor(String x, String y, Integer z){ 
    x=tytul1; 
    y=wykonawca2; 
    z=rok3; 
} 

相反,你應該指定的參數字段,所以它應該是:

Utwor(String x, String y, Integer z){ 
    tytul1 = x; 
    wykonawca2 = y; 
    rok3 = z; 
} 

有趣的是,您在播放列表類中正確無誤。順便說一下,很好地問了一個問題。