logo
Учебник_ПОА

Инкапсуляция

Обычно класс определяет характеристики объекта и выполняемые им действия. Например, чтобы определить класс животного в C#, необходимо задать ему размер, скорость и силу, представленными в виде чисел, а также некоторые функции, например MoveLeft(), MoveRight(), SpeedUp(), Stop() и так далее, в которых можно написать код для выполнения "животным" этих действий. В C# класс животного может выглядеть следующим образом.

public class Animal

{

private int size;

private float speed;

private int strength;

public void MoveLeft() // method

{

// code goes here...

}

// other methods go here...

}

При знакомстве с .NET Framework Class Library будет ясно, что каждый класс представляет собой "нечто", например XmlDocument, String, Form, и для каждого такого "нечто" существуют различные действия, которые оно может выполнить (методы), характеристики, которые можно прочитать и изменить (свойства), и уведомления (события), формируемые при совершении тех или иных действий. Методы, свойства и события, а также все остальные внутренние переменные и постоянные характеристики (поля) называются членами класса.

Группировка членов в классы имеет не только логический смысл, она также позволяет скрывать данные и функции, которые должны быть недоступны для другого кода. Этот принцип называют инкапсуляцией. При использовании классов из библиотек платформы .NET Framework будут видны только открытые члены этих классов. Каждый класс может иметь закрытые члены, используемые либо только внутри этого класса, либо определенными связанными с ним классами. Закрытые члены не предназначены для использования приложениями, использующими сам класс. Создавая собственные классы, нужно решить, какие члены будут открытыми, а какие — закрытыми.