Основні принципи, які?
Основні принципи, які?
Розглянемо приклад якогось призначеного для користувача класу (простого класу, без успадкування):
class MyClass {
private int myPrivateValue;
public int myPublicValue;
private property myPrivateProperty (int value): read (myPrivateValue): write (myPrivateValue);
public property myPublicProperty (int value): read (myPublicValue): write (myPublicValue);
private method myPrivateMethod (int x);
public method myPublicMethod (int x);
};
Даний інтерфейс (декларація членів класу без реалізації часто називається інтерфейсом класу) написаний на псевдомова.
Зазвичай клас являє собою сукупність властивостей (property), полів (в даному випадку, цілих змінних позначених як int) і методів (method). У найпростішому випадку, всі вони можуть бути як публічними (модифікатор public), так і приватними (модифікатор private).
Для початку, що таке публічні і приватні член класу. Приватний члени класу можуть бути викликані тільки з методів класу, на відміну від публічних методів, які можуть бути викликані "ззовні" класу (тут слід зазначити, що в інтерфейсах, зазвичай не публікуються приватні методи, дана декларація була взята виключно для прикладу).
Тепер, що таке поля. Поля можуть бути використані як звичайні змінні (до речі кажучи, іноді, як і константи - але це вже більш складний випадок).
Що таке властивості. По виду (для "користувача" класу) це такі-ж змінні, проте ми можемо контролювати, що користувач запише (ключове властивість write), і що вважає (read). У ключових словах read і write вказано відповідно, джерело і приймач. У нашому випадку, це просто поля, однак, ми могли-б вказати і якусь функцію. При введенні явно некоректного результат, ми могли-б запобігти зміні даних класу (різними способами, від простого ігнорування до генерування винятку - спеціального виду класу).
Методи можна розглядати, як звичайні функції і процедури, які беруть і повертають значення (методи-функції тут не показані).
Також, існують такі поняття як перевантаження методів, інкапсуляція, поліморфізм, успадкування та інше. Більш детально, про класи можна прочитати тут.
Залишити відповідь