Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 6 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 15.05.2006
Интересует такой вопрос - модификатор доступа protected - что он делает ??? От каких классов он закрывает свой метод/поле/конструктор ?? И те же вопросы к модификатору доступа по умолчанию. Никак не могу понять.
Вот у меня есть 2 пакета ( MyPackag1 и MyPackag2 ) , в них сделал по два класса :
1) Package1 - пакет MyPackage1
2) Package2 - пакет MyPackage1
3) Package3 - пакет MyPackage2 ( наследуется от MyPackage1.Package1 )
4) Package4 - пакет MyPackage2

Так вот, если объявляю в классе Package1 метод test() с модификатором protected, то он оказывается закрытым для классов Package4 и Package4. Но если не писать никакого модификатора ( т.е. доступ по умолчанию ), то этот метод также не виден для классов Package3 и Package4. При этом метод test() доступен для других классов своего пакета ( подклассов и не подклассов ) и когда он protected, и когда он пустой ( ну в смысле доступ по умолчанию ).
Добавлено спустя 6 минут, 44 секунды
Да забыл добавить что этот пример из книги, и там написано что если этот метод test() объявлен как protected(), то он будет виден из класса Package3() ( который наследуется от MyPackage1.Package1 ), но не виден для класса Package4.
В книге используется как я понял java версии 1.4, у меня 1.6.



Партнер
 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Primax писал(а):
От каких классов он закрывает свой метод/поле/конструктор ??
Он делает указанное поле/метод класса доступным только для наследников.

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 15.05.2006
Daemon писал(а):
Он делает указанное поле/метод класса доступным только для наследников

в любых пакетах ?
а доступ по умолчанию открывает доступ для любого класса ( наследника или нет ) только своего пакета да ?
Добавлено спустя 11 минут, 47 секунд
В общем так или нет :
protected - доступ всем подклассам а также всем неподклассам в том же пакете
доступ по умолчанию - доступ любым классам своего пакета


 

Member
Статус: Не в сети
Регистрация: 15.05.2006
:oops:


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Primax извините, не Джавист, ни чем не могу помочь :)

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 10.03.2004
Откуда: Минск
Primax
public - доступ всем
protected - для всех классов из текущего пакета и для абсолютно всех наследников, в независимости от их места нахождения
private - только из текущего класса
по умолчанию - для всех классов из текущего пакета


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 6 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan