- •1. Цели и задачи дисциплины «Программирование».
- •2. Особенности решения задач с использованием эвм.
- •3. Алгоритм и его свойства. Способы описания алгоритмов.
- •4. Схемы алгоритмов. Правила оформления схем алгоритмов.
- •Visual Studio
- •12. Встроенный отладчик. Пошаговое выполнение программы. Использование точек останова. Просмотр значений.
- •15. Характеристики качества программного обеспечения. Жизненный цикл программы.
- •16. Свойства языков программирования, определяющие качество программ: простота, надежность, быстрота трансляции, эффективность, удобочитаемость, блочность.
- •17. Состав языка программирования c#. Алфавит и лексемы. Идентификаторы.
- •18. Состав языка программирования c#. Алфавит и лексемы. Идентификаторы.
- •19. Разделители в c#. Литералы в c#.
- •20. Типы данных в языке c#. Классификация типов. Встроенные типы.
- •21. Типы-значения и ссылочные типы.
- •22. Преобразования встроенных арифметических типов-значений. Примеры использования.
- •23. Переменные. Именованные константы. Операции и выражения. Примеры использования.
- •24. Основные операции c#. Инкремент и декремент. Операция new. Примеры использования.
- •25. Явное преобразование типа. Примеры использования.
- •26. Умножение, деление и остаток от деления. Сложение и вычитание. Примеры использования.
- •27. Условная операция. Операции присваивания. Примеры использования.
- •28. Операции отношения и проверки на равенство. Операция отрицания. Примеры использования.
- •29. Простейший ввод-вывод. Примеры использования.
- •30. Математические функции – класс Math. Примеры использования.
- •31. Операторы. Выражения, блоки и пустые операторы. Примеры использования.
- •32. Составной оператор. Операторные скобки. Примеры использования.
- •33. Условные оператор if. Примеры использования. Алгоритмы разветвленной структуры
- •34. Оператор выбора switch. Примеры использования.
- •35. Понятие цикла. Цикл с предусловием while. Примеры использования.
- •36. Понятие цикла. Цикл с постусловием do. Примеры использования.
- •37. Понятие цикла. Цикл с параметром for. Примеры использования.
- •38. Понятие цикла. Цикл перебора foreach. Примеры использования.
- •39. Оператор break. Оператор continue. Оператор return. Примеры использования.
- •40.Обработка исключительных ситуаций. Оператор try. Примеры использования.
- •41. Оператор throw. Класс Exception. Примеры использования.
- •42. Классы: основные понятия. Члены классов. Спецификаторы доступа. Примеры использования.
- •43. Создание объектов. Конструкторы. Примеры использования.
- •44. Свойства. Ключевое слово this. Примеры использования.
- •45.Методы. Понятие методов. Описание методов. Примеры использования.
- •46. Передача параметров методу. Параметры-значения. Параметры-ссылки. Примеры использования.
- •47.Понятие параметров метода. Выходные параметры. Примеры использования.
- •48. Массивы. Одномерные массивы. Примеры использования.
- •51. Класс System.Array. Основные элементы класса Array. Примеры использования.
- •52. Организация вывода массивов. Вывод одномерных массивов. Примеры использования.
- •Объявления и инициализация
- •Ступенчатые массивы
- •Объявления и инициализация
- •54. Символы. Массивы символов. Примеры использования.
- •55. Строки типа String. Основные элементы класса System.String. Примеры использования.
- •56. Форматирование строк. Примеры использования.
- •57. Класс StringBuilder. Основные элементы класс StringBuilder. Примеры использования.
- •58. Класс Random. Основные элементы класс Random. Примеры использования.
44. Свойства. Ключевое слово this. Примеры использования.
Свойства
Свойства служат для организации доступа к полям класса. Как правило, свойство связано с закрытым полем класса и определяет методы его получения и установки. Синтаксис свойства:
[ атрибуты ] [ спецификаторы ] тип имя_свойства
{
[ get код_доступа ]
[ set код_доступа ]
}
Значения спецификаторов для свойств и методов аналогичны. Чаще всего свойства объявляются как открытые (со спецификатором public), поскольку они входят в интерфейс объекта.
Код доступа представляет собой блоки операторов, которые выполняются при получении (get) или установке (set) свойства. Может отсутствовать либо часть get, либо set, но не обе одновременно.
Если отсутствует часть set, свойство доступно только для чтения (read-only), если отсутствует часть get, свойство доступно только для записи (write-only).
В C# введена удобная возможность задавать разный уровень доступа для частей get и set. Например, во многих классах возникает потребность обеспечить неограниченный доступ для чтения и ограниченный — для записи.
Спецификаторы доступа для отдельной части должны задавать либо такой же, либо более ограниченный доступ, чем спецификатор доступа для свойства в целом. Например, если свойство описано как public, его части могут иметь любой спецификатор доступа, а если свойство имеет доступ protected internal, его части могут объявляться как internal, protected или private. Синтаксис свойства имеет вид:
[ атрибуты ] [ спецификаторы ] тип имя_свойства
{
[ [ атрибуты ] [ спецификаторы ] get код_доступа ]
[ [ атрибуты ] [ спецификаторы ] set код_доступа ] }
Пример описания свойств:
рublic class Button: Control
{
рrivate string caption; // закрытое поле, с которым связано свойство
рublic string Caption { // свойство
get { // способ получения свойства
return caption;
}
set { // способ установки свойства
if (сарtion != valuе) {
сарtion = valuе;
}
}
}
...
}
Двоеточие между именами Button и Соntrol в заголовке класса Вutton означает, что класс Вutton является производным от класса Соntrol.
Метод записи обычно содержит действия по проверке допустимости устанавливаемого значения, метод чтения может содержать, например, поддержку счетчика обращений к полю.
В программе свойство выглядит как поле класса, например:
Вutton ok = new Вutton( );
оk.Сарtion = "ОК"; // вызывается метод установки свойства
string s = оk.Сарtion; // вызывается метод получения свойства
При обращении к свойству автоматически вызываются указанные в нем методы чтения и установки.
Синтаксически чтение и запись свойства выглядят почти как методы. Метод get должен содержать оператор return, возвращающий выражение, для типа которого должно существовать неявное преобразование к типу свойства. В методе set используется параметр со стандартным именем value, который содержит устанавливаемое значение.
Вообще говоря, свойство может и не связываться с полем. Фактически, оно описывает один или два метода, которые осуществляют некоторые действия над данными того же типа, что и свойство. В отличие от открытых полей, свойства обеспечивают разделение между внутренним состоянием объекта и его интерфейсом и, таким образом, упрощают внесение изменений в класс.
С помощью свойств можно отложить инициализацию поля до того момента, когда оно фактически потребуется, например:
class A
{
рrivate static ComplexObject х; // закрытое поле
рublic static ComplexObject X // свойство
{
get
{
if(х == null) {
х = new ComplexObject ( ); // создание объекта при 1-м обращении
}
return х;
}
}
...
}
Ключевое слово this.
Ключевое слово this ссылается на текущий экземпляр класса, а также используется в качестве модификатора первого параметра метода расширения.
Для квалификации элементов, скрытых одинаковыми именами, например:
public Employee(string name, string alias)
{
// Use this to qualify the fields, name and alias:
this.name = name;
this.alias = alias;
}
Для передачи другим методам объекта в качестве параметра, например:
CalcTax(this);