Аристотель, возможно, был первым человеком, который всерьёз исследовал концепцию "типов", говоря о "рыбах и птицах". Впервые такую идею использовал первый объектно-ориентированный язык Simula-67:
Все объекты — хотя каждый имеет свои уникальные характеристики — являются частью некоторой последовательности объектов, имеющих общие черты и поведение. В Simula-67 впервые было использовано ключевое слово class
, которое ввело новый тип для программы (ключевые слова class
и type
обычно могут использоваться взаимозаменяемо; примечание ③).
③: Некоторые люди делают дальнейшее различие, акцентируя внимание на том, что "тип" определяет интерфейс, а "класс" представляет собой конкретную реализацию этого интерфейса.Simula является хорошим примером. Как его название подразумевает, он используется для "моделирования" таких классических задач, как "кассир банка". В этом случае мы имеем ряд кассиров, клиентов, счетов и транзакций. Каждый член каждого типа имеет некоторые общие характеристики: каждый счёт имеет определенный баланс; каждый кассир может принимать депозиты от клиентов; и так далее. При этом каждый член имеет свое состояние: каждый счёт имеет свой уникальный баланс; каждый кассир имеет имя. Таким образом, в компьютерной программе можно представлять уникальные экземпляры кассиров, клиентов, счетов и транзакций. Этот экземпляр называется "объектом", и каждый объект принадлежит к определенному "классу", который имеет свои общие характеристики и поведение.Поэтому в объектно-ориентированном программировании, хотя наша основная цель заключается в создании различных данных "типов" (Type
), почти все объектно-ориентированные языки программирования используют ключевое слово class
. Когда вы видите слово type
, помните также class
; и наоборот.
После создания класса можно создать множество объектов. Эти объекты затем могут быть использованы как элементы решения задачи. На самом деле, когда мы занимаемся объектно-ориентированным программированием, одной из самых больших проблем является то, как установить идеальное соответствие или отображение между элементами "проблемного пространства" (место существования проблемы) и элементами "пространства решений" (место моделирования проблемы, например, на компьютере). Как можно использовать объект для выполнения действительно полезной работы? Для этого должна существовать возможность отправлять запросы объекту, чтобы он выполнял конкретные действия, такие как проведение транзакции, отображение чего-либо на экране или включение выключателя. Каждый объект может принимать только определенные запросы. Мы отправляем запросы объекту через его "интерфейсы" (Interface
). Тип или класс объекта определяют его интерфейс. Соответствие между типами и интерфейсами является основой объектно-ориентированного программирования.Давайте рассмотрим пример с лампочкой:
Light lt = new Light();
lt.on();
В этом примере имя типа/класса — Light
, а запросы, которые можно отправить объекту этого типа, включают включение (on
), выключение (off
), увеличение яркости (brighten
) или уменьшение яркости (dim
). Для создания "ссылки" на объект типа Light
мы просто объявляем имя (например, lt
). Затем используем ключевое слово new
, чтобы создать новый объект типа Light
. Далее присваиваем этот объект ссылке с помощью оператора присваивания. Чтобы отправить сообщение объекту, указываем имя ссылки (например, lt
), а затем соединяем его с названием сообщения (например, on
) при помощи точки (.
). Из этого видно, что использование заранее определённых классов позволяет писать очень простой и понятный код.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )