Основные принципы, какие?
Основные принципы, какие?
Рассмотрим пример некоего пользовательского класса (простого класса, без наследования):
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 указан соответственно, источник и приемник. В нашем случае, это просто поля, однако, мы могли-бы указать и некую функцию. При вводе явно некорректного результат, мы могли-бы предотвратить изменение данных класса (разными способами, от простого игнорирования до генерирования исключения - специального вида класса).
Методы можно рассматривать, как обыкновенные функции и процедуры, принимающие и возвращающие значения (методы-функции здесь не показаны).
Также, существуют такие понятия как перегрузка методов, инкапсуляция, полиморфизм, наследование и прочее. Более подробно, о классах можно прочитать здесь.
Добавить комментарий