变量内容不持久

Variable contents not being persistent

我在尝试将用户输入保存到变量中然后访问该变量的内容时遇到了一些麻烦。基本上,用户输入有关歌曲的详细信息,然后将其保存在下一个可用的歌曲插槽中(总共 4 个插槽)。但是当我检查一个插槽是空的还是已满时,它总是空的,因为最后一首歌的详细信息还没有保存。

代码:

歌曲数据库class:

if (song1.getFileSize() == 0) {        
    System.out.println("Name of song:");
    song1.setName(console.next());

    System.out.println("Artist:");
    song1.setArtist(console.next());

    System.out.println("File size (MB):");
    song1.setFileSize(console.nextInt());

    System.out.println("Duration (seconds):");
    song1.setDuration(console.nextInt());
}

else if (song2.getFileSize() == 0) {        
    System.out.println("Name of song:");
    song2.setName(console.next());

    System.out.println("Artist:");
    song2.setArtist(console.next());

    System.out.println("File size (MB):");
    song2.setFileSize(console.nextInt());

    System.out.println("Duration (seconds):");
    song2.setDuration(console.nextInt());
}

else if (song3.getFileSize() == 0) {        
    System.out.println("Name of song:");
    song3.setName(console.next());

    System.out.println("Artist:");
    song3.setArtist(console.next());

    System.out.println("File size (MB):");
    song3.setFileSize(console.nextInt());

    System.out.println("Duration (seconds):");
    song3.setDuration(console.nextInt());
}

else if (song4.getFileSize() == 0) {        
    System.out.println("Name of song:");
    song4.setName(console.next());

    System.out.println("Artist:");
    song4.setArtist(console.next());

    System.out.println("File size (MB):");
    song4.setFileSize(console.nextInt());

    System.out.println("Duration (seconds):");
    song4.setDuration(console.nextInt());
}

else {
    System.out.println("The database is currently full. Please delete a song before adding a new one.");
}

歌曲class:

public void setName(String inputName) {
    name = inputName;
}

public String getName() {
    return name;
}

public void setArtist(String inputArtist) {
    artist = inputArtist;
}

public String getArtist() {
    return artist;
}

public void setFileSize(int inputFileSize) {
    fileSize = inputFileSize;
}

public int getFileSize() {
    return fileSize;
}

public void setDuration(int inputDuration) {
    duration = inputDuration;
}

public int getDuration() {
    return duration;
}

我是否需要在 get/set 方法中添加另一个参数,还是我做错了什么?任何帮助将不胜感激,谢谢!

最好的方法是使用构造函数

song1 = new song("Name of song:","Artist:","File size (MB):","Duration (seconds):")

其他对象也一样

然后,您需要在歌曲中添加一个方法class

public boolean isEmpty() {
        if (this.name == null && this.artist == null && this.fileSize == null && this.duration == null ) return true;
        else return false;
    }