singlepost

В чем разница между public, protected и private? << На главную или назад  

не могу разобратся в public, protected и private
во всех учебниках (и т.п.) написано по-разному
хер поймешь
объясните пожалуйста по-русски
заранее спасибо

60 ответов в теме “В чем разница между public, protected и private?”

Страницы: [1] 2 3 4 »

  1. 1
    Жека Кирпичев ответил:

    Какой язык – C++ , Java, C#?

  2. 2
    Алексей Веселков ответил:

    На пальцах выглядит так:

    public – свойство, которое означает, что объект можно изменять из любого класса или метода

    private -объект можно изменять только в том классе, где он объявлен

    protected – объект можно изменять в том классе, где он объявлен но не в дочернем классе (подклассе) от класса, в котором объявлен объект

  3. 3
    Max Tyslenko ответил:

    ну… думаю, что сам смысл одинаковый.
    private, public, protected используют в классах, структурах для показания
    типа показа даных.
    Public: все члены будут открыты для использования. Т.Е. Ты можешь свободно обращаться к ним.
    Prшvate: члены закрыты. Могут использоваться только методами своего класса, или же дружественными ф-циями.
    Protected:используется при наследовании классов. Производной класс не имеет доступа к защищенным даным родительского класса. Бывают моменты, когда этот доступ нужен, но одновременно методы базового класса должны быть сокрыты… Тогда используют protected

  4. 4
    Жека Кирпичев ответил:

    Господи боже мой… Причем тут – изменять? Причем тут "методы базового класса должны быть сокрыты"?

    Все эти свойства влияют на область видимости.

    public class MyClass {
    private int secretVariable;
    protected int variableForChildren;
    public int variableForEveryone;
    }

    secretVariable видна только из методов MyClass.
    variableForChildren видна только из методов MyClass и его наследников.
    variableForEveryone видна всем отовсюду.
    Вот и все.

  5. 5
    Аристарх Анонимусов ответил:

    "во всех учебниках (и т.п.) написано по-разному" — что же это за учебники такие?

  6. 6
    Алексей Голубев ответил:

    А в шарпе еще и internal ввели. Это аналог public, но видим только в пределах текущей сборки (под сборкой обычно подразумевается dll).

  7. 7
    DELETED DELETED ответил:

    Мля, что тут может быть непонятно?
    public – видим везде
    pritected – видив в этом и наследуемых классах
    private – только в этом классе и больше накося выкуси
    А не могли бы вы педоставить трактовку этих понятих, хотелось бы взглянуть на различные толкования.

  8. 8
    Роман Решетников ответил:

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

  9. 9
    Жека Кирпичев ответил:

    Ну кстати есть как минимум 2 различных толкования protected: в java такие члены видны в наследниках и в пакете, а в C# и C++ – только в пакете.

  10. 10
    Андрей Куликов ответил:

    Э не совсем так. В Java как раз есть именно пакетный доступ – который видно в текущем пакете – то что по умолчанию. Вышеупомянутый internal, это походу некий его аналог.
    А вот protected там самый обычный, как везде, как в С++. В С++ так вобще понятия пакет нету, какой там только в пакете?

Страницы: [1] 2 3 4 »

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.