Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
99 Кб
Скачать
☆

Классы в Си-шарп. Объявление классов и создание объектов

Класс – это абстрактный тип данных. Другими словами, класс – это некоторый шаблон, на основе которого будут создаваться его экземпляры – объекты. В Си-шарп классы объявляются с помощью ключевого слова class. Общая структура объявления выглядит следующим образом:

[модификатор доступа] class [имя_класса] {    //тело класса }

Модификаторов доступа для классов есть два: - public – доступ к классу возможен из любого места одной сборки либо из другой сборки, на которую есть ссылка; - internal – доступ к классу возможен только из сборки, в которой он объявлен. Что такое сборка? Сборка (assembly) – это готовый функциональный модуль в виде exe либо dll файла (файлов), который содержит скомпилированный код для .NET. Сборка предоставляет возможность повторного использования кода. При объявлении класса модификатор доступа можно не указывать, при этом будет применяться режим по умолчанию internal. Класс следует объявлять внутри пространства имен namespace, но за пределами другого класса (возможно также объявление класса внутри другого - вложенные типы, но это тема отдельного урока).  Пример объявления классов Student и Pupil:

namespace HelloWorld {    class Student //без указания модификатор доступа, класс будет internal    {      //тело класса    }    public class Pupil   {     //тело класса   } }

Члены класса Классы в Си-шарп могут содержать следующие члены: - поля; - константы; - свойства; - конструкторы; - методы; - события; - операторы; - индексаторы; - вложенные типы. Все члены класса, как и сам класс, имеют свой уровень доступа. Только у членов их может быть уже пять: - public – доступ к члену возможен из любого места одной сборки, либо из другой сборки, на которую есть ссылка; - protected – доступ к члену возможен только внутри класса, либо в классе-наследнике (при наследовании); - internal – доступ к члену возможен только из сборки, в которой он объявлен; - private – доступ к члену возможен только внутри класса; - protected internal - доступ к члену возможен из одной сборки, либо из класса-наследника другой сборки. Не указав модификатор доступа для члена, по умолчанию ему будет присвоен режим private. При помощи модификаторов доступа в Си-шарп реализуется один из базовых принципов ООП – инкапсуляция. В этом уроке мы рассмотрим такие члены класса, как поля и константы. Поля класса Поле – это переменная, объявленная внутри класса. Как правило, поля объявляются с модификаторами доступа private либо protected, чтобы запретить прямой доступ к ним. Для получения доступа к полям следует использовать свойства или методы. Пример объявления полей в классе:

class Student {    private string firstName;    private string lastName;    private int age;    public string group; // не рекомендуется использовать public для поля }

Создание объектов Объявив класс, мы теперь можем создавать объекты. Делается это при помощи ключевого слова new и имени класса:

namespace HelloWorld {    class Student    {      private string firstName;      private string lastName;      private int age;      public string group;    }    class Program    {      static void Main(string[] args)      {        Student student1 = new Student(); //создание объекта student1 класса Student        Student student2 = new Student();      }    } }

Доступ к членам объекта осуществляется при помощи оператора точка «.» :

static void Main(string[] args) {    Student student1 = new Student();    Student student2 = new Student();    student1.group = "Group1";    student2.group = "Group2";    Console.WriteLine(student1.group); // выводит на экран "Group1"    Console.Write(student2.group);    Console.ReadKey(); }

Такие поля класса Student, как firstName, lastName и age указанны с модификатором доступа private, поэтому доступ к ним будет запрещен вне класса:

static void Main(string[] args) {    Student student1 = new Student();     student1.firstName= "Nikolay"; //ошибка, нет доступа к полю firstName. Программа не скомпилируется  }

Константы Константы-члены класса ничем не отличаются от простых констант внутри методов, которые рассматривались в уроке переменные и константы.  Константа – это переменная, значений которое нельзя изменить. Константа объявляется с помощью ключевого слова const. Пример объявления константы:

class Math {    private const double Pi = 3.14; }

Домашнее задание Создайте какой-нибудь класс (например класс Автомобиль), объявите в нем поля с различными режимами доступа (private, protected, internal, public). Создайте объект класса, и попытайтесь записать/получить данные с различных полей.