Объектно-ориентированное программирование предоставляет множество идей, таких как полиморфизм, абстракция, наследование, инкапсуляция и т. д. Сегодня существует множество языков объектно-ориентированного программирования, это Java, C ++, Python, PHP, C # и т. д. Мотив любого языка объектно-ориентированного программирования — представлять сущность реального мира. Во-первых, нам нужно более тщательно понять, что такое объект и что такое класс.
Концепции ООП в Java
Класс в Java
Класс — это не что иное, как коллекции объектов. Это помогает нам создать план для конкретного объекта. Более того, он не потребляет память.
Он представляет собой набор свойств или методов, общих для всех объектов одного типа. Как правило, объявления классов могут включать следующие компоненты по порядку.
- Модификаторы: A по умолчанию класс может иметь доступ по умолчанию.
- Имя класса: Имя должно начинаться с начальной буквы (по соглашению с заглавной буквы).
- Суперкласс (если есть): имя родительского класса (суперкласса), если есть, которому предшествует ключевое слово extends. Класс может расширять (создавать подкласс) только одного родителя.
- Интерфейсы (если есть): это разделенный запятыми список интерфейсов, реализованных классом, если любой, которому предшествует ключевое слово «реализует». Класс может реализовывать более одного интерфейса. Через интерфейс мы можем реализовать множественное наследование.
Object в Java
Как упоминалось выше, Object — это реальный объект, такой как стул, стол, ручка, карандаш и т. д. Он имеет как состояние, так и поведение, а также может быть физическим или логическим. Я потребляю пространство. Объект состоит из:
- Состояние : это представлен атрибутами объекта. Состояние отражает свойства объекта.
- Поведение : оно представлено методами объекта. Он также отражает реакцию объекта с другими объектами.
- Identity: Он дает уникальное имя объекту и позволяет одному объекту взаимодействовать с другими объектами.
Метод в Java
Метод — это набор операторов, которые выполняют определенную задачу и возвращают результат звонящему. Метод может выполнять какую-то конкретную задачу, ничего не возвращая. Методы позволяют нам повторно использовать код без повторного ввода кода. В Java каждый метод должен быть частью некоторого класса, который отличается от других языков, таких как C, C ++ и Python. Методы экономят время и помогают нам повторно использовать код без повторного ввода кода.
Объявление метода
Обычно объявления методов состоят из шести следующих компонентов.
- Модификатор -: определяет тип доступа метода, т.е.. откуда к нему можно получить доступ в вашем приложении. В Java существует 4 типа спецификаторов доступа.
- public : он доступен во всех классах вашего приложения.
- protected : он доступен в классе, в котором он определен, и в его
- private : он доступен только внутри класса, в котором он определен.
- default (объявлен/определен без использования модификатора) : Он доступен в том же классе и пакете, в котором определен его класс.
- Тип возвращаемого значения : тип данных значения, возвращаемого методом, или void, если значение не возвращается.
- Имя метода : правила для имен полей применяются также к именам методов, но соглашение немного отличается.
- Список параметров : список входных параметров, разделенных запятыми, определяется с предшествующим их типом данных в незамкнутых скобках. Если аргументов нет, вы должны использовать пустые круглые скобки ().
- Список исключений : исключения, которые вы ожидаете от метода, могут вызывать, вы можете указать эти исключение (я).
ООП в Java
В языке программирования Java есть четыре основных концепции ООП. Это наследование, полиморфизм, инкапсуляция и абстракция . Теперь мы собираемся обсудить одно за другим.
Наследование в Java
Каждый раз, когда объект наследует какое-либо свойство от другого класса, тогда это называется наследованием.
Мы используем наследование, чтобы увеличить возможность повторного использования любой программы. Предположим, что мы работаем над большим проектом с использованием Java, и есть много классов, и среди этих классов у нас есть методы. Теперь возникает ситуация, когда нам нужно снова использовать тот же метод, который был объявлен перед некоторыми классами. Теперь, чтобы уменьшить объем памяти программы, мы используем наследование.
Давайте разберемся с наследованием на примере.
//Inheritance.java//создание класса млекопитающих в качестве родительского класса class Mammal {void Identity () {System.out.println ("Это класс млекопитающих");}}//exteding родительский classclass Man расширяет Mammal {void Category () {System.out.println ("Это класс Man, который расширяет Mammal");}} class Inheritance {public static void main (String [] er) {Man m = new Man ();//доступ к методу родительского класса с использованием объекта дочернего класса instancem.Identity (); //доступ к методу класса chilem.Category ();}}
См. вывод ниже.
Полиморфизм в Java
Полиморфизм — это способность объекта принимать различные формы.
В Java мы используем переопределение метода и перегрузку метода для достижения полиморфизма.
Теперь вопрос в том, что такое переопределение метода ?
Это концепция ООП, в которой метод дочернего класса может наследовать метод своего родительского класса. Это позволяет использовать один метод по-разному в зависимости от объекта дочернего или родительского класса.
Перегрузка метода также является концепцией полиморфизма, когда один метод может выполнять различные задачи в зависимости от контекста, в котором он вызывается. Он работает в другом контексте, поэтому нам нужно передать ему разные аргументы.
//Poly.java//method overloading class Test {//метод с двумя аргументами int add (int a , int b) {return (a + b);}//метод с тремя аргументами int add (int a, int b, int c) {return (a + b + c);}} class Poly {public static void main ( String [] er) {Test t = new Test (); System.out.println (t.add (1,2));//метод с двумя аргументами будет вызывать System.out.println (t.add (1, 2,3));//будет вызываться метод с тремя аргументами}}
См. Вывод ниже. Это пример перегрузки метода в Java.
Теперь , давайте напишем программу переопределения методов на Java.
//Poly.javaclass Vehicle {public void move () {System.out.println ("It move"); }} class Bike extends Vehicle {//переопределяет метод своего родительского класса public void move () {System.out.println ("Велосипед движется и ускоряется"); }} class Poly2 {public static void main (String [] er) {Vehicle v = new Vehicle ();//вызов родительского класса mehtod v.move (); v = new Bike ();//вызов метода дочернего класса v.move (); }}
См. вывод переопределения метода ниже.
Абстракция в Java
В ООП Java — одна из самых мощных концепций. Абстракция означает представление кода сложным образом, чтобы избежать повторения одних и тех же данных.
Предположим, существует метод, который используется для вычисления средних оценок в другом классе, и этот метод также является используется в другом классе, из-за этого требования мы используем абстракцию. Мы достигаем абстракции, используя абстрактный метод и интерфейс в Java.
В Java абстракция достигается интерфейсами и абстрактными классами. Мы можем достичь 100% абстракции, используя интерфейсы Java.
Давайте посмотрим на примере, чтобы лучше понять этот абстрактный способ. См. Следующий код.
//Abstraction.java//создание абстрактного класса abstract class Mark {//абстрактный метод abstract int avgMarks (int n);}//расширение абстрактного classclass CSE extends Mark { int avgMarks (int n) {return n;}}//расширение абстрактного класса class ME extends Mark {//удаление абстрактного метода int avgMarks (int a) {return a;}}//драйвер classclass Abstraction {public static void main (String [] э) {СПП c = новая СПП (); System.out.println (c.avgMarks (90)); ME m = новый ME (); System.out.println (m.avgMarks (80));}}
См. Следующий вывод.
Инкапсуляция в Java
Инкапсуляция — еще одна важная концепция ООП. Она также считается самой мощной Концепция. Это помогает пользователям сохранить конфиденциальность наших данных от пользователя. Чтобы сделать конфиденциальными данные, введенные пользователем, у нас есть метод установки и для извлечения личных данных, чтобы показать пользователю, что у нас есть метод получения.
Давайте рассмотрим пример, чтобы лучше понять это. См. следующий код инкапсуляции.
//Encap.javaclass ATMCard {private int pin; void setPin (int pin) {this. pin = pin;} int getPin () {return pin;}} class Encap {public static void main (String [] er) {ATMCard c = new ATMCard (); c.setPin (1234); System.out.println ( c.getPin ());}}
См. вывод ниже.
Лучшие практики для концепций ООП в Java
- DRY (Don ‘t Repeat Yourself’). Это основная концепция языка ООП. У вас никогда не должно быть двух блоков идентичный код в двух разных местах. Вместо этого вы можете использовать один метод для разных приложений.
- Если вы ожидаете, что ваш код Java изменится в будущем, инкапсулируйте его, сделав все переменные и методы закрытыми с самого начала. По мере изменения кода увеличивайте доступ к « protected» по мере необходимости, но не слишком общедоступным. Обнародовать весь свой код — плохая практика.
- Единая ответственность. Еще один лучший способ написания приложений на Java — принцип единой ответственности. Класс всегда должен иметь только одну функциональность, он не может отвечать более чем за одну задачу. Таким образом, он может быть вызван и/или расширен сам по себе, когда для него появятся новые применения, не вызывая связи между различными функциями.
- Открытый закрытый дизайн. Сделайте все методы и классы закрытыми для модификации, но открытыми для расширения. Таким образом, ваш проверенный и проверенный код может оставаться статичным, но его можно будет изменить для дальнейшего выполнения по мере добавления новых задач в будущем.
Наконец, Концепции ООП в Java Пример в публикации Java больше.