{ get { return (fam != "") ? fam : "неизвестный"; } // получение значения
set { fam = value.ToUpper(); } // установка значения
} Аналогичным образом инкапсулируем поле kurs. Защитим его от ввода
и хранения абсурдных значений. Например, при вводе чисел <1 или >4 в поле kurs будет сохранено значение 0 (поступай на подготовительный курс!). private int kurs;
public int Kurs
{ get { return kurs; } set { kurs = (value<1 || value>4) ? 0 : value; } // установка значения
} На завершающем этапе заменим в конструкторе именаскрываемых
полей (с малой буквы) на именаоткрытыхсвойств (с большой буквы):
public Student(string fam, int kurs)
{ this.Fam = fam; this.Kurs = kurs;
Автоматически такая замена в конструкторе не производится, поскольку окончательное решение о правах доступа должен принимать программист.
Протестируем окончательный вариант с разными параметрами.
Заданиядлясамостоятельнойработы
Модифицируйте программу примера1 (сon231).
Добавьте еще два поля: имя name и возраст age. Инкапсулируйте их, введя ограничения на возраст от 15 до 35 лет. Добавьте конструктор с четырьмя параметрами: publicStudent(stringfam,stringname,int kurs,int age).
Протестируйте программу, изменяя параметры инициализации, например;
Student st3 = new Student("Петров", "Петр", ‐7, 120); st3.ShowInfo();
Создайте подсчет количества вызовов метода ShowInfo для каждого студента. Для этого добавьте поле id и задайте метод доступа к нему только для чтения (есть только get):
private int id = 300;
public int Id { get { return id++; } } Протестируйте окончательный вариант, повторяя инициализацию.
Создайте приложения, в которых определяются классы, поля, конструк- торы, создаются и инициализируются 2–3 объекта. Поля инкапсулируются. Информация выводится методом Show.
Создается класс Avto с полями: марка автомобиля brand, цвет color, ско- рость skor. Поля инкапсулируются с ограничениями (скорость от 20 до 120 км/ч).
Создается класс Kadryс полями: фамилия fam, возраст age, должность dol, стаж staj. Поля инкапсулируются с ограничениями (возраст от 16 до 60, стаж от 0 до 45).
Создается класс Computerс полями: модель model, объем ОЗУ ram и жесткого диска hdd. Поля инкапсулируются с ограничениями (объем ОЗУ от 2 до 32 Гбайт, жесткого диска от 200 до 2000 Гбайт.
*Создается класс Tovar с полями: название name, цена price, количество kvo. Поля инкапсулируются с ограничениями (цена от 1 до 20, количество от 0 до 10). Вычисляется стоимость заказанного товара каждого вида и всего заказа.