- •1.1Классы и ооп
- •1.2Синтаксис класса
- •1.2.1Состав классов
- •1.2.2Модификаторы доступа
- •1.3Метод Main
- •1.3.1Аргументы командной строки
- •1.4Инициализация классов и конструкторы
- •1.5Деструкторы класса
- •1.6Статические члены класса
- •1.6.1Неизменяемые поля
- •1.7Вложенные классы
- •1.8Наследование
- •1.9Классы и структуры
- •1.9.1Структуры
- •1.9.2Синтаксис структур
- •1.10Перечисления
1.1Классы и ооп
Объектно-ориентированное программирование и проектирование построено на классах. Любую
программную систему, выстроенную в объектном стиле, можно рассматривать как совокупность классов,
возможно, объединенных в проекты, пространства имен, решения, как это делается при
программировании в Visual Studio .Net.
1.2Синтаксис класса
Ни одна из предыдущих лекций не обходилась без появления классов и обсуждения многих деталей, связанных с ними. Сейчас попробуем сделать некоторые уточнения, подвести итоги и с новых позиций взглянуть на уже знакомые вещи. Начнем с синтаксиса описания класса:
[атрибуты][модификаторы]class имя_класса[:список_родителей]
{тело_класса}
Атрибутам будет посвящена отдельная лекция. Возможными модификаторами в объявлении класса могут быть модификаторы new, abstract, sealed и четыре модификатора доступа, два из которых - private и protected - могут быть заданы только для вложенных классов. Обычно класс имеет атрибут доступа public, являющийся значением по умолчанию.
1.2.1Состав классов
Класс может содержать слудеющие типы:
• Поле - член-переменная, содержащий некоторое значение. В ООП поля называют данными объекта. К полю можно применять несколько модификаторов: static, readonly и const.
• Метод - код, воздействующий на данные объекта (или поля).
• Свойства - методы, которые клиенты класса воспринимают как поля. Это обеспечивает клиентам большую степень абстрагирования.
• Константы — это поле, значение которого изменить нельзя.
• Индексаторы - свойства —позволяют индексировать объекты методами-аксессорами get и set. С помощью индексатора легко проиндексировать объект для установки или получения значений.
• События - код, выполнение которого осуществляется при наступлении некоторого условия.
1.2.2Модификаторы доступа
Для задания степени доступа элементов класса используются модификаторы доступа
public элемент доступен вне определения класса и иерархии производных классов
protected элемент невидим за пределами класса, к нему могут обращаться только производные классы.
private элемент недоступен за пределами области видимости определяющего его класса. Поэтому доступа к этим членам нет даже у производных классов.
internal элемент видим только в пределах текущей единицы компиляции. Модификатор доступа internal в плане ограничения доступа является гибридом public и protected, зависимым от местоположения кода.
Модификтор задается для каждого элемента класса
class A
{
public int a ;
public int b;
public int c ;
protected int d ;
protected int e ;
};
1.3Метод Main
У каждого приложения на С# должен быть метод Main, определенный в одном из его классов. Кроме того, этот метод должен быть определен как public и static.
Компилятор С# достаточно «умен», чтобы самостоятельно просмотреть файлы исходного кода и отыскать метод Main. Между тем, этот очень важный метод является точкой входа во все приложения на С#.
Вы можете поместить метод Main в любой класс, но для его размещения рекомендуется создавать специальный класс.
1.3.1Аргументы командной строки
Вы можете обращаться к аргументам командной строки приложения, объявив метод Main как принимающий аргументы типа массива строк.
Затем аргументы могут обрабатываться так же, как любой массив.
using System;
class Сommand_Line
{
public static void Main(string[] args)
foreach (string arg in args)
{
Console. WriteLine( "Аргумент: {0}", arg);
}