Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 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. Ссылки на объекты в управляемой динамической памяти

Оглавление книги


Генерация: 0.894. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз