2015-05-08 4 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(); 




    } 

} 

Как я бегу программа результат:

Rock 
Pop 
Dodano utwór: 'Stockholm Syndrome' do listy: Rock 
Dodano utwór: 'Absolution' do listy: Rock 
Dodano utwór: 'Loud Like Love' do listy: Rock 
Dodano utwór: 'Blank Space' do listy: Pop 
Dodano utwór: 'Sugar' do listy: Pop 
Dodano utwór: 'Budapest' do listy: Pop 
Utwory z listy Rock: 
null (null) [null] 
null (null) [null] 
null (null) [null] 
Utwory z listy Pop: 
null (null) [null] 
null (null) [null] 
null (null) [null] 

Почему эти переменные не сохранить в Ut класс? Я боролся с этим в течение часа, и я не собираюсь решать это самостоятельно, пожалуйста, помогите.

ответ

3

Backwards назначение в конструкторе 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; 
} 

Интересно, что вы правильно поняли свой класс Playlist.

Очень понравился вопрос, кстати.

Смежные вопросы