1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wizardforcel-thinking-in-java-zh

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
1.2 对象的接口.md 6.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 11.03.2025 09:15 d56454c

1.2 Интерфейсы объектов

Аристотель, возможно, был первым человеком, который всерьёз исследовал концепцию "типов", говоря о "рыбах и птицах". Впервые такую идею использовал первый объектно-ориентированный язык 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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/wizardforcel-thinking-in-java-zh.git
git@api.gitlife.ru:oschina-mirror/wizardforcel-thinking-in-java-zh.git
oschina-mirror
wizardforcel-thinking-in-java-zh
wizardforcel-thinking-in-java-zh
master