Объектно-ориентированное программирование — одна из самых популярных парадигм программирования. Это связано с тем, что он моделирует как данные, так и функции и позволяет вам мыслить с точки зрения объектов реального мира. Классы являются фундаментальным аспектом объектно-ориентированного программирования, поскольку они предоставляют схему, необходимую для создания объектов.

C# — популярный мультипарадигменный язык программирования, использующий объектно-ориентированную парадигму. В этой статье вы узнаете, как создавать и использовать классы в C#.

Создание объявления класса

В C# класс — это ссылочный тип, который будет содержать нулевой значение, пока вы не создадите новый объект класса. Для создания нового класса в C# вам понадобится несколько компонентов:

  • Модификатор доступа.
  • учебный класс ключевое слово.
  • Имя, которое вы хотите присвоить классу.
  • Пара открывающих и закрывающих фигурных скобок (которые заключают в себе атрибуты, конструкторы и методы класса).
внутренний учебный классПокупатель{ }
instagram viewer

Приведенный выше код создает новый класс, доступный другим классам в той же сборке (файле компиляции). C# имеет ровно шесть модификаторов доступа, которые вы можете использовать для управления уровнями доступности ваших классов, переменных и методов. Шесть модификаторов доступа:

  • публичный: каждый класс (независимо от его сборки) может получить доступ к открытому классу и его открытым членам (атрибутам, конструкторам и методам).
  • частный: только закрытый класс и его члены могут получить к нему доступ.
  • защищенный: только производные классы (дочерние и внуки) могут получить доступ к защищенному классу.
  • внутренний: только классы в одной сборке могут получить доступ к внутреннему классу.
  • защищенный внутренний: только классы в той же сборке или производный класс из другой сборки могут получить доступ к защищенному внутреннему классу.
  • частный охраняемый: только производные классы в той же сборке могут получить доступ к частному защищенному классу.

Объявление атрибутов и доступ к ним

Атрибуты — это строительные блоки для создаваемых вами классов. Они содержат конфиденциальные данные и обычно имеют модификатор доступа private или protected. Следовательно, для доступа к этим классам из внешних классов вам нужно будет использовать средства доступа и мутаторы (геттеры и сеттеры).

C# позволяет вам объявлять ваши атрибуты, мутаторы и методы доступа следующим образом:

внутренний учебный классПокупатель
{
// атрибуты
частныйинт Идентификационный номер;
частный имя строки;
частныйдвойной Общий;

// сеттеры
публичныйпустотаSetIdNumber(инт Идентификационный номер){ это.идентификационный номер = идентификационный номер; }
публичныйпустотаИмя набора(имя строки){ это.Имя = Имя; }
публичныйпустотаSetTotal(двойной Общий){ это.Всего = Всего; }

// геттеры
публичныйинтGetIdNumber(){ возвращатьсяэто.Идентификационный номер; }
публичный нить GetName(){ возвращатьсяэто.Имя; }
публичныйдвойнойПолучитьИтог(){ возвращатьсяэто.Общий; }
}

Другие популярные объектно-ориентированные языки также используйте описанный выше подход. На самом деле, если вы хотите создавать классы Java, вам придется использовать структуру выше. Однако в C# теперь есть более простой способ создания атрибутов и методов доступа. В C# этот класс выполняет ту же функцию, что и приведенный выше:

внутренний учебный классПокупатель
{
публичный внутренний идентификатор { получить; установлен; }
общедоступная строка Имя { получить; установлен; }
общественное двойное Всего { получить; установлен; }
}

Приведенный выше класс содержит то, что C# вызывает характеристики, представляющий собой комбинацию атрибутов (полей) и методов. С характеристики, вы можете вдвое сократить код объявления атрибутов, мутаторов и средств доступа.

Объявление конструкторов

Конструкторы — еще один фундаментальный аспект класса. Чтобы создать объект из класса, вам нужно будет вызвать один из его конструкторов. Каждый конструктор имеет необязательный модификатор доступа и то же имя, что и его класс. Для объектно-ориентированных языков программирования обычно существует три типа конструкторов:

  • Конструктор по умолчанию: не принимает аргументов и предоставляет каждому атрибуту значение по умолчанию.
  • Основной конструктор: принимает один или несколько аргументов (в зависимости от количества переменных в классе).
  • Конструктор копирования: принимает другой конструктор в качестве аргумента.

C# имеет общий термин для конструкторов по умолчанию и первичных конструкторов выше — конструкторы экземпляров. Этот язык программирования также имеет два других конструктора (частный и статический). В этой статье основное внимание уделяется трем традиционным конструкторам.

Конструктор по умолчанию

// конструктор по умолчанию
публичный Покупатель()
{
Идентификационный номер = 0;
Имя = "неизвестный";
Всего = 0;
}

Основной конструктор

// первичный конструктор
публичныйПокупатель(инт IdNumber, строка Name, строка CustomerType, двойной Общий)
{
это.идентификационный номер = идентификационный номер;
это.Имя = Имя;
это.Всего = Всего;
}

Копировать конструктор

// конструктор копирования
публичный Заказчик (Клиент предыдущийКлиент)
{
это.IdNumber = предыдущийКлиент. Идентификационный номер;
это.Name = предыдущийКлиент. Имя;
это.Total = предыдущийКлиент. Общий;
}

Создание методов

Методы не являются ключевым компонентом класса, но они полезны. Класс может иметь один или несколько методов. У метода есть модификатор доступа, тип возвращаемого значения, имя и тело.

// метод
публичный строка CustomerDetail()
{
возвращаться " Я БЫ: " + Идентификационный номер + " Имя: " + Имя + " Общий: " + Всего;
}

Приведенный выше код возвращает строковое представление объекта клиента.

Создание объектов

После создания полного класса, оснащения его атрибутами, конструкторами и методом, вы можете приступить к созданию объектов с помощью различных конструкторов. Чтобы создать объект без атрибутов, вы можете использовать конструктор по умолчанию:

Клиент Джон = новый Покупатель();

Строка кода выше создает клиента по умолчанию и присваивает его переменной с именем Джон. С Джон, вы можете получить доступ к значению по умолчанию для каждого атрибута клиента.

Приставка.WriteLine(Джон.Имя);

Выполнение приведенного выше кода выводит в консоли следующее:

Неизвестный

Вы также можете использовать Джон переменная для доступа к любому методу в классе клиента.

Приставка.WriteLine(Джон.CustomerDetail());

Выполнение приведенной выше строки кода выводит в консоли следующий вывод:

ID: 0 Имя: неизвестно Всего: 0

Чтобы создать объект с атрибутами, вы должны использовать основной конструктор:

Клиент Джон = новый клиент (1001, "Джон Доу", 250.20);
Приставка.WriteLine(Джон.CustomerDetail());

Выполнение приведенного выше кода выводит в консоли следующий вывод:

Я БЫ: 1001 Имя: ДжонДоуОбщий: 250.2

Чтобы создать копию объекта выше, вы можете использовать конструктор копирования:

Клиент Джонни = новый Клиент (Джон);
Приставка.WriteLine(Джонни.CustomerDetail());

Выполнение приведенного выше кода выводит в консоли следующий вывод:

Я БЫ: 1001 Имя: ДжонДоуОбщий: 250.2

Как видите, конструктор копирования является копией основного конструктора. Конструктор копирования также может принимать в качестве аргумента конструктор по умолчанию:

Клиент Джон = новый Покупатель();
Клиент Джонни = новый Клиент (Джон);
Приставка.WriteLine(Джонни.CustomerDetail());

Выполнение приведенного выше кода выводит в консоли следующий вывод:

ID: 0 Имя: неизвестно Всего: 0

Теперь вы можете создавать и использовать классы C#

Вы можете использовать объектно-ориентированную парадигму C# для определения классов и создания из них объектов. Вы можете создавать методы для каждого класса, которые затем могут работать с атрибутами своих объектов.

Однако объектно-ориентированная парадигма — не единственная, с которой вам необходимо ознакомиться. Три основные парадигмы программирования — императивная, объектно-ориентированная и функциональная.