|
|
|
Почему здесь ошибка доступа?
|
|||
|---|---|---|---|
|
#18+
Есть такой код: Код: java 1. 2. 3. 4. Код: java 1. 2. 3. 4. 5. 6. 7. 8. Я не понимаю почему так нельзя делать. Ведь я нахожусь в методе потомка и могу иметь доступ к protected методам родителя. Что я не так понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 22:53 |
|
||
|
Почему здесь ошибка доступа?
|
|||
|---|---|---|---|
|
#18+
questionerЧто я не так понимаю?Может из-за protected ? Попробуйте заменить на public . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 23:05 |
|
||
|
Почему здесь ошибка доступа?
|
|||
|---|---|---|---|
|
#18+
Usman, да именно из-за этого, но почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 23:15 |
|
||
|
Почему здесь ошибка доступа?
|
|||
|---|---|---|---|
|
#18+
elitegroup, Человека по понятиям интересует. Хотя здесь то как раз понятно. Мне вот до сих пор непонятно, почему из статического метода можно видеть приватные поля инстансов того же класса, тоже мне, инкапсуляция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 23:30 |
|
||
|
Почему здесь ошибка доступа?
|
|||
|---|---|---|---|
|
#18+
Лагманelitegroup, Человека по понятиям интересует. Хотя здесь то как раз понятно. Мне вот до сих пор непонятно, почему из статического метода можно видеть приватные поля инстансов того же класса, тоже мне, инкапсуляция. Вы кажется поняли, что меня интересует. может расскажете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 23:42 |
|
||
|
Почему здесь ошибка доступа?
|
|||
|---|---|---|---|
|
#18+
questionerВедь я нахожусь в методе потомка и могу иметь доступ к protected методам родителяВы находитесь в методе main(), который ниоткуда не отнаследовался и не имеет доступа к защищённым полям чужого класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2014, 23:55 |
|
||
|
Почему здесь ошибка доступа?
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovquestionerВедь я нахожусь в методе потомка и могу иметь доступ к protected методам родителяВы находитесь в методе main(), который ниоткуда не отнаследовался и не имеет доступа к защищённым полям чужого класса. методы вроде не наследуются... но этот метод находится в в классе, который отнаследован от родительского. в общем я не понял вашей мысли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 00:08 |
|
||
|
Почему здесь ошибка доступа?
|
|||
|---|---|---|---|
|
#18+
Да просто спать пора :) Вы не можете вызывать защищённые методы из чужого пакета. Или создайте (наследующий) класс из собственного пакета или приведите тип класса из чужого пакета к типу собственного (наследующего) класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 00:18 |
|
||
|
Почему здесь ошибка доступа?
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, спать действительно пора) придётся так запоминать, но какой-от общей концепции почему это так сделано я всё равно не понимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 01:12 |
|
||
|
Почему здесь ошибка доступа?
|
|||
|---|---|---|---|
|
#18+
ЛагманМне вот до сих пор непонятно, почему из статического метода можно видеть приватные поля инстансов того же класса, тоже мне, инкапсуляция. Access Levels: ModifierClassPackageSubclassWorldpublicYYYYprotectedY Yes YNno modifierYYNNprivateYNNN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 05:41 |
|
||
|
Почему здесь ошибка доступа?
|
|||
|---|---|---|---|
|
#18+
questionerпридётся так запоминать, но какой-от общей концепции почему это так сделано я всё равно не понимаю. Дело в том, что статические методы в java находятся вне контекста ООП. В отличии от банального delphi, где они часть _класса_, в java это по сути обычные процедуры. То, что они имеют доступ ко всем переменным "своего" класса- тоже не очень логично, но запомнить можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 15:21 |
|
||
|
Почему здесь ошибка доступа?
|
|||
|---|---|---|---|
|
#18+
Тоже недавно так-же баловался с ClassLoader'ом)) Пока классы Parent и Child в одном пакете это работает. Для разных пакетов сделали такое исключение (я так думаю) для безопасности. Было бы не очень хорошо так запросто стрелять себе в н дёргать protected методы объявленные, например, в классах JRE и переопределённые\реализованные в классах\пакетах других вендоров... Child.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Parent.java Код: java 1. 2. 3. 4. 5. 6. 7. AnotherImplementation.java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. ЛагманМне вот до сих пор непонятно, почему из статического метода можно видеть приватные поля инстансов того же класса, тоже мне, инкапсуляция.Вполне инкапсуляция. Вполне понятно и удобно. Alexey TominТо, что они имеют доступ ко всем переменным "своего" класса- тоже не очень логично.Вполне логично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2014, 22:31 |
|
||
|
Почему здесь ошибка доступа?
|
|||
|---|---|---|---|
|
#18+
Причём это справедливо и для instance методов. Я не могу вызывать protected методы через ссылку родительского класса т.к. там может лежать экземпляр и другого потомка, что нарушило бы инкапсуляцию. (Но в одном пакете также это работает.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2014, 09:08 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=187&tid=2127677]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 309ms |
| total: | 448ms |

| 0 / 0 |
