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>