谁能告诉我为什么数据定义类中titles数组的数组大小不等于用户输入的数据从传入的值实现类并将其设置为数据定义类中的实例变量?用户输入数组大小的输入,但数组大小不等于用户输入
这是数据定义类。
public class Photograph {
private int maxTakes;
public Photograph() {
this.titles = new String[this.maxTakes];
numPhotosTaken = 0;
}
public void setMaxTakes(int maxTakes) {
this.maxTakes = maxTakes;
}
public boolean setTitle(String title) {
if (this.numPhotosTaken < this.titles.length) {
this.titles[numPhotosTaken] = title;
numPhotosTaken++;
return true;
}
else {
return false;
}
}
}
这是实现类。
import javax.swing.JOptionPane;
public class MakePhotographs {
public static void main (String[] args) {
Photograph photo;
do {
photo = create();
} while (JOptionPane.showConfirmDialog(null, "Enter another couple?") == JOptionPane.YES_OPTION);
}
private static Photograph create() {
Photograph photo = new Photograph();
photo.setMaxTakes(Integer.parseInt(JOptionPane.showInputDialog("Enter maximum number of photos to take")));
do {
String title = JOptionPane.showInputDialog("Enter title of photo");
if (!photo.setTitle(title)) {
JOptionPane.showMessageDialog(null, "No more photos allowed!");
}
} while (JOptionPane.showConfirmDialog(null, "Enter another photo?") == JOptionPane.YES_OPTION);
return photo;
}
}
你能告诉是什么让你觉得尺寸不一样吗?输出/错误堆栈? – user2004685
您的数组在构造函数中使用值“maxTakes”进行初始化,该值在构造函数被调用时为0. – KevinO
当我尝试输入照片的标题时,总会提示错误消息“没有更多的照片允许“ – ush