Как правило, поля класса описывают с модификатором доступа privat.
Поэтому доступ к таким полям из других классов невозможен. Любая попытка прочитать значение из этого поля или записать в него что-то, вызывает ошибку.
Однако часто доступ к полям бывает нужен. Для этого используются свойства. Свойства еще называют: методы аксессоры.
Напишем свойства для каждого поля этого класса.
Как мы видим, каждое свойство имеет заголовок и тело. В заголовке указывается модификатор доступа (обычно public), тип возвращаемого свойством значения (у нас double) и имя свойства. Имя свойства такое же как имя поля, которому оно соответствует, только начинается с большой буквы.
В теле объявлено два метода get и set. Больше ничего в теле свойства объявлять нельзя. Метод get имеет ключевое слово return и возвращает какое-либо значение (обычно значение поля). Если этот метод присутствует, то значение соответствующего поля можно читать.
Метод set имеет ключевое слово value и присваивает (устанавливает) это значение полю объекта. Если этот метод присутствует, то соответствующему полю можно присваивать значение.
В свойстве может отсутствовать get или set. Тогда поле будет только для чтения или только для записи.
Описанные выше свойства можно использовать в другом классе и это не вызовет никакой ошибки. Обращение к свойству похоже на обращение к методу, только круглые скобки, как в методе, не пишут.
Свойства вместе с модификаторами доступа реализуют механизм защиты данных от несанкционированного доступа.
Класс как тип, определенный пользователем, должен содержать: