ООП в Java. Принципы объектно-ориентированного программирования.

ООП (Объектно-ориентированное программирование) – это парадигма программирования, которая основана на концепции объектов, содержащих данные и методы для работы с этими данными. Java является объектно-ориентированным языком и поддерживает все основные принципы ООП.

Рассмотрим подробнее каждый из принципов ООП в Java:

Абстракция

Абстракция – это процесс выделения существенных характеристик объекта, отвлекаясь от несущественных деталей. В Java абстракция достигается с помощью интерфейсов и абстрактных классов.

    Пример интерфейса:

    interface Drawable {
        void draw();
    }
    
    class Circle implements Drawable {
        public void draw() {
            System.out.println("Drawing a circle");
        }
    }

    Пример абстрактного класса:

    abstract class Shape {
        abstract double getArea();
    }
    
    class Rectangle extends Shape {
        double width, height;
    
        public double getArea() {
            return width * height;
        }
    }

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

    Инкапсуляция – это механизм, который объединяет данные и методы, работающие с этими данными, в единый объект и скрывает детали реализации от пользователя. Инкапсуляция достигается с помощью модификаторов доступа (private, protected, public).

      Пример инкапсуляции:

      public class BankAccount {
          private double balance;
      
          public double getBalance() {
              return balance;
          }
      
          public void deposit(double amount) {
              balance += amount;
          }
      
          public void withdraw(double amount) {
              if (amount <= balance) {
                  balance -= amount;
              }
          }
      }

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

      Наследование – это механизм, позволяющий создавать новые классы на основе существующих. Класс, от которого производится наследование, называется суперклассом (родительским), а класс, который наследует, называется подклассом (дочерним). Подкласс наследует все поля и методы суперкласса и может добавлять свои собственные.

        Пример наследования:

        class Animal {
            void eat() {
                System.out.println("Animal is eating");
            }
        }
        
        class Dog extends Animal {
            void bark() {
                System.out.println("Dog is barking");
            }
        }
        
        class Bulldog extends Dog {
            void sleep() {
                System.out.println("Bulldog is sleeping");
            }
        }

        Полиморфизм

        Полиморфизм – это способность объекта принимать множество форм. В Java полиморфизм реализуется с помощью перегрузки методов (методы с одинаковым названием, но разными параметрами) и переопределения методов (изменение реализации метода в подклассе).

          Пример перегрузки методов:

          class Calculator {
              int add(int a, int b) {
                  return a + b;
              }
          
              double add(double a, double b) {
                  return a + b;
              }
          }

          Пример переопределения методов:

          class Animal {
              void makeSound() {
                  System.out.println("Animal makes a sound");
              }
          }
          
          class Cat extends Animal {
              @Override
              void makeSound() {
                  System.out.println("Meow");
              }
          }
          
          class Dog extends Animal {
              @Override
              void makeSound() {
                  System.out.println("Woof");
              }
          }

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

          Каталог и рейтинг онлайн-курсов программирования Джава
          Logo