class Wardrobe { ArrayList<clothes> clothesList = new ArrayList<>(); //添加的函数 public Wardrobe() { String name = null; String color = null; int size = 0; clothes newClothes=new clothes(name,color,size); addClothes(newClothes); } public void addClothes(clothes Clothes) { clothesList.add(Clothes); } //删除的函数 public void removeClothes(int index) { //提供了删除方法 clothesList.remove(index); } //查看的函数 public void listClothes() { //添加默认衣服 Scanner scanner=new Scanner(System.in); //提供了查看方法 //通过进行for循环来查看多件衣服衣服 //for循环的实现 for (int i = 0; i < clothesList.size(); i++) { //获取衣服的属性 clothes clothes =clothesList.get(i); //输出衣服 System.out.println((i + 1) + ". " + clothes.getName() + " (" + clothes.getColor() + ", " + clothes.getSize() ); } }为什么添加的衣服都是nullnull 0
时间: 2024-05-01 07:20:00 浏览: 63
在Wardrobe类的构造函数中,创建了一个新的clothes对象,但是在创建时并没有给它赋值,因此它的属性默认值都是null和0。这个新的clothes对象被添加到了clothesList中,因此当listClothes()方法被调用时,会输出这个默认值的clothes对象。要解决这个问题,应该在创建clothes对象时,给它的属性赋上实际的值。例如,可以通过构造函数的参数来传递clothes对象的属性值。
相关问题
class Wardrobe { private ArrayList<clothes> clothesList = new ArrayList<>(); //添加的函数 public void addClothes(clothes Clothes) { //提供了添加方法 //该方法创建了衣物 clothesList.add(Clothes); } //删除的函数 public void removeClothes(int index) { //提供了删除方法 clothesList.remove(index); } //查看的函数 public void listClothes() { //添加默认衣服 Scanner scanner=new Scanner(System.in); clothes newClothes = new clothes("默认衣物", "黑色", 38); addClothes(newClothes); //无法录入衣物怎么修改
在你的代码中,已经提供了添加衣物的方法,但是在查看函数中添加默认衣物的代码不应该放在这个位置。你需要将添加默认衣物的代码放在Wardrobe类的构造函数中,这样每次创建一个新的Wardrobe对象时都会自动添加这个默认衣物。修改后的代码如下:
```
class Wardrobe {
private ArrayList<clothes> clothesList = new ArrayList<>();
public Wardrobe() {
// 添加默认衣物
clothes newClothes = new clothes("默认衣物", "黑色", 38);
addClothes(newClothes);
}
// 添加的函数
public void addClothes(clothes Clothes) {
clothesList.add(Clothes);
}
// 删除的函数
public void removeClothes(int index) {
clothesList.remove(index);
}
// 查看的函数
public void listClothes() {
System.out.println("衣柜中的衣物列表:");
for (clothes c : clothesList) {
System.out.println(c);
}
}
}
```
这样,每次创建一个Wardrobe对象时,都会自动添加一个默认衣物,并且可以使用listClothes()方法来查看衣柜中的所有衣物。
class Wardrobe { private ArrayList<clothes> clothesList = new ArrayList<>(); //添加的函数 public void addClothes(clothes Clothes) { //提供了添加方法 //该方法创建了衣物 clothesList.add(Clothes); } //删除的函数 public void removeClothes(int index) { //提供了删除方法 clothesList.remove(index); } //查看的函数 public void listClothes() { //添加默认衣服 Scanner scanner=new Scanner(System.in); //提供了查看方法 //通过进行for循环来查看多件衣服衣服 //for循环的实现 for (int i = 0; i < clothesList.size(); i++) { //获取衣服的属性 clothes clothes =clothesList.get(i); //输出衣服 System.out.println((i + 1) + ". " + clothes.getName() + " (" + clothes.getColor() + ", " + clothes.getSize() ); } }为什么不能录入衣物怎么修改
要添加一个函数或方法来让用户录入衣物的属性,您可以添加一个名为addNewClothes()的函数,该函数接收用户的输入并创建一个新的clothes对象,最后将其添加到clothesList列表中。以下是一个可能的修改版本:
```
import java.util.Scanner;
public class Wardrobe {
private ArrayList<clothes> clothesList = new ArrayList<>();
public void addClothes(clothes Clothes) {
clothesList.add(Clothes);
}
public void removeClothes(int index) {
clothesList.remove(index);
}
public void listClothes() {
for (int i = 0; i < clothesList.size(); i++) {
clothes clothes = clothesList.get(i);
System.out.println((i + 1) + ". " + clothes.getName() + " (" + clothes.getColor() + ", " + clothes.getSize() + ")");
}
}
public void addNewClothes() {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the name of the clothes: ");
String name = scanner.nextLine();
System.out.print("Enter the color of the clothes: ");
String color = scanner.nextLine();
System.out.print("Enter the size of the clothes: ");
String size = scanner.nextLine();
clothes newClothes = new clothes(name, color, size);
addClothes(newClothes);
}
}
```
现在,您可以在需要添加新衣物时调用addNewClothes()函数。
阅读全文