Учебно-методический комплекс общее количество часов 58 ч. Лекции 28 ч


Статические поля, методы и классы


Download 2.46 Mb.
bet27/91
Sana19.10.2023
Hajmi2.46 Mb.
#1709453
TuriУчебно-методический комплекс
1   ...   23   24   25   26   27   28   29   30   ...   91
Bog'liq
Язык программирования C#

6.7. Статические поля, методы и классы

В языке C# не может существовать свободных, не связанных с каким-либо классом переменных, констант или функций. Но иногда возникает необходимость хранить константы, методы или переменные не связанные с конкретным экземпляром класса. В таком случае класс используется не в качестве шаблона для создания объектов, а как самостоятельное пространство имен.


Для этих целей используется спецификатор памяти static. Он ставится после спецификатора доступа, перед объявлением члена. Члены класса, помеченные спецификатором static, называются статическими. Статическими могут быть поля, методы, конструкторы и свойства. Статические методы могут обращаться только к статическим полям.

// смешанный класс


class Program
{
// статические поля
static int Number;
static string Name;

// динамические поля


int i, j, k;

// статический метод


static void StaticMethod()
{
}

// динамический или нестатический метод


void DynamicMethod()
{
Number = 0;
}

// статический метод


static void Main(string[] args)
{
}
}
Лист. 6.17

Обращение к статическим членам класс происходит по имени этого класса.


String.Copy(str);


Program.StaticMethod();
Лист. 6.18

Спецификатором static быть помечен и весь класс. В таком классе все члены класса должны быть статическими. Такой класс должен быть прямым потомком класса System.Object и не может реализовать никаких интерфейсов. Такой полностью статический класс существует только для группировки логических связанных элементов.


Примерами статических классов служат System.Console и System.Math.

// статический класс


static class aClass
{
// статическое поле
public static int i;

// статический метод


public static void Method()
{
}
}
Лист. 6.19

Обращение к членам статического класса происходит по имени класса и члена.


double y = Math.Sin(x);


Console.WriteLine();
Лист. 6.20

Статическими наряду с полями и методами могут быть конструкторы. Статические конструкторы класса вызываются средой .Net Framework до создания первого объекта класса и используются для инициализации статических полей. Статические конструкторы не имеют параметры и не могут быть напрямую вызваны программистом.


class ClassWithStaticConstructor
{
public static string aString;

static ClassWithStaticConstructor()


{
Console.WriteLine("Вызыван статический конструктор");
}
}

class Program


{
static void Main(string[] args)
{
Console.WriteLine(ClassWithStaticConstructor.aString);
}
}
Лист. 6.21

В этом листинге определены два класса. Первый класс ClassWithStaticConstructor имеет одно статическое поле и статический конструктор, инициализирующий это поле и выводящий информацию о том, что он был вызван средой выполнения. Второй класс Program содержит метод Main, который выводит значение поля aString класса ClassWithStaticConstructor.


Вывод программы:

Вызыван статический конструктор


ClassWithStaticConstructor
Вывод. 6.4



Download 2.46 Mb.

Do'stlaringiz bilan baham:
1   ...   23   24   25   26   27   28   29   30   ...   91




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling