gpt4 book ai didi

java - java中的构造函数问题

转载 作者:行者123 更新时间:2023-11-30 08:13:09 25 4
gpt4 key购买 nike

我最近才开始学习 java,如果这是愚蠢的问题,请原谅我,我在 3 个文件中有 3 个类。第一个

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();
}
}
}

最后是 main

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]

为什么这些变量不保存在 Utwor 类中?我已经为此苦苦挣扎了一个小时,我不会自己解决它,请帮忙。

最佳答案

在为字段(null)分配参数变量时,在 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 类中做对了。

顺便提一下,问得好。

关于java - java中的构造函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30113957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com