Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Классы и объекты в C#: Фундаменты надёжного ООП

Классы и объекты в C#: Фундаменты надёжного ООП

В этом уроке вы узнаете о концепции классов и объектов в C# с помощью примеров.

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

Для работы с объектами нужно выполнить следующие действия:


Класс в C#

Класс — это чертеж для объекта. Представьте его как план дома: он определяет комнаты, двери, окна и структурные правила. Реальный дом, построенный по этому плану, — это объект.

Множество домов могут иметь один план, так же как много объектов можно создать из одного класса.

Создание класса в C#

class ClassName { }

Здесь определён класс с именем ClassName. Класс может содержать

Пример:

class Dog {
    // Поле
    string breed;
    // Метод
    public void Bark() {
        // Реализация
    }
}

В примере выше:

Примечание: В C# члены класса включают и поля, и методы.


Объекты в C#

Объект — экземпляр класса. Например, класс Dog может породить объекты вроде Бульдог, Немецкая овчарка или Мопс.

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

ClassName obj = new ClassName();

Здесь new создаёт объект; obj — его имя. Например:

Dog bullDog = new Dog();

Объект bullDog теперь может обращаться к полям и методам, определённым в Dog.


Доступ к членам класса через объект

Доступ к членам осуществляется оператором точки (.):

using System;
namespace ClassObject {
    class Dog {
        string breed;
        public void Bark() {
            Console.WriteLine("Bark Bark !!");
        }
        static void Main(string[] args) {
            // создание объекта Dog
            Dog bullDog = new Dog();
            // установка породы
            bullDog.breed = "Bull Dog";
            Console.WriteLine(bullDog.breed);
            // вызов метода
            bullDog.Bark();
            Console.ReadLine();
        }
    }
}

Вывод

Bull Dog Bark Bark !!

Обратите внимание на использование bullDog и оператора точки для доступа к breed и Bark().


Создание нескольких объектов одного класса

Создайте несколько экземпляров из одного класса, каждый со своими данными:

using System;
namespace ClassObject {
    class Employee {
        string department;
        static void Main(string[] args) {
            // первый сотрудник
            Employee sheeran = new Employee();
            sheeran.department = "Development";
            Console.WriteLine("Sheeran: " + sheeran.department);
            // второй сотрудник
            Employee taylor = new Employee();
            taylor.department = "Content Writing";
            Console.WriteLine("Taylor: " + taylor.department);
            Console.ReadLine();
        }
    }
}

Вывод

Sheeran: Development Taylor: Content Writing

Каждый объект хранит своё значение department.


Создание объектов в другом классе

Объекты могут создаваться в других классах. Например:

using System;
namespace ClassObject {
    class Employee {
        public string name;
        public void Work(string work) {
            Console.WriteLine("Work: " + work);
        }
    }
    class EmployeeDrive {
        static void Main(string[] args) {
            // создание объекта Employee
            Employee e1 = new Employee();
            Console.WriteLine("Employee 1");
            // установка имени
            e1.name = "Gloria";
            Console.WriteLine("Name: " + e1.name);
            // вызов метода
            e1.Work("Coding");
            Console.ReadLine();
        }
    }
}

Вывод

Employee 1 Name: Gloria Work: Coding

Здесь EmployeeDrive создаёт объект Employee. Публичные члены позволяют межклассовый доступ. Подробнее о модификаторах доступа в официальной документации.


Зачем нужны объекты и классы?

Классы и объекты обеспечивают модульный дизайн. Для игры со множеством врагов один класс Enemy может определять health, ammo, Shoot() и Run(). Каждый экземпляр врага тогда хранит своё состояние, разделяя поведение.

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

Язык C

  1. Абстрактные классы и методы в C#: практическое руководство
  2. Частичные классы и методы в C#: понимание и применение
  3. Sealed-классы и sealed-методы в C#: когда использовать, примеры и повышение безопасности кода
  4. Классы и объекты в C++: практическое руководство по объектно-ориентированному программированию
  5. Дружественные функции и классы в C++: мастерство контроля доступа
  6. Объектно-ориентированное программирование в Python: классы, наследование, инкапсуляция и полиморфизм
  7. Классы и объекты в Java: практическое руководство
  8. Абстрактные классы и методы в Java: полное руководство
  9. Вложенные и внутренние классы в Java: типы, примеры и лучшие практики
  10. Паттерн Singleton в Java: как реализовать и безопасно использовать