2013-11-17 2 views
0

Возможно ли получить карту, хранящуюся в другом классе? Для например:Получить карту, хранящуюся в другом классе

У меня есть класс A, в котором я имею карту ниже:

Map<String,List<Names>> map=new HashMap<String,List<Names>>(); 
map.put("Details", Names); 

Можно ли получить карту в классе B?

+3

Прочтите учебник по классам и объектам. Тот факт, что это «Карта», не имеет значения. –

+0

Да. Пожалуйста, будьте более конкретными, и мы можем дать вам более конкретный ответ. Если вы работаете через текст или учебник, и ваш вопрос заключается в том, чтобы помочь понять вопросы, которые он поднял, просьба указать ссылку на то, что вы читаете. Если вы не работаете с текстом или учебным пособием, подумайте об этом. –

+0

Прошу прощения. Я создал класс A и карту, которая состоит из коллекций. Карта > map = new HashMap >(); map.put («Детали», Имена); Теперь я хочу получить доступ к созданной карте в классе B, чтобы получить значения из класса A. Моим требованием является не получение карты в классе A. Могу ли я получить карту с ключом «Детали» в классе B? – user2988935

ответ

1

Можно ли получить [или извлечь из] карту в классе B?

Да, это так. И есть множество способов сделать это. Например: (! Почти наверняка плохая идея)

  • Вы можете сделать карту переменной public
  • Вы могли бы реализовать public поглотитель, который возвращает карту (вероятно, не очень хорошая идея ...)
  • Вы можете реализовать получателя public, который вернул оболочку только для чтения для (частной) Карты.
  • Вы можете реализовать метод public, который ищет запись на (частной) карте.

Но это не обязательно хорошая вещь, чтобы сделать это. Одним из принципов объектно-ориентированного программирования является то, что класс должен инкапсулировать его состояние. Если ваш класс B может получить доступ к карте, которая является (для аргумента) внутренней для вашего класса A, тогда инкапсуляция ослабляется или прерывается в процессе. (Теперь, возможно, было бы целесообразно иметь свободную инкапсуляцию ... но вам нужно понять проблемы и подумать о последствиях для ваших конкретных обстоятельств.)

Я говорю, что вам, скорее всего, нужно найти/прочитайте учебное пособие (или учебник) по программированию OO, чтобы помочь вам понять, правильно ли вы делаете то, что вы пытаетесь сделать.

+0

Действительно, хорошие моменты :) – Melquiades

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