我想在一个有多个名字的类中设置一些ID字符串,所以我认为我必须尝试创建一个构造函数(至少,我想是这样)。让我举个例子来展示我想让你看到的东西。 (我不知道这是否是做我想做的最好的方式,
Anotherclass.java
.......
MarilynManson.setSong[3] = "7362bf923";
Slipknot.setSong[76] = "f9434gb394g7b";
非常感谢你。
嗨再次,对不起我的糟糕解释...我真的想尝试它的例子:点击现有的循环列表视图(歌曲1,歌曲2,歌曲3)这就是为什么我想得到一些ID (字符串)来自另一个类,ei(像这样的东西):
{{1}}
非常感谢你的帮助!
答案 0 :(得分:3)
你的课程没什么意义。您尝试设置ID,但您没有要设置的变量ID。
public Music MarilynManson(){
setArtist("MM");
setSongs(new String[220]);
//How to set ID of songs?
}
由于您为其命名,因此这不是构造函数,而是一种期望返回音乐实例的方法。这不是你想要的。
如果你想这样做,你需要为世界上的每个艺术家/歌曲创建一个方法。
你想要的是:
public Music(String artist){
this.artist = artist;
}
public Music(String artist, String[] songs){
this.artist = artist;
this.songs = songs;
}
当然,你需要添加一些getter和setter。
我的建议:将歌曲放入列表而不是数组,这样您就可以添加歌曲而无需每次都创建新数组。
之后,您可以执行以下操作:
public static void main(String[] args){
Music mManson = new Music ("Marilyn Manson", new String[20]);
Music slipknot = new Music("Slipknot", new String[50]);
}
只是一个想法:我会把它变成一个List类型的Song元素(一首歌有a,a,...),而不是字符串。
答案 1 :(得分:0)
您的构造函数需要与您的类具有相同的名称。因此,在您的情况下,您的构造函数方法将是public Music()
。
现在,您希望使用artist
和songs
来实例化您的音乐课程。为此,您需要允许构造函数接收参数。所以你的构造函数现在如下:
public Music(String artist, String[] songs){
this.artist = artist;
this.songs = songs;
}
在调用构造函数时,您可以:
Music myMusic = new Music("Michael Jackson", {"Thriller", "Beat it"});
答案 2 :(得分:0)
让我们以面向对象的方式思考。在你的问题中,你谈论的是三个实体 - 音乐,艺术家和歌曲。所以我们可以得出这样的结论(这就是我的想法):
- 一位艺人可以唱很多歌
- 一个音乐有一个艺术家(可以超过一个,但在你的情况下,让它成为一个)。
醇>
而不是解释很多,我认为你可以通过以下课程理解;如何用正确的方法解决这些问题。这是解决问题的一种方法。您可以按照自己的方式进行设计,(以面向对象的方式思考)。
public class Song{
int id; //id of song
String songName;
//getters and setters
}
public class Artist{
int id;// id for each artist
List<Song> songs;//songs list by this singer
//getters and setters
}
public class Music{
int id;// music id
Artist artist;//artist
//getters and setters
//your logic...
}