我用Java编写了一个notebook
类,其中包含一个笔记本的属性(其中3个),要求用户输入它们,然后它包含一个显示它们的函数。
第二个类notebookArray
声明一个notebook
上面声明的类型的数组。问题是,在读取许多元素然后要显示它们之后,数组的每个元素都包含上次读取的属性。
以下是代码:
笔记本类
import java.util.Scanner;
public class notebook{
static String colour;
static String company;
static String model;
static void readOne(){
System.out.println("Company?");
Scanner in=new Scanner(System.in);
company=in.next();
System.out.println("Model?");
model=in.next();
System.out.println("Colour?");
colour=in.next();
}
static void showOne(){
System.out.println(company);
System.out.println(model);
System.out.println(colour);
}
}
notebookArray.class
import java.util.*;
public class notebookArray{
static List<notebook> arrayOfNotebooks=new ArrayList<>();
static int n;
static notebook a;
public static void main(String[] args){
addMore();
showMore();
}
static void addMore(){
System.out.println("How many notebooks would you like to add?");
Scanner keyboard=new Scanner(System.in);
n=keyboard.nextInt();
for(int i=0;i<n;i++)
{
a=new notebook();
a.readOne();
arrayOfNotebooks.add(a);
}
}
static void showMore(){
for(notebook p : arrayOfNotebooks)
{
p.showOne();
}
}
}
感谢您的帮助!
您的问题是您notebook
班上的静态成员:
static String colour;
static String company;
static String model;
删除static关键字,因为您希望每个notebook
实例的成员具有不同的值。
你的方法readOne
和showOne
不应该是静态两种,因为它们应与非静态成员的工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句