Перейти к содержимому
шпаргалка.
Esc
навигацияоткрыть⌘Jпредпросмотр
На этой странице

Основны программирования

Все темы QA

Что такое ООП? Назовите его принципы с примерами?

Объектно-ориентированное программирование (ООП) — это методология программирования, основанная на концепции объектов, которые объединяют данные и методы их обработки в единые сущности. Основные принципы ООП включают:

  • Инкапсуляция: Скрытие деталей реализации объекта от внешнего мира и предоставление интерфейса для взаимодействия. Пример:
public class Car {
    private String model;
    private int year;

    public void setModel(String model) {
        this.model = model;
    }

    public String getModel() {
        return model;
    }
}
  • Наследование: Механизм, позволяющий одному классу наследовать свойства и методы другого класса. Пример:
public class Animal {
    public void eat() {
        System.out.println("Animal is eating");
    }
}

public class Dog extends Animal {
    public void bark() {
        System.out.println("Dog is barking");
    }
}
  • Полиморфизм: Возможность объектов с одним интерфейсом вызывать методы, которые будут выполнять различные действия в зависимости от типа объекта. Пример:
public interface Shape {
    void draw();
}

public class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("Circle is drawn");
    }
}

public class Rectangle implements Shape {
    @Override
    public void draw() {
        System.out.println("Rectangle is drawn");
    }
}
  • Абстракция: Выделение общих характеристик объекта и игнорирование лишних деталей для упрощения представления. Пример:
public abstract class Vehicle {
    abstract void move();
}

public class Car extends Vehicle {
    @Override
    void move() {
        System.out.println("Car is moving");
    }
}

public class Bicycle extends Vehicle {
    @Override
    void move() {
        System.out.println("Bicycle is moving");
    }
}

Эти принципы помогают создавать более гибкие, поддерживаемые и масштабируемые программы.


Что такое интерфейс? Что такое абстрактный класс? Чем они отличаются?

В контексте объектно-ориентированного программирования (ООП):

  1. Интерфейс (interface):

    • Это абстрактный тип данных, который определяет поведение объекта без конкретной реализации.

    • В Java интерфейс может содержать абстрактные методы, default- и static-методы с реализацией, а начиная с Java 9 также private-методы. Его поля являются public static final; состояния экземпляра и конструкторов нет.

    • Классы могут реализовывать несколько интерфейсов.

    • Пример:

      public interface Drawable {
          void draw();
      }
  2. Абстрактный класс (abstract class):

    • Это класс, который не может быть инстанциирован напрямую, а может содержать как абстрактные, так и конкретные методы.

    • Абстрактный класс может иметь конструкторы и переменные экземпляра.

    • Подкласс должен реализовать все абстрактные методы абстрактного класса или сам быть абстрактным.

    • Пример:

      public abstract class Shape {
          abstract void draw();
          void display() {
              System.out.println("Displaying shape");
          }
      }
Отличия:
  • Интерфейс:

    • В Java интерфейс может содержать абстрактные методы, default- и static-методы с реализацией, а начиная с Java 9 также private-методы. Его поля являются public static final; состояния экземпляра и конструкторов нет.

    • Не имеет конструкторов.

    • Поддерживает множественное наследование.

    • Используется для определения контрактов.

  • Абстрактный класс:

    • Может содержать как абстрактные, так и конкретные методы.

    • Имеет конструкторы.

    • Поддерживает одиночное наследование.

    • Используется для создания базовой функциональности, которая может быть расширена в подклассах.

Эта страница была полезной?