Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Классы, объекты и ссылки
Классы, объекты и ссылки
Чтобы очертить контуры темы, рассматриваемой в данной главе, необходимо уточнить различия между класcами, объектами и ссылками. В предыдущей главе уже говорилось о том, что класс – это своеобразный "шаблон" с описанием того, как экземпляр данного типа должен выглядеть и вести себя в памяти. Классы определяются в файлах, которые по соглашению в C# имеют расширение *.cs. Рассмотрим простой класс Car (автомобиль), определённый в файле Car.cs.
public class Car {
private int currSp;
private string petName;
public Car(){}
public Car(string name, int speed) {
petName = name;
currSp = speed;
}
public override string ToString() {
return String.Format("{0} имеет скорость {1} км/ч", petName, currSp);
}
}
Определив класс, вы можете разместить в памяти любое число соответствующих объектов, используя ключевое слово C# new. При этом, однако, следует понимать, что ключевое слово new возвращает ссылку на объект в динамической памяти, а не сам реальный объект. Эта переменная со ссылкой запоминается в стеке для использования в приложении в дальнейшем. Для вызова членов объекта следует применить к сохраненной ссылке операцию C#, обозначаемую точкой.
class Program {
static void Main(string[] args) {
// Создается новый объект Car в динамической памяти.
// Возвращается ссылка на этот объект ('refТоМуСаr').
Car refToMyCar = new Car("Zippy", 50);
// Операция C#, обозначаемая точкой (.), используется
// со ссылочной переменной для вызова членов этого объекта.
Console.WriteLine(refToMyCar.ToString());
Console.ReadLine();
}
}
На рис. 5.1 изображена схема, иллюстрирующая взаимосвязь между классами, объектами и их ссылками.
Рис. 5.1. Ссылки на объекты в управляемой динамической памяти
- Классы, объекты и ссылки
- Основные сведения о существовании объектов
- Роль корней приложения
- Генерации объектов
- Тип System.GC
- Создание объектов, предусматривающих финализацию
- Создание объектов, предусматривающих освобождение ресурсов
- Создание типов, предусматривающих освобождение ресурсов и финализацию
- Резюме