Поиск по сайту:

OOPS Интервью Вопросы и ответы


Добро пожаловать в вопросы и ответы на интервью OOPS. Существует множество языков объектно-ориентированного программирования, таких как Java, C++ и Python. Четкое представление о концепциях ООП очень важно, если вы собираетесь пройти какое-либо собеседование по этим языкам программирования. Вот почему я решил поделиться с вами самыми популярными вопросами OOPS-интервью и дать на них подробные ответы.

OOPS Вопросы для интервью

Что такое ООП? Система объектно-ориентированного программирования — это метод программирования для написания программ, основанных на объектах реального мира. Состояния и поведение объекта представлены в виде переменных-членов и методов. В программировании ООП программы организованы вокруг объектов и данных, а не действий и логики. Каковы преимущества концепции ООП? Основные преимущества программирования ООП: Простота: объекты программирования OOPS моделируют объекты реального мира, поэтому сложность снижается, а структура программы понятна. Модульность: каждый объект образует отдельный объект, внутренняя работа которого отделена от других частей системы. Модифицируемость: легко внести незначительные изменения в представление данных или процедуры в объектно-ориентированной программе. Изменения внутри класса не влияют ни на какую другую часть программы, поскольку единственный общедоступный интерфейс, который внешний мир имеет для класса, — это использование методов. Расширяемость: добавление новых функций или реагирование на изменение операционной среды можно решить, введя несколько новых объектов и изменив некоторые существующие. Ремонтопригодность: объекты можно обслуживать отдельно, что упрощает поиск и устранение проблем. Повторное использование: объекты можно повторно использовать в разных программах.

В чем разница между процедурным программированием и ООП?

  1. Процедурный язык основан на функциях, а объектно-ориентированный язык основан на объектах реального мира.
  2. Процедурный язык придает большое значение последовательности выполнения функций, а объектно-ориентированный язык придает большое значение состояниям и поведению объектов.
  3. Процедурный язык предоставляет данные всей программе, а объектно-ориентированный язык инкапсулирует данные.
  4. Процедурный язык следует парадигме программирования сверху вниз, а объектно-ориентированный язык следует парадигме программирования снизу вверх.
  5. Процедурный язык сложен по своей природе, поэтому его трудно изменять, расширять и поддерживать, но объектно-ориентированный язык менее сложен по своей природе, поэтому его легче модифицировать, расширять и поддерживать.
  6. Процедурный язык предоставляет меньше возможностей для повторного использования кода, но объектно-ориентированный язык предоставляет больше возможностей для повторного использования кода.

Каковы основные концепции ООП?

Основные концепции ООП:

  1. Абстракция
  2. Инкапсуляция
  3. Полиморфизм
  4. Наследование
  5. Композиция
  6. Ассоциация
  7. Агрегация

Что такое Абстракция?

Абстракция — это концепция ООП для построения структуры объектов реального мира. Во время этой конструкции берутся только общие состояния и поведения, а более конкретные состояния и поведения оставляются для разработчиков.

Что такое инкапсуляция?

Инкапсуляция — это концепция OOPS для создания и определения разрешений и ограничений объекта и его переменных-членов и методов. Очень простой пример для объяснения концепции — сделать переменные-члены класса закрытыми и предоставить общедоступные методы получения и установки. Java предоставляет четыре типа модификаторов уровня доступа: открытый, защищенный, без модификатора и закрытый.

В чем разница между абстракцией и инкапсуляцией?

  1. \Программируйте интерфейсы, а не реализации — это принцип абстракции, а \Инкапсулируйте то, что меняется — это объектно-ориентированный принцип инкапсуляции.
  2. Абстракция предоставляет общую структуру класса и оставляет детали для разработчиков. Инкапсуляция заключается в создании и определении разрешений и ограничений объекта и его переменных-членов и методов.
  3. Абстракция реализована в Java с использованием интерфейса и абстрактного класса, а инкапсуляция реализована с использованием четырех типов модификаторов уровня доступа: открытый, защищенный, без модификатора и закрытый.

Что такое Полиморфизм?

Полиморфизм — это появление чего-либо в различных формах. Java поддерживает различные формы полиморфизма, такие как полиморфные ссылочные переменные, полиморфный метод, полиморфные возвращаемые типы и полиморфные типы аргументов.

Что такое наследование?

Подкласс может наследовать состояния и поведение своего суперкласса, что называется наследованием.

Что такое множественное наследование?

A child class inheriting states and behaviors from multiple parent classes is known as multiple inheritance.

Что такое алмазная проблема в наследовании?

In case of multiple inheritance, suppose class A has two subclasses B and C, and a class D has two super classes B and C.If a method present in A is overridden by both B and C but not by D then from which class D will inherit that method B or C? This problem is known as diamond problem.

Почему Java не поддерживает множественное наследование?

Java was designed to be a simple language and multiple inheritance introduces complexities like diamond problem. Inheriting states or behaviors from two different type of classes is a case which in reality very rare and it can be achieved easily through an object association.

Что такое статическая привязка и динамическая привязка?

Static or early binding is resolved at compile time. Method overloading is an example of static binding. Dynamic or late or virtual binding is resolved at run time. Method overriding is an example of dynamic binding.

В чем смысл отношений «ЕСТЬ-А» и «ИМЕЕТ-А»?

"IS-A" relationship implies inheritance. A sub class object is said to have "IS-A" relationship with the super class or interface. If class A extends B then A "IS-A" B. It is transitive, that is, if class A extends B and class B extends C then A "IS-A" C. The "instanceof" operator in java determines the "IS-A" relationship. When a class A has a member reference variable of type B then A "HAS-A" B. It is also known as Aggregation.

Что такое Ассоциация?

Association is a relationship between two objects with multiplicity.

Что такое агрегация?

Aggregation is also known as "HAS-A" relationship. When class Car has a member reference variable of type Wheel then the relationship between the classes Car and Wheel is known as Aggregation. Aggregation can be understood as "whole to its parts" relationship. Car is the whole and Wheel is part. Wheel can exist without the Car. Aggregation is a weak association.

Что такое композиция?

Composition is a special form of Aggregation where the part cannot exist without the whole. Composition is a strong Association. Composition relationship is represented like aggregation with one difference that the diamond shape is filled.

Что такое зависимость?

When one class depends on another because it uses that at some point in time then this relationship is known as Dependency. One class depends on another if the independent class is a parameter variable or local variable of a method of the dependent class. A Dependency is drawn as a dotted line from the dependent class to the independent class with an open arrowhead pointing to the independent class.

В чем разница между ассоциацией и зависимостью?

The main difference between Association and Dependency is in case of Association one class has an attribute or member variable of the other class type but in case of Dependency a method takes an argument of the other class type or a method has a local variable of the other class type.

Что такое класс?

A class is the specification or template of an object.

Что такое объект?

Object is instance of class.