HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Инкапсуляция - это…</a></li>
1 <ul><li><a>Инкапсуляция - это…</a></li>
2 <li><a>Основные модификаторы</a><ul><li><a>Private</a></li>
2 <li><a>Основные модификаторы</a><ul><li><a>Private</a></li>
3 <li><a>Internal</a></li>
3 <li><a>Internal</a></li>
4 <li><a>Public</a></li>
4 <li><a>Public</a></li>
5 <li><a>Static</a></li>
5 <li><a>Static</a></li>
6 </ul></li>
6 </ul></li>
7 <li><a>Сравнительные таблицы</a></li>
7 <li><a>Сравнительные таблицы</a></li>
8 <li><a>Как освоить тему</a></li>
8 <li><a>Как освоить тему</a></li>
9 </ul><p>Объектно-ориентированное программирование - основа создания большинства современных приложений. Оно поддерживает полиморфизм, наследование и абстрактные классы. А еще - инкапсуляцию.</p>
9 </ul><p>Объектно-ориентированное программирование - основа создания большинства современных приложений. Оно поддерживает полиморфизм, наследование и абстрактные классы. А еще - инкапсуляцию.</p>
10 <p>В данной статье речь зайдет именно о ней. Также предстоит разобраться с так называемыми модификаторами доступа. Все это поможет новичкам быстрее освоить концепции объектно-ориентированного программирования.<strong>В качестве примеров используются C# и Java</strong>. Связано это с широким распространением соответствующих ЯП.</p>
10 <p>В данной статье речь зайдет именно о ней. Также предстоит разобраться с так называемыми модификаторами доступа. Все это поможет новичкам быстрее освоить концепции объектно-ориентированного программирования.<strong>В качестве примеров используются C# и Java</strong>. Связано это с широким распространением соответствующих ЯП.</p>
11 <h2>Инкапсуляция - это…</h2>
11 <h2>Инкапсуляция - это…</h2>
12 <p>Инкапсуляция - заключение данных и функций в оболочки. В ООП в качестве последнего компонента выступают классы. Они собирают переменные и методы в одном месте, после чего защищают их от вмешательства извне. В процессе реализации "средства защиты" происходит сокрытие информации.</p>
12 <p>Инкапсуляция - заключение данных и функций в оболочки. В ООП в качестве последнего компонента выступают классы. Они собирают переменные и методы в одном месте, после чего защищают их от вмешательства извне. В процессе реализации "средства защиты" происходит сокрытие информации.</p>
13 <p>Методы позволяют контролировать обращение к данным, а также предотвратить их удаление или некорректное изменение. Пример - запретить присваивать полю "возраст" объекта "Клиент" число большее 120.</p>
13 <p>Методы позволяют контролировать обращение к данным, а также предотвратить их удаление или некорректное изменение. Пример - запретить присваивать полю "возраст" объекта "Клиент" число большее 120.</p>
14 <h2>Основные модификаторы</h2>
14 <h2>Основные модификаторы</h2>
15 <p>Методы доступа к полям изменяются в зависимости от выбранного языка программирования. Основными вариантами для классов объектов программного кода выступают:</p>
15 <p>Методы доступа к полям изменяются в зависимости от выбранного языка программирования. Основными вариантами для классов объектов программного кода выступают:</p>
16 <ul><li>public;</li>
16 <ul><li>public;</li>
17 <li>protected;</li>
17 <li>protected;</li>
18 <li>private;</li>
18 <li>private;</li>
19 <li>internal.</li>
19 <li>internal.</li>
20 </ul><p>У каждого ЯП свои "дополнительные" модификаторы. Так называют специфичную часть языков программирования для облегчения инкапсуляции. Ключевые слова в ООП, которые задают параметры доступа для классов, методов и иных объектов кода.</p>
20 </ul><p>У каждого ЯП свои "дополнительные" модификаторы. Так называют специфичную часть языков программирования для облегчения инкапсуляции. Ключевые слова в ООП, которые задают параметры доступа для классов, методов и иных объектов кода.</p>
21 <h3>Private</h3>
21 <h3>Private</h3>
22 <p>Это закрытый или "приватный" элемент класса или структуры. Он будет доступен только в пределах собственного класса. Для того чтобы объявить такой модификатор, нужно использовать ключевое слово private.</p>
22 <p>Это закрытый или "приватный" элемент класса или структуры. Он будет доступен только в пределах собственного класса. Для того чтобы объявить такой модификатор, нужно использовать ключевое слово private.</p>
23 <p>При его применении относящиеся к "приватному" типу доступа поля нельзя изменять нигде, кроме как в methods того или иного класса. Значение извне получить тоже не представляется возможным. При попытках это сделать система выведет на экран ошибку. Для устранения неполадки можно использовать:</p>
23 <p>При его применении относящиеся к "приватному" типу доступа поля нельзя изменять нигде, кроме как в methods того или иного класса. Значение извне получить тоже не представляется возможным. При попытках это сделать система выведет на экран ошибку. Для устранения неполадки можно использовать:</p>
24 <ul><li>ключевое слово readonly, но оно запрещает корректировать значение;</li>
24 <ul><li>ключевое слово readonly, но оно запрещает корректировать значение;</li>
25 <li>передачу значения "приватного" члена класса через публичный.</li>
25 <li>передачу значения "приватного" члена класса через публичный.</li>
26 </ul><p>В C# применяется третья концепция - это свойства.</p>
26 </ul><p>В C# применяется третья концепция - это свойства.</p>
27 <p>Также есть private protected. Компонент класса будет доступен из любого места в своем классе или в производных классах, определенных в той же сборке. Private protected используется в C#. В случае с Java применяется только ключевое слово "протектед".</p>
27 <p>Также есть private protected. Компонент класса будет доступен из любого места в своем классе или в производных классах, определенных в той же сборке. Private protected используется в C#. В случае с Java применяется только ключевое слово "протектед".</p>
28 <h3>Internal</h3>
28 <h3>Internal</h3>
29 <p>Модификатор доступа internal делает элементы класса доступными из любого места в той же сборке, но он будет недоступен для других приложений и сборок. Если говорить простым языком, то компонент можно получить только в пределах одного файла.</p>
29 <p>Модификатор доступа internal делает элементы класса доступными из любого места в той же сборке, но он будет недоступен для других приложений и сборок. Если говорить простым языком, то компонент можно получить только в пределах одного файла.</p>
30 <p>Здесь класс Backpack используется только в пределах файла Program.cs. Если попытаться объявить его внутри другого файла, возникнет ошибка.</p>
30 <p>Здесь класс Backpack используется только в пределах файла Program.cs. Если попытаться объявить его внутри другого файла, возникнет ошибка.</p>
31 <h3>Public</h3>
31 <h3>Public</h3>
32 <p>Public и protected являются схожими. Второй модификатор доступа отвечает за элементы, доступные из любого места в пределах конкретного класса и его производных. Последние могут располагаться в других сборках.</p>
32 <p>Public и protected являются схожими. Второй модификатор доступа отвечает за элементы, доступные из любого места в пределах конкретного класса и его производных. Последние могут располагаться в других сборках.</p>
33 <p>Public - это самый простой модификатор. С ним сталкиваются все программисты. Называется "публичным" или "общедоступным". Разница с "протектед" очевидна - компонент будет доступен по всему коду. А еще - из других программ и сборок.</p>
33 <p>Public - это самый простой модификатор. С ним сталкиваются все программисты. Называется "публичным" или "общедоступным". Разница с "протектед" очевидна - компонент будет доступен по всему коду. А еще - из других программ и сборок.</p>
34 <p>Для работы с таким вариантом используется ключевое слово public. Вот - пример приложения с class Item:</p>
34 <p>Для работы с таким вариантом используется ключевое слово public. Вот - пример приложения с class Item:</p>
35 Public class Item; { Public string name; Public void cost; Public item (string name, void cost) { this.name = name; this.cost = cost; } }<p>Если объявить экземпляр class, можно обратиться к любым его полям в любом месте приложения. Главное, чтобы сам объект был доступен. </p>
35 Public class Item; { Public string name; Public void cost; Public item (string name, void cost) { this.name = name; this.cost = cost; } }<p>Если объявить экземпляр class, можно обратиться к любым его полям в любом месте приложения. Главное, чтобы сам объект был доступен. </p>
36 <h3>Static</h3>
36 <h3>Static</h3>
37 <p>Изучая модификаторы private, public и другие в заданном языке программирования, нужно обратить внимание на ключевое слово static.</p>
37 <p>Изучая модификаторы private, public и другие в заданном языке программирования, нужно обратить внимание на ключевое слово static.</p>
38 <p>Статичность - понятие, которое не совсем относится к уровням доступа. Оно помогает заключать реализацию функционала в оболочку класса. Статичность позволяет обращаться к методом или полям без создания объекта.</p>
38 <p>Статичность - понятие, которое не совсем относится к уровням доступа. Оно помогает заключать реализацию функционала в оболочку класса. Статичность позволяет обращаться к методом или полям без создания объекта.</p>
39 <p>Пример:</p>
39 <p>Пример:</p>
40 class Program { static void Main(string[] args) { Console.WriteLine($"5 + 6 = {Calc.Sum(5, 6)}"); } } class Calc { public static int Sum(int a, int b) //Здесь создается статичный метод { return a + b; } }<p>Здесь:</p>
40 class Program { static void Main(string[] args) { Console.WriteLine($"5 + 6 = {Calc.Sum(5, 6)}"); } } class Calc { public static int Sum(int a, int b) //Здесь создается статичный метод { return a + b; } }<p>Здесь:</p>
41 <ol><li>Можно не использовать public and protected.</li>
41 <ol><li>Можно не использовать public and protected.</li>
42 <li>Метод Sum() применяется в Program, несмотря на то, что экземпляр Calc не создавался.</li>
42 <li>Метод Sum() применяется в Program, несмотря на то, что экземпляр Calc не создавался.</li>
43 <li>Статичным можно сделать отдельный параметр или метод, а также весь class. Для этого все соответствующие элементы должны стать static.</li>
43 <li>Статичным можно сделать отдельный параметр или метод, а также весь class. Для этого все соответствующие элементы должны стать static.</li>
44 </ol><p>Вместо private and protected используется static, когда требуется создать набор инструментов для его дальнейшего применения в других частях приложения.</p>
44 </ol><p>Вместо private and protected используется static, когда требуется создать набор инструментов для его дальнейшего применения в других частях приложения.</p>
45 <h2>Сравнительные таблицы</h2>
45 <h2>Сравнительные таблицы</h2>
46 <p>Каждая программа будет работать в зависимости от способа настройки модификаторов доступа. Эта таблица поможет лучше понять, чем отличается private от public и других спецификаторов:</p>
46 <p>Каждая программа будет работать в зависимости от способа настройки модификаторов доступа. Эта таблица поможет лучше понять, чем отличается private от public и других спецификаторов:</p>
47 Название модификатораГраницы видимостиКраткая характеристикаPublicДоступ всем и с любого местаДоступ к полям будут иметь всеPrivateДоступ "мне и только мне"Элементы доступны только class, в котором они объявленыPackage"Мне, а также всем в пределах пакета"Доступ будет иметь не только class, в котором объявлены поля и методы, но и все классы, относящиеся к тому же пакетуProtected"Мне и всем наследникам"Доступом обладает класс, в котором объявлены поля, а также все classes в пакете и потомки<p>Public and protected легко спутать, особенно новичкам.</p>
47 Название модификатораГраницы видимостиКраткая характеристикаPublicДоступ всем и с любого местаДоступ к полям будут иметь всеPrivateДоступ "мне и только мне"Элементы доступны только class, в котором они объявленыPackage"Мне, а также всем в пределах пакета"Доступ будет иметь не только class, в котором объявлены поля и методы, но и все классы, относящиеся к тому же пакетуProtected"Мне и всем наследникам"Доступом обладает класс, в котором объявлены поля, а также все classes в пакете и потомки<p>Public and protected легко спутать, особенно новичкам.</p>
48 <p>Выше - таблица, которая поможет лучше разобраться с особенностями спецификаций C#. Они могут применяться как к компонентам class, так и к компонентам структуры. Во втором случае нельзя использовать private and protected, а также protected и protected internal. Связано это с тем, что структуры не поддерживают наследование.<a>Здесь</a>расположен видео-урок по изученной теме на примере Java.</p>
48 <p>Выше - таблица, которая поможет лучше разобраться с особенностями спецификаций C#. Они могут применяться как к компонентам class, так и к компонентам структуры. Во втором случае нельзя использовать private and protected, а также protected и protected internal. Связано это с тем, что структуры не поддерживают наследование.<a>Здесь</a>расположен видео-урок по изученной теме на примере Java.</p>
49 <h2>Как освоить тему</h2>
49 <h2>Как освоить тему</h2>
50 <p>Любой язык программирования предусматривает свои особенности и спецификации доступа. Чтобы лучше изучить private, public, static, new string и другие записи выбранного ЯП, рекомендуется закончить специализированные дистанционные компьютерные курсы. Пример - от OTUS. В данном образовательном центре можно быстро освоить инновационные IT-профессии, а также современные языки разработки с нуля.</p>
50 <p>Любой язык программирования предусматривает свои особенности и спецификации доступа. Чтобы лучше изучить private, public, static, new string и другие записи выбранного ЯП, рекомендуется закончить специализированные дистанционные компьютерные курсы. Пример - от OTUS. В данном образовательном центре можно быстро освоить инновационные IT-профессии, а также современные языки разработки с нуля.</p>
51 <p>В процессе обучения пользователям будет предоставлено полноценное кураторство, оказана помощь в формировании собственного портфолио. Ученики в срок до года научатся создавать различные приложения на выбранном ЯП, а также работать со спецификациями. Приобретенные знания подтверждаются специальным электронным сертификатом. </p>
51 <p>В процессе обучения пользователям будет предоставлено полноценное кураторство, оказана помощь в формировании собственного портфолио. Ученики в срок до года научатся создавать различные приложения на выбранном ЯП, а также работать со спецификациями. Приобретенные знания подтверждаются специальным электронным сертификатом. </p>
52 <p>Добро пожаловать в<a>Otus</a>!</p>
52 <p>Добро пожаловать в<a>Otus</a>!</p>
53 <a></a>
53 <a></a>