Класс (программирование): различия между версиями

[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
запрос источника
нет источников, отдельные высказывания вызывают сомнения - уст. шаблоны
Строка 24:
 
== Интерфейс и реализация, наследование реализации ==
 
В программировании существует понятие программного интерфейса, означающего перечень возможных вычислений, которые может выполнить та или иная часть программы, включая описание того, какие аргументы и в каком порядке требуется передавать на вход алгоритмам из этого перечня, а также что и в каком виде они будут возвращать. Абстрактный тип данных [[Интерфейс (объектно-ориентированное программирование)|интерфейс]] придуман для формализованного описания такого перечня. Сами алгоритмы, то есть действительный программный код, который будет выполнять все эти вычисления, интерфейсом ''не'' задаётся, программируется отдельно и называется ''реализацией интерфейса''.
 
Строка 32 ⟶ 31 :
 
== Состояние объекта, понятие областей доступа, конструкторы ==
 
Одной из проблем структурного программирования, с которой борется ООП, является проблема поддержания правильного значения переменных программы. Часто разные переменные программы хранят логически связанные значения, и за поддержание этой логической связности несет ответственность программист, то есть автоматически связность не поддерживается. Примером могут служить флажки «уволен» и «ожидает премии по итогам года», когда по правилам отдела кадров человек может быть одновременно не уволенным и не ожидающим премии, не уволенным и ожидающим премии, уволенным и не ожидающим премии, но не может быть одновременно и уволенным, и ожидающим премии. То есть любая часть программы, которая проставляет флажок «уволен», всегда должна снимать флажок «ожидает премии по итогам года».
 
Строка 258 ⟶ 256 :
 
== См. также ==
 
* [[Компонентно-ориентированное программирование]]
* [[Объект (программирование)]]
Строка 270 ⟶ 267 :
* [http://java.sun.com/docs/books/tutorial/java/javaOO/classes.html Creating Classes] — Руководство по созданию классов в языке Java
 
{{нет источников}}
{{rq|check}}
{{Типы данных}}
 
[[Категория:Объектно-ориентированное программирование]]
 
[[Категория:Статьи с примерами кода Python]]
[[Категория:Структуры данных]]