Описание тега class
Не путать с классами CSS. Вместо этого используйте css.
В объектно-ориентированном программировании (см. Oop) класс - это конструкция, которая используется в качестве схемы (или шаблона) для создания объектов этого класса. Этот план описывает состояние и поведение, которые разделяют все объекты класса. Объект данного класса называется экземпляром класса. Класс, который содержит (и использовался для создания) этого экземпляра, может рассматриваться как тип этого объекта, например, экземпляр объекта
Fruit
класс будет типа Fruit
.Класс обычно представляет собой существительное, такое как человек, место или (возможно, довольно абстрактная) вещь - это модель концепции в компьютерной программе. По сути, он инкапсулирует состояние и поведение концепции, которую представляет. Он инкапсулирует состояние через заполнители данных, называемые атрибутами (или переменными-членами, или переменными экземпляра, или полями); он инкапсулирует поведение с помощью многократно используемых участков кода, называемых методами.
С технической точки зрения класс - это единый пакет, состоящий из метаданных определенного типа. У класса есть как интерфейс, так и структура. Интерфейс описывает, как взаимодействовать с классом и его экземплярами с помощью методов, а структура описывает, как данные разделяются на атрибуты внутри экземпляра. Класс также может иметь представление (метаобъект) во время выполнения, которое обеспечивает во время выполнения поддержку для управления метаданными, относящимися к классу. В объектно-ориентированном дизайне класс - это наиболее конкретный тип объекта по отношению к определенному слою.
Пример объявления класса в C#:
/// <summary>
/// Class which objects will say "Hello" to any target :)
/// </summary>
class HelloAnything
{
/// <summary>
/// Target for "Hello". Private attribute that will be set only once
////when object is created. Only objects of this class can access
/// their own target attribute.
/// </summary>
private readonly string target;
/// <summary>
/// Constructor. Code that will execute when instance of class is created.
/// </summary>
/// <param name="target">Target for "Hello". If nothing specified then
/// will be used default value "World".</param>
public HelloAnything(string target = "World")
{
//Save value in the inner attribute for using in the future.
this.target = target;
}
/// <summary>
/// Returns phrase with greeting to the specified target.
/// </summary>
/// <returns>Text of greeting.</returns>
public string SayHello()
{
return "Hello, " + target + "!";
}
}
Используя пример определенного класса:
class Program
{
static void Main(string[] args)
{
//Say hello to the specified target.
HelloAnything greeting = new HelloAnything("stackru");
Console.WriteLine(greeting.SayHello());
//Say hello to the "default" target.
greeting = new HelloAnything();
Console.WriteLine(greeting.SayHello());
}
}
Результат вывода:
Hello, stackru!
Hello, World!
Компьютерные программы обычно моделируют аспекты некоторого реального или абстрактного мира (Области). Поскольку каждый класс моделирует концепцию, классы обеспечивают более естественный способ создания таких моделей. Каждый класс в модели представляет существительное в домене, а методы класса представляют глаголы, которые могут применяться к этому существительному.
Например, в типичной бизнес-системе различные аспекты бизнеса моделируются с использованием таких классов, как Customer
, Product
, Worker
, Invoice
, Job
и др. Invoice
могут быть такие методы, как Create
, Print
или Send
, а Job
может быть Perform
-ed или Cancel
-лед и др.
Как только система сможет точно моделировать аспекты бизнеса, она сможет предоставлять пользователям системы полезную информацию об этих аспектах. Классы обеспечивают четкое соответствие (отображение) между моделью и предметной областью, что упрощает проектирование, построение, изменение и понимание этих моделей. Классы обеспечивают некоторый контроль над часто сложной сложностью таких моделей.
Классы могут ускорить разработку за счет сокращения избыточного программного кода, тестирования и исправления ошибок. Если класс был тщательно протестирован и известен как "солидная работа", обычно верно, что использование или расширение хорошо протестированного класса уменьшит количество ошибок - по сравнению с использованием недавно разработанных или рекламных hoc code - в окончательном выводе. Кроме того, эффективное повторное использование классов означает, что многие ошибки необходимо исправлять только в одном месте при обнаружении проблем.
Другой причиной использования классов является упрощение взаимосвязей взаимосвязанных данных. Вместо того, чтобы писать код для многократного вызова подпрограммы рисования окна графического пользовательского интерфейса (GUI) на экране терминала (как это было бы типично для структурированного программирования), он более интуитивен. С помощью классов элементы графического интерфейса пользователя, похожие на окна (например, диалоговые окна), могут просто наследовать большую часть своих функций и структур данных от класса окна. Затем программисту нужно только добавить код в класс диалога, который является уникальным для его операции. Действительно, графические интерфейсы - это очень распространенное и полезное приложение классов, и программирование графического интерфейса обычно намного проще с хорошей структурой классов.
Источник: Википедия.
Смотрите также: