Классы в C#
Классы являются одним из элементов ООП(объектно-ориентированного программирования). Классы объединяют в себе данные и код для их обработки.
Класс объявляется с помощью ключевого слова class. После ключевого слова идет имя класса, потом содержимое, заключенное в фигурные скобки.
class Animal { string Name { get; set; } void Speak() { Console.WriteLine(this.Name); } }
Класс животного содержит свойство Name — имя животного, и метод Speak() выводящий имя в консоль.
Модификаторы доступа
При создании класса можно указать видимость это класса. Для этого используются следующие модификаторы:
internal — класс доступен только в той сборке, в которой объявлен.
public — класс доступен из других сборок.
Значение по умолчанию — internal.
Пример указания модификатора:
public class Animal { ... }
Конструкторы
Конструктор — это метод, которые вызывается для создания экземпляра класса. Его имя должно совпадать с именем класса. Класс может иметь несколько конструкторов с разными наборами параметров. Если у класса не указан ни один конструктор — компилятор создает неявный конструктор без параметров.
Пример класса с конструктором:
class Animal { string Name { get; set; } void Speak() { Console.WriteLine(this.Name); } public Animal(string name) { this.Name = name; } }
Деструкторы
Деструктор — метод, который отрабатывает при уничтожении объекта. В .Net они называются финализаторами. Объявляется финализатор следующим образом:
class Animal { ~Animal() { } }
Учитывая наличие в .Net сборки мусора, писать деструкторы нужно крайне редко.
Абстрактные классы в C#
Абстрактные классы — такие классы, экземпляры которых создавать нельзя. Но можно создавать экземпляры их потомков.
Абстрактные классы могут содержать абстрактные методы, т.е. методы без реализации. Нельзя объявить неабстрактный класс с абстрактным методом.
Объявляются такие классы с помощью ключевого слова abstract
public abstract class Animal { ... }
Статические классы в C#
Статические классы — это такие классы, экземпляры которых не могут быть созданы. Объявляются с использованием ключевого слова static.
static class Animal { ... }
Статические могут содержать только статические методы.