2017-12-23 30 views
3

지금 당장은 간단한 Java 뱅킹 프로그램을 만들고 있습니다. 그것은 고객을 추가하고 자금을 예치/인출 할 수있게합니다. 현재, 나는 Main, Bank, Customer의 3 가지 수업을 운영하고 있습니다. 지금 당장 고객을 추가 할 때 이름을 묻는 질문을합니다. 그러나 지금 나는 그들을 지명하는 데 어려움을 겪고있다. 고객이 개체 이름으로 사용자 이름을 갖고 싶습니다. 나는 이름으로 Bob1789에 입력 한 경우, 예를 들어, 프로그램 할 것 :Java 객체 이름 지정

Customer Bob1789 = new Customer("Bob1789"); 

내가 할 것 randomcustomer123 프로그램에 입력 한 경우 :

Customer randomcustomer123 = new Customer("randomcustomer123"); 

을 그러니까 기본적으로, 나는 상자에 입력 어떤 스캐너에서 고객 이름으로 전달됩니다.

Customer (whatever was typed in the scanner) = new Customer((whatever was typed in the scanner)); 

이 작업을 시도했지만 java는 항상 scanner.NextLine()이 개체 이름이라고 가정합니다.

이렇게 할 방법이 있습니까?

+1

, 그 다만 변수가 무엇 중요한 것은 클래스의 값 가져 오기 위해 추가 그것을 사용하여 – johnII

+2

변수의 이름을 지정하는 용도는 무엇입니까? –

+1

ㅎ. 나는 이것이 제목에서 어디로 가는지 알았다. 모두가 초보자로서 어떤 방식으로 이것을하고 싶어하는 것처럼 보입니다. @SilentBeast! 데이터 구조의 세계에 오신 것을 환영합니다! 당신은 여기에 신선한 관심을 유지하는 많은 것들을 발견 할 것입니다. –

답변

3

이 경우 HashMap<String, Customer>을 사용할 수 있습니다. 이를 통해 이름 - 고객 쌍을 저장할 수 있습니다.

HashMap<String, Customer> allCustomers = new HashMap<>(); 

String customerName = scanner.nextLine(); 
allCustomers.put(customerName, new Customer(customerName)); 

특정 이름을 가진 고객을 얻으려면, 새로운 고객을 만들고지도에 넣어하려면 다음을 사용 :

allCustomers.get("some name"); 
2

왜 몰라 당신은 obj 이름을 사용하고 싶습니다. 아마도 HashMap<String, Customer>을 사용해야 할 것입니다. 여기서 name은 키이고 value는 객체입니다.

Map<String, Customer> map = new HashMap<>(); 

당신은 클래스의 이름 필드가있는 경우 다음 고객을 식별 할 수 map.put("yourName", obj); 이름은 중요하지 않습니다 map.pget("yourName");

+0

아직 HashMap을 배우지 못했지만, 나는 초보자이며 여전히 기본을 배우고 있습니다. 그래도 도와 ​​줘서 고마워! –