我想做this之类的事情:
创建一个具有以下属性的类:
String name; int atomicNumber; String symbol; double mass;
创建初始值设定项,以便您只需执行
new Element("Hydrogen", 1, "H", 1.0079)
和toString
方法。现在为每个元素创建一个对象。请注意,现在,每个元素只有一行代码。您可以将它们存储在一个数组中(或使用该名称作为键的字典)。
当用户输入名称时,您可以在数组中查找它(或者只是从字典中的键中获取值)并在对象上调用
toString
。为什么这样?想象一下,现在你必须在输出中添加一行,每个原子的价电子数。这将需要toString中的一行或两行,而不是每个元素一行。
我该怎么做呢?具有属性的类会是什么样的?
我试过制作一个:
public class Structure {
String name;
int age;
String color;
public void add(String name, int age, String color) {
this.name = name;
this.age = age;
this.color = color;
}
}
但是我不太确定如何继续,而Structure.add("Adele",25,"Grey");
可以正常工作,但与另一个人一起工作会覆盖数据。
答案 0 :(得分:1)
您想要为每个元素创建一个新对象。因此,班级"添加"方法,不应该被称为"添加"。因为它不会添加任何东西。相反,让我们做一个构造函数。像这样:
public Structure(String name, int age, String color) {
//The inside stays the same
}
现在我们可以制作这样的对象:
Structure s = new Structure("matthew", 22, "BLUE");
我们可以将这些对象存储在这样的数组中:
Structure[] structures = new Structures[numStructures];
for(int i = 0; i < numStructures; i++) {
structures[i] = new Structure("whatever", 99, "some color")l
}
答案 1 :(得分:0)
您应该在列表中存储多个Structure
个对象。
public class Structure {
String name;
int age;
String color;
public Structure(String name, int age, String color) {
this.name = name;
this.age = age;
this.color = color;
}
}
然后,在你正在创建对象的地方。
List<Structure> list = new ArrayList<>();
list.add(new Structure("john",25,"blue"));
list.add(new Structure("sally",15,"green"));
list.add(new Structure("mark",35,"red"));
答案 2 :(得分:0)
类的关键是你可以创建该classtype的新对象。在Java中,您可以创建类的实例,如下所示:
Structure instance1 = new Structure();
在您的情况下,您有一个add
方法,因此您可以在新对象上调用它来设置其属性:
instance1.add("Adele", 25, "Grey");
但定义构造函数更有意义:
public Structure(String name, int age, String color) {
this.name = name;
this.age = age;
this.color = color;
}
我建议您阅读一些基本的object-oriented programming concepts。
答案 3 :(得分:0)
你的第34次尝试&#34;应该是
public class Structure {
String name;
int age;
String color;
public Structure(String name, int age, String color) {
this.name = name;
this.age = age;
this.color = color;
}
}
不是编写方法add,而是创建构造函数:没有返回类型(删除void
),并且必须使用与类名相同的名称。
对于您的问题,请使用属性name, atomicNumber, symbol and mass
,而不是示例中的属性name, age and color
。您还必须使用班级名称Element
而不是Structure
。