Читаем Язык программирования C#9 и платформа .NET5 полностью

На заметку! Поля данных класса редко (если вообще когда-нибудь) должны определяться как открытые. Чтобы обеспечить целостность данных состояния, намного лучше объявлять данные закрытыми (private) или возможно защищенными (protected) и разрешать контролируемый доступ к данным через свойства (как будет показано далее в главе). Тем не менее, для максимального упрощения первого примера мы определили поля данных как открытые.

После определения набора переменных-членов, представляющих состояние класса, следующим шагом в проектировании будет установка членов, которые моделируют его поведение. Для этого примера в классе Car определены методы по имени SpeedUp и PrintState. Модифицируйте код класса Car следующим образом:

class Car

{

  // 'Состояние' объекта Car.

  public string petName;

  public int currSpeed;

  // Функциональность Car.

  // Использовать синтаксис членов, сжатых до выражений,

  // который рассматривался в главе 4.

  public void PrintState

    => Console.WriteLine("{0} is going {1} MPH.", petName, currSpeed);

  public void SpeedUp(int delta)

    => currSpeed += delta;

}

Метод PrintState — простая диагностическая функция, которая выводит текущее состояние объекта Car в окно командной строки. Метод SpeedUp увеличивает скорость автомобиля, представляемого объектом Car, на величину, которая передается во входном параметре типа int. Обновите операторы верхнего уровня в файле Program.cs, как показано ниже:

Console.WriteLine("***** Fun with Class Types *****\n");

// Разместить в памяти и сконфигурировать объект Car.

Car myCar = new Car;

myCar.petName = "Henry";

myCar.currSpeed = 10;

// Увеличить скорость автомобиля в несколько раз и вывести новое состояние.

for (int i = 0; i <= 10; i++)

{

  myCar.SpeedUp(5);

  myCar.PrintState;

}

Console.ReadLine;

Запустив программу, вы увидите, что переменная Car (myCar) поддерживает свое текущее состояние на протяжении жизни приложения:

***** Fun with Class Types *****

Henry is going 15 MPH.

Henry is going 20 MPH.

Henry is going 25 MPH.

Henry is going 30 MPH.

Henry is going 35 MPH.

Henry is going 40 MPH.

Henry is going 45 MPH.

Henry is going 50 MPH.

Henry is going 55 MPH.

Henry is going 60 MPH.

Henry is going 65 MPH.

<p id="AutBody_Root207">Размещение объектов с помощью ключевого слова new</p>

Как было показано в предыдущем примере кода, объекты должны размещаться в памяти с применением ключевого слова new. Если вы не укажете ключевое слово new и попытаетесь использовать переменную класса в последующем операторе кода, то получите ошибку на этапе компиляции. Например, приведенные далее операторы верхнего уровня не скомпилируются:

Console.WriteLine("***** Fun with Class Types *****\n");

// Ошибка на этапе компиляции! Забыли использовать new для создания объекта!

Car myCar;

myCar.petName = "Fred";

Чтобы корректно создать объект с применением ключевого слова new, можно определить и разместить в памяти объект Car в одной строке кода:

Console.WriteLine("***** Fun with Class Types *****\n");

Car myCar = new Car;

myCar.petName = "Fred";

В качестве альтернативы определение и размещение в памяти экземпляра класса может осуществляться в отдельных строках кода:

Console.WriteLine("***** Fun with Class Types *****\n");

Car myCar;

myCar = new Car;

myCar.petName = "Fred";

Здесь первый оператор кода просто объявляет ссылку на определяемый объект типа Car. Ссылка будет указывать на действительный объект в памяти только после ее явного присваивания.

Перейти на страницу:

Похожие книги

97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT