Объектно-ориентированное программирование — одна из самых популярных парадигм программирования. Это связано с тем, что он моделирует как данные, так и функции и позволяет вам мыслить с точки зрения объектов реального мира. Классы являются фундаментальным аспектом объектно-ориентированного программирования, поскольку они предоставляют схему, необходимую для создания объектов.
C# — популярный мультипарадигменный язык программирования, использующий объектно-ориентированную парадигму. В этой статье вы узнаете, как создавать и использовать классы в C#.
Создание объявления класса
В C# класс — это ссылочный тип, который будет содержать нулевой значение, пока вы не создадите новый объект класса. Для создания нового класса в C# вам понадобится несколько компонентов:
- Модификатор доступа.
- учебный класс ключевое слово.
- Имя, которое вы хотите присвоить классу.
- Пара открывающих и закрывающих фигурных скобок (которые заключают в себе атрибуты, конструкторы и методы класса).
внутренний учебный классПокупатель{ }
Приведенный выше код создает новый класс, доступный другим классам в той же сборке (файле компиляции). 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# для определения классов и создания из них объектов. Вы можете создавать методы для каждого класса, которые затем могут работать с атрибутами своих объектов.
Однако объектно-ориентированная парадигма — не единственная, с которой вам необходимо ознакомиться. Три основные парадигмы программирования — императивная, объектно-ориентированная и функциональная.