class states{
List<String> cities = new ArrayList<String>();
public void add_city(String current_city){
this.cities.add(current_city);
}
}
class add_values{
public static void main(String [] args){
System.out.println("Enter the state name : ");
Scanner sc = new Scanner(System.in);
String user_state = sc.nextLine(); // need to create an object with the name from a string value
states user_state = new states();
....
....
}
}
是否可以使用字符串中的名称为类创建对象。
如果用户输入状态名称为&#34;密歇根州&#34;,则使用&#34;密歇根州&#34;创建一个对象。这是从扫描仪获得的。可以为密歇根州增加城市和城市。
答案 0 :(得分:4)
您需要了解对象没有名称 - none,zero,zip。是的,变量可以有名称,但这是不一样的,因为两个或多个变量可以引用同一个对象,当发生这种情况时,哪个名称是对象的名称?同样,没有/ none,因为对象没有名称。至于变量名,它们的重要性不如你所认为的那么重,而且几乎在编译代码中不存在。最重要的是对象 引用 。这里的对象 可以与HashMap<String, String>
,类似于使用String作为其数组的ArrayList或ArrayList索引而不是数字。
现在已经说过了,你可以给你的State类一个String name字段,这可能很适合你的用途。
即,
import java.util.ArrayList;
import java.util.List;
public class State {
private String name;
private List<String> cities = new ArrayList<>();
public State(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void addCity(String city) {
cities.add(city);
}
public List<String> getCities() {
return cities;
}
@Override
public String toString() {
return "State of " + name + ", Cities: " + cities;
}
}
可以像以下一样运行:
public class StateTest {
public static void main(String[] args) {
State illinois = new State("Illinois");
illinois.addCity("Chicago");
illinois.addCity("Peoria");
illinois.addCity("Springfield");
System.out.println(illinois);
}
}
答案 1 :(得分:0)
您可以使用HashMap
执行不同的操作。希望这有助于实现您的目标。这是代码:
class States{
List<String> cities = new ArrayList<String>();
public void add_city(String current_city){
this.cities.add(current_city);
}
}
class add_values{
public static void main(String [] args){
HashMap<String, States> userStatesMap = new HashMap<String, States>();
System.out.println("Enter the state name : ");
Scanner sc = new Scanner(System.in);
String user_state = sc.nextLine(); // need to create an object with the name from a string value
userStatesMap.put(user_state, new states());
....
....
}
}