2013-12-03 2 views
1

Я хочу создать новый объект и дать ему имя пользователя.Как создать новое имя объекта по пользовательскому вводу

Пример пользовательского ввода «роберт» Виль сопрягать к:

Action robert = new Action(); 
robert.eat(); 

Что мне нужно изменить в программе, так что я могу создать новый объект с динамическим именем? Большое спасибо. я пишу следующий код:

import java.util.Scanner; 

public class Human { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Scanner user_input = new Scanner(System.in); 

     String first_name; 
     System.out.print("Enter your first name: "); 
     first_name = user_input.next();//robert 

     System.out.println("You are " + first_name);//robert 

     Action first_name = new Action(); 
     Food orange = new Food(); 
     robert.eat(orange); 

    } 

} 
+0

В объектах обычно нет имен. Вы говорите об имени переменной *, которая совершенно иная. Если вы хотите, чтобы ваш объект имел имя, он должен иметь поле, чтобы запомнить его имя, и вы должны, вероятно, передать имя в конструктор. –

+0

Вы ошибаетесь, вы смешиваете имя переменной и имя пользователя! –

+0

Почему вы хотите дать динамическое имя переменной, если никто не увидит ее во время выполнения? – Math

ответ

1

Java, в отличие от других языков, не имеет возможности динамически создавать имена переменных. Имена переменных объявляются в коде. Чтобы достичь того, что вы пытаетесь сделать, загляните в коллекцию Map interface. Это позволит вам «сопоставить» имя пользователя с определенным значением.

Быстрый пример:

//1) Setup the mapping, 
//The first parameter to put() is the key (perhaps a user given name?) 
//and the second parameter is actual value you want to map for that key. 
//note that although I'm using a String as the key and a String as the value 
//You can use pretty much any object as the value. Keys are recommended to be 
//immutable objects (a String is a good one) 
Map<String,String> mMap = new HashMap<String,String>(); 
mMap.put("John", "Orange"); 
mMap.put("Steve","Apple"); 

//2) Once the map is setup, you can then retrieve values given a key: 
System.out.println("John's fruit is: "+mMap.get("John")); 

More info here.

+0

Это очень помогает. Большое спасибо. – user2879862

0

имена переменных не может быть указаны (созданные) во время выполнения (динамически).

0

Это невозможно. Как вы можете объявить имя объекта Class в качестве переменной.

Смежные вопросы