Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю - Страница 105
- Предыдущая
- 105/642
- Следующая
Обратите внимание, что переменные-члены объявлены с применением модификатора доступа
public
public
new
На заметку! Поля данных класса редко (если вообще когда-нибудь) должны определяться как открытые. Чтобы обеспечить целостность данных состояния, намного лучше объявлять данные закрытыми (
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.
Размещение объектов с помощью ключевого слова new
Как было показано в предыдущем примере кода, объекты должны размещаться в памяти с применением ключевого слова
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
В любом случае к настоящему моменту мы имеем простейший класс, в котором определено несколько элементов данных и ряд базовых операций. Чтобы расширить функциональность текущего класса
Car
Понятие конструкторов
Учитывая наличие у объекта состояния (представленного значениями его переменных-членов), обычно желательно присвоить подходящие значения полям объекта перед тем, как работать с ним. В настоящее время класс
Car
petName
currSpeed
- Предыдущая
- 105/642
- Следующая