我创建了一个名为Album的类,这是一个类:
public class Album {
private String Titulo;
private int temas;
private int ano;
public Album(String Titulo2, int temas2, int ano2) {
this.Titulo = Titulo2;
this.temas = temas2;
this.ano = ano2;
}
public Album(String Titulo2, int temas2) {
this.Titulo = Titulo2;
this.temas = temas2;
}
public int getAno() {
return this.ano;
}
public int getTemas() {
return this.temas;
}
public String getTitulo() {
return this.Titulo;
}
public void setAno(int ano) {
this.ano = ano;
}
public boolean foiEditadoNesteSeculo() {
if (this.ano > 2000) {
return true;
} else {
return false;
}
}
public void adicionaTemasBonus(int x) {
this.temas += x;
}
public void mostraAlbum() {
System.out.println(this.Titulo + " (editado em " + this.ano + "; tem " + this.temas + " temas)");
}
}
它工作正常。问题是老师要求我创建一个新的班级Band
,它必须有一系列的相册。Band对象应使用一个表示专辑数量(数组长度)限制的int声明。我已经对如何使用数组有了一些想法,但是对于如何创建一个包含另一个类的对象的数组类型,以及如何使用对象的属性返回某些东西,我还是一无所知。我想我可以在正确创建类之后弄清楚其余的部分。
抱歉,正如葡萄牙语中描述的那样,我在翻译方面没有太多经验。
我认为使用a会更容易管理,List
因此您可以随时添加Albums
任意数量的内容,但是由于问题陈述需要Array
我举了一个Band
类的示例。
我还在类main
的底部包括了测试程序的方法Band
:
public class Band {
private int totalAlbums;
private Album[] albums;
private int currentNumberOfAlbums;
public Band(int totalAlbums) {
this.totalAlbums = totalAlbums;
this.albums = new Album[totalAlbums];
this.currentNumberOfAlbums = 0;
}
public Band(Album[] albums) {
this.totalAlbums = albums.length;
this.albums = albums;
this.currentNumberOfAlbums = this.totalAlbums;
}
public void addNewAlbum(String titulo, int temas, int ano) {
if (this.currentNumberOfAlbums == totalAlbums) {
System.out.println("Warning: Cannot add any more albums, limit reached.");
return;
}
this.albums[this.currentNumberOfAlbums++] = new Album(titulo, temas, ano);
}
public void printAlbums() {
for (Album a : this.albums) {
a.mostraAlbum();
}
}
public static void main(String [] args) {
Band b = new Band(3);
b.addNewAlbum("The First", 4, 2001);
b.addNewAlbum("The Second", 98, 2055);
b.addNewAlbum("The Finale", 12, 2011);
b.addNewAlbum("The Extra", 12, 2111);
b.printAlbums();
}
}
在此代码中有一些需要注意的地方。
首先,要解决您的直接问题,您可以像使用任何其他类/基元一样,将自定义类简单地用作数组Album[]
。
其次,您将需要一个Band
构造函数,该构造函数Album
根据传递给它的整数实例化的数组,因此您知道有多少张专辑是有限的。您可以在this.albums = new Album[totalAlbums];
一行中看到它。
接下来,您需要一种将新添加Album
到的数组的方法Album[]
。可以通过几种不同的方法完成此操作,但是我选择的方法addNewAlbum(String, int, int)
是为该示例创建一个执行此操作的方法currentNumberOfAlbums
,1
每次添加新专辑时该方法也会增加。这很有用,这样您就可以知道何时Album
已尝试添加an ,即使an totalAlbums
已满!ArrayIndexOutOfBoundsException
如果addNewAlbum
调用太多时间,这将防止您的代码中出现。
最后,addNewAlbum
您需要使用调用Album
构造函数new Album(titulo, temas, ano)
。
在我的示例中main
,创建了一个Band
具有3
专辑数量限制的文件,并4
尝试将专辑添加到其中,成功添加了前三个文件,未添加第四个文件,而是打印了超出限制的警告。
我还添加了printAlbums()
将使用你的方法mostraAlbum()
来打印每个Album
中albums
排列。
输出:
Warning: Cannot add any more albums, limit reached.
The First (editado em 2001; tem 4 temas)
The Second (editado em 2055; tem 98 temas)
The Finale (editado em 2011; tem 12 temas)
编辑:
我添加了Band(Album[] albums)
构造函数,可以使用以下命令调用它:
Album[] albums = new Album[3];
//Add your albums into this variable
Band b = new Band(albums);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句