新手在这里做Java作业。我有一个名为 Album 的类,其中包含以下构造函数:
public class Album {
private String title;
private String artist;
private String genre;
private Song favoriteTrack;
private int trackNumber;
private static int numAlbums;
//Constructors
public Album(String title, Song favoriteTrack, int trackNumber) {
this.title = title;
this.favoriteTrack = favoriteTrack;
this.trackNumber = trackNumber;
artist = favoriteTrack.getArtist();
genre = favoriteTrack.getGenre();
numAlbums++;
}
public Album(String title, Song favoriteTrack) {
this(title, favoriteTrack, 1);
}
...}
然后我有一个第二类 MusicCollection,它在其主要方法中实例化了专辑类三次......
public static void main (String[] args) {...
Album album1 = new Album("Debut", "Venus as a Boy", 3);
Album album2 = new Album("Homework", "Around the World", 7);
Album album3 = new Album("Ghost in the Machine", "Invisible Sun", 3);
...}
但是,当我尝试编译 MusicCollection.java 时,出现错误:
cannot find symbol
symbol : constructor Album(java.lang.String,java.lang.String,int)
location : class Album
每次我尝试调用构造函数时。 类Album 和MusicCollection 位于同一目录中,并且Album.java 可以编译。 我想我正在做一些愚蠢的事情,但我无法弄清楚这一点。 任何帮助将不胜感激!
最佳答案
您定义的构造函数的第二个参数是 Song
,而不是 String
,但在您的 main 中,您尝试使用 String
实例化它> 作为第二个参数。
关于Java:找不到符号(构造函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9321547/