Введение в классы и объекты
Часть раздела Объектно-ориентированное программирование путешествия по C# на Coddy — урок 3 из 70.
Класс — это шаблон для создания объектов. Объект — это экземпляр класса, который содержит данные и поведение.
Определите простой класс со свойствами
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
}Добавьте конструктор для инициализации объекта
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
public Dog(string name, int age)
{
Name = name;
Age = age;
}
}Добавьте метод для определения поведения
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
public Dog(string name, int age)
{
Name = name;
Age = age;
}
public string Bark()
{
return $"{Name} says Woof!";
}
}Создайте объект (экземпляр) и используйте его
Dog myDog = new Dog("Buddy", 3);
Console.WriteLine(myDog.Bark());
Console.WriteLine($"Age: {myDog.Age}");Вывод:
Buddy says Woof!
Age: 3Ключевое слово new создает экземпляр класса, вызывая конструктор. Вы можете создать несколько объектов одного и того же класса, каждый из которых будет содержать разные данные.
Задание
ЛегкоДополните класс Car, добавив конструктор и метод Drive(). Затем создайте объект Car в файле Program.cs и используйте его.
Метод Drive() должен возвращать: "The {Brand} is driving!"
Шпаргалка
Класс — это чертеж для создания объектов. Объект — это экземпляр класса, который содержит данные и поведение.
Определите класс со свойствами:
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
}Добавьте конструктор для инициализации объекта:
public class Dog
{
public string Name { get; set; }
public int Age { get; set; }
public Dog(string name, int age)
{
Name = name;
Age = age;
}
}Добавьте методы для определения поведения:
public string Bark()
{
return $"{Name} says Woof!";
}Создайте объект, используя ключевое слово new:
Dog myDog = new Dog("Buddy", 3);
Console.WriteLine(myDog.Bark());
Console.WriteLine($"Age: {myDog.Age}");Попробуйте сами
using System;
class Program
{
static void Main()
{
string brand = Console.ReadLine();
int year = int.Parse(Console.ReadLine());
// TODO: Создайте объект Car с входными значениями
// TODO: Выведите "Car: {brand} ({year})"
// TODO: Вызовите метод Drive() и выведите результат
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
1Основы ООП
Внешние файлыПространства имен и директивыВведение в классы и объектыКлючевое слово 'this'Методы и параметрыПоля и свойстваКонструкторыИнициализаторы объектовИтоги — Простой калькулятор4Наследование
Основы синтаксиса наследования (:)Ключевое слово 'base'Ключевые слова Virtual и OverrideЗапечатанные классыБазовый класс 'object'Итоги — Иерархия сотрудников7Продвинутые возможности
Перегрузка операторовИндексаторы (this[])Переопределение ToString()Методы расширенияПовторение — Пользовательский список10Паттерны проектирования. Часть 1
Введение в паттерны проектированияПотокобезопасный SingletonПаттерн FactoryПаттерн Observer (События)Паттерн Strategy13Финальные испытания
Платформа для онлайн-обученияКомпонент игрового персонажаСервис аренды транспорта2Свойства и статические члены
Автоматически реализуемые свойстваСвойства только для чтения и записиСтатические поля и методыСтатические классыЧлены в виде выражений5Полиморфизм и интерфейсы
Полиморфизм: компиляция vs выполнениеИнтерфейс vs абстрактный классМножественные интерфейсыЯвные интерфейсыUpcasting и DowncastingИтоги: Калькулятор фигур8Продвинутые концепции ООП
Композиция вместо наследованияGenerics (классы и методы)Делегаты и событияАтрибуты и рефлексияIDisposable и оператор usingОсновы Dependency Injection11Паттерны проектирования. Часть 2
Паттерн КомандаПаттерн АдаптерПаттерн ДекораторПаттерн Шаблонный методПаттерн СостояниеПаттерн Компоновщик3Архитектура классов
Экземплярные и статические данныеКлючевые слова 'readonly' и 'const'Опорные поляПовторение — Менеджер банковских счетов6Инкапсуляция
Модификаторы доступаСвойства для инкапсуляцииРеализация скрытия данныхПаттерны неизменяемостиИтоги — Записи студентов9Переменное количество аргументов
Ключевое слово 'params'Необязательные параметрыИменованные аргументыПерегрузка методов