Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Документ Microsoft Office Word.docx
Скачиваний:
8
Добавлен:
22.05.2015
Размер:
46.63 Кб
Скачать

Вопрос 7

Классы, основные понятия, спецификаторы

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

Общее определение класса:

[атрибуты][спецификаторы] class имя_класса [: предки]

{тело_класса}

Обязательным является только ключевое слово class а также имя (заданное по общим правилам языка) и тело класса (список его членов), заключенное в фигурные скобки. Если класс не содержит ни одного члена, то список класса будет пустым. Например:

class Prim{}

Спецификаторы доступа класса

Таблица1- Спецификаторы доступа класса

Спецификатор

Описание

1

public

Доступ не ограничен.

2

protected

Используется для вложенных классов. Доступ только из элементов данного и производных классов.

3

internal

Доступ только из данной программы (сборки).

4

protected internal

Доступ только из данного и производных классов или из данной программы (сборки).

5

private

Используется для вложенных классов. Доступ только из элементов класса, внутри которого описан данный класс.

Вопрос 8

Данные: поля и константы

Данные, содержащиеся в классе, могут быть переменными или константами и задаются в соответствии с уже рассмотренными правилами. Переменные, описанные в классе, называются полями класса. Синтаксис описания элемента данных:

[ атрибуты ] [ спецификаторы ] [ const ] тип имя [ = начальное_значение]

В данном описании обязательными элементами являются тип и имя.

Спецификаторы полей и констант класса

Спецификатор

Описание

1

new

Новое описание поля, скрывающее унаследованный элемент класса.

2

public

Доступ к элементу не ограничен.

3

protected

Доступ только из элементов данного и производных классов.

4

internal

Доступ только из данной программы (сборки).

5

protected internal

Доступ только из данного и производных классов или из данной программы (сборки).

6

private

Доступ только из данного класса.

7

volatile

Поле может изменяться другим процессом или системой.

8

readonly

Поле доступно только для чтения.

9

static

Одно поле для всех экземпляров класса.

Для констант можно использовать только спецификаторы 1-6. Указание типа доступа необязательно. По умолчанию элементы класса считаются закрытыми (private). Поля, описанные со спецификатором static, а также константы существуют в единственном экземпляре для всех объектов класса, поэтому к ним обращаются не через имя экземпляра, а через имя класса

using System;

namespace ConsoleApplication2

{

class Prim

{

public int p = 1; //поле данных типа int, доступ неограничен

public const double z = -5.31; //константа типа double, доступ неограничен

public static string s = " Prim "; //статическое поле класса, доступ неограничен

double y; //закрытое поле данных типа double

}

class Class1

{

static void Main()

{

Prim a = new Prim(); // создание экземпляра класса prim

Console.WriteLine(a.p); // вывод значения поля p экземпляра класса a

Console.WriteLine(Prim.z); // вывод значения константы z класса Prim

Console.WriteLine(Prim.s); // вывод значения статическое поля s класса Prim

}

}

}