2013-04-21 9 views
1

Моим вопроса похоже на:Именование объекта с переменной строкой

Creating a variable name using a String value.

Но я надеялся поднять его под другим углом.

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

String dogName = reader.nextLine(); 

int legs = reader.nextInt(); 

char beenFed = reader.nextChar(); 

new dogName = dog(dogName, legs, fed) ` 

Я знаю, что java не может принять переменную в качестве имени объекта. Но предположим, что я хочу, чтобы создать три собаки, «Красный», «Blue» и «Джефф», как я мог настроить его, чтобы впоследствии пользователь может ввести

Red.getLegCount(); 

Blue.hasBeenFed(); 

т.д.

Как еще можно Я создаю этот сценарий? Если я хочу сделать много разных названных объектов Dog, как мне это сделать? И если это не очень хорошая идея, что я могу сделать вместо этого?

PS - Первое сообщение о переполнении стека. Пожалуйста, руководствуйтесь этикетами/форматированием.

+0

Я вижу, вы редактировали это для меня Стюарт. Пожалуйста, скажите мне, что мне нужно сделать, чтобы я мог правильно писать в будущем. – xkem

+0

Стюарт просто отредактировал ваше сообщение, чтобы ваш пост стал более читаемым, особенно в части кода ... –

+0

, пожалуйста, закройте вопрос, если на ваше сомнение ответили :) – user2304987

ответ

4

Почему бы вам не использовать HashMap? В основном вам нужен набор пар ключ-значение. Это именно то, что делает HashMap. Хорошая ссылка для начала: http://tutorialswithexamples.com/java-map-and-hashmap-tutorial-with-examples/

Сделайте свой Dog класс с dogName, ногами, beenFed, другими атрибутами .. Далее, определит HashMap<String,Dog> с ключом существами, как dogName и собака будучи весь Dog объектом со всеми атрибутами. например

Dog red = new Dog("red",5,true); 
hashmap.put(red.dogName, red); 

Позже, если вы хотите получить доступ к объекту Dog, сделать olddog = hashmap.get("red"). Теперь вы можете сделать что-нибудь - olddog.getLegs() ...

+1

+1. Было бы достаточно Хашмапа или просто коллекции собачьих предметов. Если у вас есть естественный ключ для вашего объекта (например, имя собаки или комбинация свойств собаки), вы можете просто взять его из коллекции. –

+0

Не похоже, что объекты создаются с использованием HashMap - хотя, возможно, я ошибаюсь. – xkem

+0

Мне все еще нужно иметь возможность запросить объект собаки, используя getLegCount() из класса собаки. – xkem

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