Шаблон для создания новых объектов, описывающих общее состояние (состояния) и поведение (ы). НЕ ДОЛЖЕН БЫТЬ ОБЕСПЕЧЕН С КЛАССАМИ CSS. Вместо этого используйте [css].

Не путать с классами CSS. Вместо этого используйте .


В объектно-ориентированном программировании (см.: ), класс - это конструкция, которая используется в качестве схемы (или шаблона) для создания объектов этого класса. Этот план описывает состояние и поведение всех объектов класса. Объект данного класса называется экземпляром класса. Класс, который содержит (и использовался для создания) этот экземпляр, может рассматриваться как тип этого объекта, например, экземпляр объекта класса Fruit будет иметь тип Fruit.

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

С технической точки зрения, класс представляет собой связный пакет, который состоит из метаданных определенного вида. Класс имеет как интерфейс, так и структуру. Интерфейс описывает, как взаимодействовать с классом и его экземплярами с помощью методов, а структура описывает, как данные разделяются на атрибуты в экземпляре. Класс также может иметь представление (метаобъект) во время выполнения, которое обеспечивает поддержку во время выполнения для манипулирования метаданными, связанными с классом. В объектно-ориентированном проектировании класс - это наиболее специфический тип объекта по отношению к определенному слою.

Пример объявления класса в С#:

/// <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("Stack Overflow");
        Console.WriteLine(greeting.SayHello());

        //Say hello to the "default" target.
        greeting = new HelloAnything();
        Console.WriteLine(greeting.SayHello());
    }
}

Выходной результат:

Hello, Stack Overflow!
Hello, World!

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

Например, в типичной бизнес-системе моделируются различные аспекты бизнеса с использованием таких классов, как " Customer, " Product, " Worker, " Invoice, " Job и т.д. Invoice может иметь такие методы, как " Create, " Print или " Send, Job может быть Perform [ CN00] или Cancel -led и т.д.

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

Классы могут ускорить разработку за счет сокращения избыточного программного кода, тестирования и исправления ошибок. Если класс был тщательно протестирован и известно, что он является "солидной работой", обычно верно, что использование или расширение хорошо протестированного класса уменьшит количество ошибок - по сравнению с использованием недавно разработанных или Код hoc - в окончательном выводе. Кроме того, эффективное повторное использование классов означает, что многие ошибки необходимо устранять только в одном месте при обнаружении проблем.

Другой причиной использования классов является упрощение взаимосвязей взаимосвязанных данных. Вместо того, чтобы писать код для многократного вызова подпрограммы рисования окна графического интерфейса пользователя (GUI) на экране терминала (как это было бы типично для структурированного программирования), это более интуитивно понятно. С помощью классов элементы графического интерфейса, которые похожи на окна (например, диалоговые окна), могут просто наследовать большую часть своей функциональности и структур данных от класса окна. Затем программисту нужно только добавить в класс диалога код, уникальный для его работы. Действительно, GUI - очень распространенное и полезное применение классов, и программирование GUI, как правило, намного проще с хорошей структурой классов.

Источник: Википедия.

Смотрите также: