Как изучить объектно-ориентированное программирование?

Каковы четыре основных принципа объектно-ориентированного программирования?

Существует 4 основных принципа, которые делают язык объектно-ориентированным. Это инкапсуляция, абстракция данных, полиморфизм и наследование. Они также называются четырьмя столпами объектно-ориентированного программирования.

Terminology-and-network-concepts

Инкапсуляция

Инкапсуляция — это механизм сокрытия реализации данных путем ограничения доступа к публичным методам. Переменные экземпляра остаются закрытыми, а методы доступа обнародованы для достижения этой цели. Например, мы Скрытие nameи dobатрибуты человека класса в приведенном ниже фрагменте кода. Инкапсуляция — приватная переменная экземпляра и общедоступные методы доступа.

Абстракция

Абстракт означает понятие или Идею, которые не связаны с каким-либо конкретным случаем.Используя абстрактный класс / интерфейс, мы выражаем намерение класса, а не фактическую реализацию. В некотором смысле, один класс не должен знать внутренние детали другого, чтобы использовать его, просто зная, что интерфейсы должны быть достаточно хорошими.

Наследование

Наследование выражает отношения «есть-а» и / или «имеет-а» между двумя объектами. Используя Наследование, В производных классах мы можем повторно использовать код существующих суперклассов. В Java концепция «is-a» основана на наследовании классов (использование extends) или реализации интерфейса (использование implements).
Например, FileInputStream«is-a», InputStreamкоторый читает из файла.

AdobeStock_135990387

Полиморфизм

Это означает, что одно имя много форм. Далее это два типа — статический и динамический. Статический полиморфизм достигается с помощью метода перегрузки, а динамический полиморфизм — с помощью метода переопределения. Это тесно связано с наследованием. Мы можем написать код, который работает на суперклассе, и он будет работать с любым типом подкласса.

Пример

Структура коллекций Java имеет интерфейс с именем java.util.Collection, ArrayListи TreeSetдва различных реализации этого интерфейса. ArrayList поддерживает порядок вставки элементов, в то время как TreeSetупорядочивает свои элементы по их natural orderили comparator(если они есть). Теперь, если мы напишем метод, который принимает коллекцию и печатает ее элементы, фактический объект (ArrayList или TreeSet) во время выполнения будет определять поведение этого метода.

Важные факты

  1. За исключением объектов типа java.lang.Object, все объекты Java являются полиморфными, то есть они проходят тест IS-A как для своего собственного типа, так и для класса Object.
  2. Тип ссылочной переменной определяет методы, которые могут быть вызваны для объекта, на который ссылается переменная. В приведенном выше примере print()метод может вызывать только методы, перечисленные в Collectionинтерфейсе, независимо от типа фактического объекта, переданного этому методу.
  3. Полиморфный вызов метода применяется только к методам экземпляра (не к статическим методам, не к переменным). Только переопределенные методы экземпляра вызываются динамически на основе типа реального объекта во время выполнения.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *