Показать сообщение отдельно
Старый 02.09.2005, 11:05     # 4
/7y3uK
Advanced Member
 
Аватар для /7y3uK
 
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498

/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)/7y3uK Реально крут(а)
Я бы сказал, что понимать это нужно не совсем так

1) Когда вы пишете просто public класс, то в любом случае можете создать объект через new , т.к. у любого объекта есть дефолтный конструктор без параметров... ну и соответственно можете получить через экземпляр класса доступ ко всем public методам и филдам... Обычно такие классы, в которых лежат только паблик методы, называют x...xTools, но это несколько не укладывается в ООП, т.к. возвращает нас к процедурному программированию... Если необходимо использовать в нескольких классах одни и те же ститк файнал филды, то для этого обычно делают интерфейс, в котором они описываются, и имплементят в классы, в которых необходимо использовать одни и те же данные... Но это имеес тмысл, если таких классов больше чем 2

2) Модификатор static подразумевает следующее: все статик филды будут существовать в единственном экзмпляре в рамках одного процесса (это очень грубо говоря), т.е. если в каком-то объекте есть статический филд static String s = "stroka", то соответственно можно не создавая объект получить ссылку на этот филд и работать с ним, т.о. он будет один и тот же для всех эеземпляров этого класса - в одном экземпляре поменяли значение - поменялся для всех - именно так обычно делают кэширование некоторых переменных... надо быть осторожным Что касается статических методов, то ту все тоже самое - метод можно дергать не создавая экземпляров класса... Но при этом никто! не запрещает его перекрыть у наследника... Ведь вызывается-то он через имя класса, а не через созданый объект...

3) Что касается модификатора final - необходимо понимать, что этот модификатор не позволяет изменить только ССЫЛКУ на объект, но отнюдь не блокирует для изменения содержимое этого объекта, к примеру содержимое public static final Map myMap = new HashMap(); всегда можно поменять - тут тоже необходимо быть осторожным и понимать что делаешь
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
/7y3uK вне форума