C#. Урок 6. Классы

Уроки для опытных   8 февраля 2013  Автор статьи:  

В данном уроке начинается знакомство с объектно-ориентированным программированием. Он будет посвящен классам.

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

[атрибуты]
[модификаторы] class Имя_класса : [родитель]
{
[атрибуты]
[модификаторы] тип имя_поля [= значение];
[атрибуты]
[модификаторы] тип Имя_свойства
{
[модификаторы] get {тело_метода};
[модификаторы] set {тело_метода};
}
[атрибуты]
[модификаторы] тип Имя_метода ([параметры])
{
тело_метода;
}
}

В квадратных скобках указаны необязательные элементы. Покажем на примере класса Money:

public class Money
{
private int nominal;
private int quantity;
public int Nominal
{
get { return nominal; }
set { nominal = value; }
}
public int Quantity
{
get { return quantity; }
set { quantity = value; }
}
public Money(int x, int y)
{
this.nominal = x;
this.quantity = y;
}
public int Sum()
{
return (nominal * quantity);
}
}

Возможно использование следующих модификаторов:

Модификатор Поле Метод Класс
private + + +
protected + +
internal + + +
protected internal + +
public + + +
static + + +
sealed + +
abstract + +
virtual +
override +
new +

Модификатором по умолчанию для класса является internal, метода и поля — private. Рассмотрим значение нескольких модификаторов таким образом: сначала для класса, затем для полей и методов.

  • Private
    Доступ только из элементов класса, внутри которых описан данный класс. Используется для вложенных классов.
    Поля и методы доступны только из данного класса.
  • Protected
    Поля и методы доступны только из данного класса и его потомков.
  • Internal
    Доступ только из данного проекта (сборки).
    Аналогично.
  • Protected Internal
    Методы доступны из данного проекта (сборки) или в потомках.
  • Public
    Доступ не ограничен.
    Аналогично.

Стоит заметить, что поля настоятельно рекомендуется делать private, а доступ осуществлять к ним через свойства.

Научиться программировать

  • на Delphi

  • на Java

  • на C++