Свойства класса (модификаторы доступа)
Как правило поля класса объявляются с модификатором доступа private. К примеру, если в классе Hospital всего имеется 50 кабинетов, при чем ранее мы объявили public int CabinetNumber = 50, а в классе Program мы указываем Hospital.CabinetNumber = 77, тогда это будет нарушением наших планов. Имеет смысл запретить классу Program пользоваться некоторыми переменными из класса Hospital. Если мы объявляем поле класса с модификатором доступа private – тогда оно будет доступно только внутри данного класса. Свойства позволяют контролировать доступ к полям класса. Напишем следующий код: И так, мы объявили свойство класса для поля Patients. Мы убрали public перед Patients, то есть это поле теперь недоступно для других классов. В дальнейшем для того, чтобы обратиться к переменной Patients необходимо будет обращаться к свойству Fx. Не обязательно писать в get и set одну и ту же переменную, можно считывать одну переменную, а записывать другую. get (брать, отдавать) – чтение, то есть при передаче поля куда-либо. Здесь мы показываем, с какой именно переменной работаем, и, наличие данной строки говорит о том, что свойство разрешает передавать переменную для чтения. set (устанавливать, получать) – запись, то есть при присваивании значения полю. Данная строка отвечает за обращение к переменной при попытке поменять ее значение. Наличие строки set говорит о том, что разрешается инициализация значения свойству. Можем указать, чтобы переменная была доступна только для чтения или только для записи. Если убрать строчку get – то будет только для записи, если убрать строчку set – то будет только для чтения. Правила объявления свойств: · Модификатор доступа должен быть public; · Тип свойства должен совпадать с типом переменной (int, string, bool etc.); · Как правило названия свойства и поля указывают одинаковыми, только в свойстве первую букву с большой пишут, а в поле – с маленькой; · Нету круглых скобок после названия, основная информация указывается в фигурных скобках, после get и set – тоже фигурные скобки; · При работе в блоке set обязательно писать <поле класса> = value, само оно не поймет; · Желательно использовать свойства не только во внешних классах, но также и во внутреннем классе, то есть всегда обращаться не к переменной, а к свойству.
|