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

Не быть перепутанным с классами CSS. Используйте вместо этого.


В объектно-ориентированном программировании (см.: ), класс является конструкцией, которая используется в качестве проекта (или шаблон) для создания объектов того класса. Этот проект описывает состояние и поведение что объекты класса вся доля. Объект данного класса называют экземпляром класса. Класс, который содержит (и использовался для создания), что экземпляр можно рассмотреть как тип того объекта, например, экземпляр объекта 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("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, a Job может быть Perform- редактор или Cancel- ведомый, и т.д.

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

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

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

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

См. также: