2014-04-19 3 views
1

나는 인터넷에서 책과 비디오를 통해 Java를 가르치고 있습니다. 나는 꼬리표 코드가 잘못되었다는 것을 알고있다. 그러나 이것과 같은 변수에서 객체 이름을 읽으려면 어떻게해야합니까?java : 스캐너 입력에서 객체 이름 가져 오기

public static void main(String[] args) { 

    Scanner input =new Scanner (System.in); 

    String ObjectName=input.next(); 

    className ObjectName=new className(); 

ᴋᴇʏsᴇʀ, Pshemo, 브라이언 Vanover 나는

public static void main(String[] args) { 

    Scanner input =new Scanner (System.in); 

    System.out.println("Please Enter ID"); 
    int id=input.nextInt(); 
    System.out.println("Please Enter Name"); 
    String name = input.next(); 
    System.out.println("Please Enter Balance"); 
    double balance = input.nextDouble(); 

String client=input.next(); 
BankAccount client = new BankAccount (id,name,balance);// i know this code line is worng 

client.printStatement(); 
+0

시작하지만 프로그래머가 일반적으로 일을 할 방법이 아니다. 왜 변수 이름을 검사하고 싶습니까? 당신은 초보자이기 때문에 당신이 원하는 것이 아닌 것 같아요. – keyser

+0

나는 내 질문을 편집 – Xzero

+0

"*이 코드 줄은 잘 모르겠다 *"왜 그것이 틀렸다고 생각하니? 어떤 오류가 발생합니까? String 참조의 이름으로 이미'client'를 사용했다면'BankAccount' 클라이언트의 이름을 지정하려고하는 이유는 무엇입니까? – Pshemo

답변

2

당신이 클래스의 인스턴스를 생성하는 방법을 요구하는 경우,이 코드 클래스는 BankAccount라는 이름의 또 다른 기본 클래스가 내 질문에

을 편집 클래스 이름만을 기반으로 시도해보십시오.

Scanner input =new Scanner (System.in); 
String className = input.nextLine(); 
Class<?> clazz = Class.forName(className); 
Object o = clazz.newInstance(); 

이제 요 u가 full.package.name.of.YourClass을 전달하고이 클래스에 인수가없는 생성자가 액세스 가능한 경우 newInstance 메소드를 통해 인스턴스를 생성 할 수 있어야합니다.


편집.

사용자가 제공 한 이름으로 개체를 저장하려는 것으로 보입니다. 변수 이름으로 명시 적으로 지정할 수는 없지만 String에서 yourObject까지 Map 인터페이스를 사용하여 일부지도를 만들 수 있습니다.

Scanner input = new Scanner(System.in); 

System.out.println("Please Enter ID"); 
int id = input.nextInt(); 
System.out.println("Please Enter Name"); 
String name = input.next(); 
System.out.println("Please Enter Balance"); 
double balance = input.nextDouble(); 

String client = input.next(); 
BankAccount clientAccount = new BankAccount(id, name, balance); 

client.printStatement(); 

Map<String,BankAccount> map = new HashMap<>(); 
map.put(client, clientAccount); 

나중에 그냥 map.get를 사용하여 클라이언트의 계정을 얻을이 논리는 경우가 될 것이다 enum 또는 if-logic를 사용하여 처리 할 수 ​​있습니다

map.get(client).getID();//assuming that you have getter for ID 
+0

내 질문 편집 – Xzero

0

같은 계정 정보를 얻을 수 있습니다처럼 코드를 볼 수 있습니다

public static void main(String[] args) { 
    Scanner input =new Scanner (System.in); 
    String objectName = input.next(); 

    if (ObjectName.equals("obj1")) { 
    Obj1 myObject = new Obj1(); 
    } else { 
    Obj2 myObject = new Obj2(); 
    } 
0

첫 번째 파일 이름 Out.java & 초 : 확인 당신은 가능한 입력의 제한된 수의 예상되는 경우 파일 이름은 // 첫 번째 파일의 코드 in.java 당신이 요구하는지 무엇을 할 수있을 여기

public class Out { 

public static void main(String[] args) { 


    in inObject =new in(); 
    inObject.ikl(); 

} 



} 

//second file's code start here 
import java.util.Scanner; 

      public class in { 

     public static int ikl() { 

    Scanner input=new Scanner(System.in); 

    int j=input.nextInt(); 
    System.out.println(j); 

    return j; 
} 

    } 
+0

안녕하세요! 당신의 포스트가 질문에 전혀 대답하지 않는 것처럼 보입니다. 그것은'Scanner '를 사용하고 Object 이름을 얻지 못하는 샘플 코드처럼 보입니다. 코드는 문제의 코드와 매우 유사합니다. – Leigh

관련 문제