Ти тут

Інкапсуляція - це що таке? Інкапсуляція в програмуванні

Інкапсуляція - це одна з трьох основних Особливе об`єктно-орієнтованого програмування (ООП). Дві інші - поліморфізм и Успадкування. Разом смороду складають базу ООП, визначальності цілий спектр можливий написання програм на різніх мовах, вікорістовуючі ЦІ три принципи. Об`єктно-орієнтовані мови, в свою черга, зобов`язані чітко їх дотримуватись.інкапсуляція це

основи ООП

Об`єктно-орієнтоване програмування стоит на трьох китах свого світобудові:

  • Поліморфізм, что відповідає на питання, як Певного мову програмування трактує об`єкти, что ма ють между собою зв`язок, подібним чином.
  • Спадкуванні, что дает відповідь, Яким чином відбувається стімуляція использование коду багаторазове.
  • Інкапсуляції, что є відповіддю на питання, як відбувається пріховування реализации, а значить и Збереження цілісності Даних.

термінологія

Інкапсуляція (програмування) - це использование модіфікаторів доступу з метою пріховування частин програмного коду від кінцевого користувача. Під ним, в свою черга, мається на увазі розробник або успадковує об`єкт.
Поняття інкапсуляція

суть Поняття "інкапсуляція"

Дефініція візначає, что під инкапсуляцией мається на увазі пріховування Всього або части програмного коду. Суть же Поняття "інкапсуляція" Полягає в маніпулюванні модіфікаторамі доступу. Це означає, что розробник сам вірішує, Які Властивості, методи и класи будут відкриті класу-клієнта, а Які - пріховані.

модіфікаторі доступу

інкапсуляція програмуванняІснують Такі модіфікаторі доступу, Якими, в чіслі других, здатно маніпулярівать інкапсуляція (програмування Java):

  • public ("паблік" - Публічній, Відкритий, доступ) - Загальний доступ як для потокової об`єктів и класів, так и для зовнішнього світу;
  • private ("прайват" - Приватний, приватний, прихований доступ) - закритий доступ, суть которого Повністю протилежних попередня. Забезпечує доступ только з поточного класу;
  • protected ("протектед" - Захищений, напівсхована, доступ) - доступ для поточного класу и похідніх від него;
  • за замовчуванню - Незазначені модіфікатор доступу має на увазі, что поле / метод видно для Всього поточного пакета класів.

У мові C # ("Сі Шарп"), Кроме зазначену (віключаючі Останній), є ще Такі модіфікаторі:

  • internal ("інтернал" - Внутрішній доступ) - загальнодоступність в поточному зборі, закритий доступ по всех других віпадків;
  • internal protected ("інтернал протектед" - Внутрішній захищений доступ) - об`єднання двох модіфікаторів в один, в якому проявляються Властивості обох з них.

роль инкапсуляции

Механізм інкапсуляції дозволяє віключіті Зовнішній Вплив на програмний код и невірне использование Закладення в ньом Даних. Це відбувається за рахунок об`єднання коду и даних до Одне ціле.
інкапсуляція програмування приклад

Об`єкт и інкапсуляція

Об`єднання реализации програмного модуля и Даних, Закладення в коді, в програмуванні назівається об`єктом. Суть зв`язку его з инкапсуляцией Полягає в тому, что именно така методика дозволяє підтрімуваті и Забезпечувати цілісне Функціонування Розглянуто механізму.

перевага инкапсуляции

Інкапсуляція - це способ спростіті процес кодування. Чісленні рядки коду залішаються "за лаштункамі", А в основному класі робота уходит з екземпляр об`єктів.

Ідея захисту Даних

Інкапсуляція - це такоже Механізм, Який реалізує ідею захисту Даних. Програмна логіка об`єктно-орієнтованого програмування побудовали на базі того, что велика частина Даних буде прихована модіфікатором доступу private (приватний, приватний) або protected (захищений). Зовнішній світ, клієнт Випадкове або навмісно НЕ зможуть зашкодіті реализации програмного модуля. Оскількі насправді сделать це очень легко даже НЕ навмісно, інкапсуляція - це очень хороший принцип.

одиниці інкапсуляції

Клас, як Основна одиниця інкапсуляції, опісує дані и містіть код, Який цімі данімі здатно оперуваті. Такоже ВІН є базою для побудова об`єкта. Останній, в свою черга, уявлень як екземпляр класу.

інкапсуляція програмування javaВікорістовується такоже наступна термінологія:

  • члени - це код и дані, что входять в клас;
  • поля, або змінні екземпляр - так назіваються дані, Які візначає клас;
  • Функції-члени - в них містіться сам код. Функції-члени - загальна назва. Окремий випадок - методи.

Інкапсуляція на конкретному прікладі

інкапсуляція програмування це

Інкапсуляція (програмування) приклад:

* Примітка:

description - це опис методу / Властивості / змінної, тобто коментування того, что, власне, відбувається в Програмі. Продемонстровані с помощью відкріваються / закріваються тегів

using System-

namespace OOPLibrary.Auto

{

///

/// Даній клас призначення для того, щоб опісуваті Властивості и Дії автомобіля

///

public class Auto

{

///

/// Створюється змінна для того, щоб в неї запісуваті, скільки автомобілю років, так як Зовнішнє втручання в це властівість розробник считает Зайве

/// Воно позначається модіфікатором private, тобто закритий, приватний доступ (див. Опис вищє).

///

private int _age-

///

/// Булевскому змінна (только два можливий значення - або так, або ні), яка опісує, чи рухається автомобіль на Сейчас

/// Вона кож не винних буті Відкрита для кінцевого користувача, ким би ВІН НЕ був. Тому и цієї змінної прісвоюється закритий модіфікатор доступу "прайват"

///

private bool _isMoving-

///

/// В даній строкової змінної винна містітіся інформація про колір автомобіля. ВІН может змінюватіся з боку зовнішнього впліву

/// Тому для Кольори избран модіфікатор відкритого доступу "паблік".

///

public string Color-

///

/// У даного конкретного випадка допускаємо, что имя автомобіля теж можна міняті



/// Прісвоюється модіфікатор паблік (Відкритий доступ для всіх, Незалежності від класу або Збірки).

///

public string Name-

///

/// Відкрівається конструктор класу и все Властивості, віражені змінними и задані немного Ранее, отримуються свои значення

///

public Auto ()

{

_age = 5

_isMoving = false-

Color = "фіолетовий"-

Name = "Шкода Октавіа"-

}

///

/// Метод реалізує повернення значення віку авто. Навіщо це потрібно?

/// Закритий модіфікатор доступу Робить его можливий для Зміни Клієнтом.

///

/// Повертає вік автомобіля.

public string GetAge ()

{

return "Сейчас обраної машині" + _age + " років."-



}

///

/// Если автомобіль перебуватіме на стоянці, цею метод реалізує старт руху. Віконується перевірка змінної, помилуй, в якому стані находится автомобіль (їде ВІН чи ні), І, в залежності від результатів, віконується відповідна дія / виводу відповідне ПОВІДОМЛЕННЯ.

///

public void Start ()

{

if (_isMoving)

{

Console.WriteLine ("Рух Вже Було розпочато") -

}

else

{

_isMoving = true-

Console.WriteLine ("На старт, увага .. Вперед! Поїхали!") -

}

}

///

/// Если рух Було розпочато, то цею метод его зупіняє. Та ж програмна логіка, что й у попередня Розглянуто випадки.

///

public void Stop ()

{

if (_isMoving)

{

_isMoving = false-

Console.WriteLine ("Стоп, машина") -

}

else

{

Console.WriteLine ("Помилка. Автомобіль и так стоит на місці, чи не рухається") -

}

}

///

/// Здійснюється поворот наліво, если має місце руху автомобіля

///

public void MoveLeft ()

{

if (_isMoving)

{

Console.WriteLine ("Здійснено поворот наліво") -

}

else

{

Console.WriteLine ("Помилка. Автомобіль стоит на місці. Функція повороту на Сейчас недоступна") -

}

}

///

/// Аналогічній метод з поворотом направо

///

public void MoveRight ()

{

if (_isMoving)

{

Console.WriteLine ("Поворот направо БУВ здійсненій успешно") -

}

else

{

Console.WriteLine ("Помилка. Автомобіль галі не рухався з місця. Поворот направо є на Сейчас дією, Неможливо для виконан.") -

}

}

}

}

Поділися в соц мережах:

Увага, тільки СЬОГОДНІ!

Схожі повідомлення


Увага, тільки СЬОГОДНІ!