Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос про виды полей в классах (https://javascript.ru/forum/misc/25898-vopros-pro-vidy-polejj-v-klassakh.html)

Mахmахmахimus 19.02.2012 13:35

Вопрос про виды полей в классах
 
Вопрос есть,
есть 2 вида полей, приватные и публичные.
И каждое поле может иметь флаги "static" и "protect" а может не иметь.

У поля может стоять флаг либо статик либо протект.

Статик означает что свойства общие для всех сущностей.
Протект означает что свойства общие для всех сущностей.

Отличаются они друг от друга только поведением при наследовании, так?
То есть поле с флагом протект будет доступно сущностям текущего класса и сущностям дочернего класса.
А поле с флагом статик будет доступно только сущностям текущего класса, дочерним нет.

Я правильно это понял наконец? А то я тонны уже перечитал.

vasa_c 19.02.2012 14:21

статические поля доступны вне контекста экземпляра

Shaci 19.02.2012 14:24

Цитата:

Сообщение от Mахmахmахimus (Сообщение 158435)
Вопрос есть,
есть 2 вида полей, приватные и публичные.
И каждое поле может иметь флаги "static" и "protect" а может не иметь.

нет)
не может быть private protect или public protect поля))

Mахmахmахimus 19.02.2012 14:31

Shaci,
так, короче пока я не сошел с ума, я не понимаю что из какой котегории.

приват паблик - первая категория
статик нестатик - вторая категория

можете вот так вот написать что яблоки а что груши)?

Пожалуйста, можете расписать что означает протект и статик?
к каким категориям они оносятся на одном ли логическом уровне они с "паблик" "приват" то есть я хочу знать что я блоки а что груши, что моетбыть одновременно а что нет, что является флагом а что обязательно.

к примеру к нас есть поле. оно имеет параметры.
какие эти параметры могут быть?

Mахmахmахimus 19.02.2012 14:35

Цитата:

Сообщение от vasa_c
статические поля доступны вне контекста экземпляра

нет это тут вообще не при чем, статические поля это поля которые общие у всех сущностей. изменишь у одного - изменится и у остальных. если статическое поле имеет паблик тип, то оно доступно извне сущности через точку, если имеет тип приват, то не доступно снаружи сущности через точку.

Цитата:

Сообщение от Shaci
не может быть private protect или public protect поля))


то есть яблоки это:
private, procect, public

груши это:
статик, нестатик

vasa_c 19.02.2012 16:39

Цитата:

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

Mахmахmахimus 19.02.2012 19:36

vasa_c,
согласен, но на абстрактном уровне это ИХ поле, оно одно у каждого и оно общее на всех. к нему можно обращаться через this, внутри методов сущностей класса. Где оно физически лежит - не важно.

Обьясните мне про протект народ

то есть яблоки это:
private, procect, public

груши это:
статик, нестатик

я правильно понимаю это разделение?

Shaci 19.02.2012 20:25

Цитата:

Сообщение от Mахmахmахimus (Сообщение 158498)

то есть яблоки это:
private, procect, public

груши это:
статик, нестатик

я правильно понимаю это разделение?

Давай ка масла в огонь подольём:

есть еще volatile помимо static и модификаторов доступа

monolithed 19.02.2012 20:55

Цитата:

Сообщение от Shaci
есть еще volatile

Это уже совсем не туда.
Про static

А причем тут вообще JS?

Shaci 19.02.2012 22:23

Цитата:

Сообщение от monolithed (Сообщение 158524)
Это уже совсем не туда.
Про static

А причем тут вообще JS?

согласен, я просто так это написал :)
js тут не причем


Часовой пояс GMT +3, время: 23:29.