JAVA и Основы объектно-ориентированного программирования
Ашикур Рахман
Любая реальная сущность/объект состоит из двух частей
- Свойства (Описывает его высоту, вес, ширину и т.д.)
- Функциональность (Описывает, как она себя ведет)
Объектно-ориентированное программирование устраняет некоторые ограничения процедурного языка программирования.
- Модульность (логика модульна)
- Возможность повторного использования (код можно использовать повторно)
- Расширяемый (код расширяемый)
Объект
Объект – это сущность, которая имеет
- Личность (Имена)
- Состояние (Значения)
- Поведение (Производительность) Объект – это индивидуальное представление сущности реального мира.
Класс
Класс – это шаблон, помогающий описать общие
- Атрибуты (например, идентификатор клиента, имя, номер телефона…)
- Действия (например, покупка товара и т.д.) Пример реального субъекта (Заказчика)
Определение класса с другой точки зрения:
- Класс – это объект чертежа/реального мира
- Класс – это обобщенное представление
- Класс – это инкапсуляция свойств и соответствующих функций Программа – это набор инструкций для решения задачи UML (Унифицированный язык моделирования) Диаграмма классов – это обозначение, используемое для представления класса в документе. Диаграмма классов – это разновидность UML. UML – это язык для визуализации, определения, построения и документирования программного обеспечения.
Модификатор доступа/указывает
(-) Частный: доступ возможен только изнутри класса, в котором он объявлен. (+) общедоступный: Может быть доступен из любого места
Рекомендуется, чтобы в классе все переменные/свойства были закрытыми, а все методы/функции должны быть общедоступными. Пять особенностей объектно-ориентированного программирования:
- Классы и объекты
- Абстракции
- Инкапсуляции
- Наследование
- Полиморфизм
Абстракция: Скрывая ненужные детали и показывая только необходимые детали. Концепция определения существенных деталей, которые должны быть известны, и игнорирования несущественных деталей с точки зрения конечного пользователя. (Например: Имя метода и параметр должны быть известны, нам не нужно знать весь процесс)
Инкапсуляции: Объединяя все элементы в капсулу (например, класс, который содержит атрибуты и функции, и все эти атрибуты и функции не нужно раскрывать с помощью модификатора доступа, мы можем этого добиться). Концепция сокрытия внутренних деталей и предоставления простого интерфейса пользователю.
Наследование: Понятия, которые позволяют определять обобщенные и специализированные характеристики и поведение. Специализированные сущности автоматически наследуют все свойства и поведение универсальной сущности.
- Все обобщающие сведения будут присутствовать в родительском классе
- Все детали специализации будут представлены в дочернем классе
- Дочерний класс расширит родительский класс, чтобы получить свойства обобщения.
Полиморфизм: Если один и тот же метод ведет себя по-разному в разных ситуациях
Разработка объектно-ориентированной системы: 3 основных этапа
- Объектно-ориентированный анализ (ООА)
- Объектно-ориентированный дизайн (ООД)
- Объектно-ориентированное программирование (ООП)
OOA: Анализ структуры проблемы и определение номера и названия класса УД: Продуманная структура класса, что должно содержать (атрибут и функциональность) ООП: Процесс реализации проектирования с использованием объектно-ориентированного языка программирования
Переменные-члены: Используется для представления состояния объекта/атрибута класса, называемого переменной-членом, также называемой глобальными переменными.
Модификатор доступа: Используется для доступа или скрытия атрибута и поведения класса
Следующий синтаксис может быть использован для создания объекта класса customer, а ссылка – это использование ссылочной переменной.
Клиент Клиент(); Custobject – Ссылочная переменная, а новый клиент() – это объект.
Архитектура JAVA состоит из 3 компонентов
- Язык программирования JAVA
- Байт-код JAVA
- Виртуальная машина JAVA
.java -> .javac -> .класс ->Интерпретатор (Win32) или интерпретатор (Linux) или интерпретатор (Mac)
JAVA – это платформа на уровне байтового кода, независимая от платформы, независимость от которой зависит
- Уровень исходного кода
- Байтовый код/уровень исполняемого файла
.cpp или c++ не зависят от платформы на уровне исходного кода, но на исполняемом уровне это не так. Единственным компонентом в JAVA, зависящим от платформы, является JVM (виртуальная машина Java).
JVM – Преобразует байт-код в соответствующий язык машинного уровня и выполняет инструкции. JDK – Создание/разработка JAVA во время выполнения JRE – Среда выполнения/Комплект только для запуска и компиляции или преобразования кода в байт–код JVM -Интерпретатор/Чтение строки за строкой и преобразование байта в исполняемый файл
Во время выполнения программы хранение программы и данных осуществляется следующим образом:
- Весь код java, хранящийся в памяти, называется сегментом кода
- Все глобальные переменные, которые мы объявляем для класса, хранящегося в сегменте данных
- Все переменные, которые объявляются внутри класса и вне всех функций, называются переменной-членом/глобальной переменной
- Срок службы переменной-члена зависит от объекта
- Ссылка, указывающая на вновь созданный объект, называется ссылочной переменной
- Все сведения о классе должны присутствовать в {}
Частное int a; Публичное пустое geta(){}
Когда мы создаем объект, он находится в памяти кучи. Ключевое слово New возвращает вновь созданный объект. Ссылочная переменная – это простая переменная, используемая для доступа к объекту, созданному в памяти кучи. Main – это отправная точка выполнения любой Java-программы.
Оригинал: “https://dev.to/shuvocste/java-and-object-oriented-programming-basic–1f0j”