![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Escorial |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 13.8.2012 Репутация: нет Всего: нет |
есть class A extends C { void f(){...} } А и С в одном пакете без модификаторов, есть class B { void g(){....} } в другом пакете без модификатора. как вызвать метод g() внутри метода f(). возможно любое решения кроме установления другого модификатора доступа.
еще вопрос (класс А такой же как и в первом вопросе): class B extend A { void h(){....} } они теперь в одном пакете - как в f() вызвать h()... можно делать все что хочешь... везде пытался отыскать ответ - но найти не могу, подскажите. данный вопрос был на собеседовании. |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: нет Всего: 5 |
Прикольно, режим доступа private (который также используется поумолчанию, если никакой модификатор не указан) для того и был придуман, чтобы не позволять обращаться к таким данным извне, а его почему-то пытаются обойти, за такое по идее нужно бить палкой по рукам.
А так, через рефлексию вроде можно, гугл в помощь. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
По умолчанию protected же?
|
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 3 Всего: 48 |
Нет, правильнее будет назвать package-private, protected несколько шире |
|||
|
||||
Escorial |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 13.8.2012 Репутация: нет Всего: нет |
По умолчанию внутри пакета, без доступа наследникам.
Вообщем спасибо, что откликнулись буду дальше искать. |
|||
|
||||
Pawl |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 3 Всего: 28 |
Честно, не совсем понял, зачем класс А должен быть наследником С, ну да ладно. Вот каким может быть ответ на первую часть Вашего вопроса:
-------------------- В действительности всё совсем не так, как на самом деле |
||||||
|
|||||||
Escorial |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 13.8.2012 Репутация: нет Всего: нет |
спасибо за ответ. я не знаю будет ли работать класс А если убрать public модификатор у класса В, так как вся проблема и касалась того, как обойти модификатор доступа.
|
|||
|
||||
Pawl |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 3 Всего: 28 |
мда, не будет... Строчку с названием и сигнатурой метода в этом случае получить можно так:
А как этот метод вызвать... Сдаюсь! ![]() Вот, пришла в голову мысль: а в ТЗ ничего не было сказано про модификатор доступа конструктора класса В? Если сделать в В public-конструктор, вызвать его метод g можно так:
Это сообщение отредактировал(а) Pawl - 3.9.2012, 22:01 -------------------- В действительности всё совсем не так, как на самом деле |
||||||||
|
|||||||||
Escorial |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 13.8.2012 Репутация: нет Всего: нет |
возможно вы правы. просто тогда находит мысль - зачем все это делать - не легче тогда сделать класс публичный?)) - вообщем я насчет этих вопросов себе создал мысль - что люди просто хотят поднять статус собеседования - задавая каверзные вопросы - решения которых смысла не имеет)
Спасибо за ответ и помощь - буду для себя знать что можно с помощью интерфесов Conctructor и Method получить напрямую доступ к конструктору и методу н есоздавая обьект класса. - если я правильно понял то что вы предлдожили. |
|||
|
||||
Pawl |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 3 Всего: 28 |
Не за что ![]()
В java нельзя вызвать метод класса, не создавая объект этого класса, если, конечно, этот метод не static. Это сообщение отредактировал(а) Pawl - 8.9.2012, 10:40 -------------------- В действительности всё совсем не так, как на самом деле |
||||
|
|||||
Escorial |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 13.8.2012 Репутация: нет Всего: нет |
Спасибо за уточнение:)
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |