Читайте также:
|
|
Нестатический класс может содержать статические методы, поля, свойства или события. Статический член вызывается для класса даже в том случае, если не создано экземпляра класса. Доступ к статическому члены всегда выполняется по имени класса, а не экземпляра. Существует только одна копия статического члена, независимо от того, сколько создано экземпляров класса. Статические методы и свойства не могут обращаться к нестатическим полям и событиям в их содержащем типе, и они не могут обращаться к переменной экземпляра объекта, если он не передается явно в параметре метода.
Более привычно объявление нестатического класса с несколькими статическими членами, чем объявлять весь класс как статический. Статические поля обычно используются для следующих двух целей: хранение счетчика числа созданных объектов, или хранение значения, которое должно совместно использоваться всеми экземплярами.
Пример создание статических членов класса:
public class Automobile
{
public static int NumberOfWheels = 4;
public static int SizeOfGasTank
{
get
{
return 15;
}
}
public static void Drive() { }
}
Singleton используется для создания объекта класса в единственном экземпляре. Если создан один объект данного класса, дальнейшие попытки создания объектов этого класса не дадут никаких результатов. Это обеспечивается за счет присутствия в классе статической переменной, которая указывает, был ли уже создан экземпляр класса.
Пример Singleton:
class Earth
{
private static Earth instance;
// конструктор объявлен так, чтобы не исключать наследование
protected Earth() { }
public static Earth Instance()
{
// инициализируем
if (instance == null)
{
instance = new Earth();
}
return instance;
}
}
18. Агрегация, иерархия «является частью»
Агрегация – это отношение объектов, при котором один из них является частью другого (is part of).
Дата добавления: 2015-07-25; просмотров: 56 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Деструкторы, виртуальные деструкторы | | | Базовый класс исключений, конструкторы, реализация собственного класса исключений |