Рубрики
Без рубрики

Классы, Наследование, Пакеты и модульность в Java ☕️

Модульное программирование – это процесс разделения компьютерной программы на отдельные части… Помеченные классами, java, модульность, ооп.

Модульное программирование – это процесс разделения компьютерной программы на отдельные подпрограммы. Модуль – это отдельный программный компонент. Его часто можно использовать в различных приложениях и функциях с другими компонентами системы. — www.techopedia.com

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

Классы ☕️

Если мы еще не знали, что все в Java так или иначе связано с классом, почему? потому что Java – это объектно-ориентированный язык программирования, и, как и в любом языке ООП, Все является объектом. И для того, чтобы объекты имели “Группировку” или “Схему”, они должны принадлежать к классу или быть классифицированы внутри него.

Вот пример.

Транспортные средства включают вагоны, велосипеды, автотранспортные средства (мотоциклы, легковые автомобили, грузовики, автобусы), железнодорожные транспортные средства (поезда, трамваи), плавсредства (корабли, лодки), транспортные средства-амфибии (винтовые транспортные средства, суда на воздушной подушке), летательные аппараты (самолеты, вертолеты) и космические аппараты. — википедия

Следуя определению транспортных средств в Википедии, хотя мы могли бы легко классифицировать синий автомобиль и синий велосипед как два разных объекта, но мы в равной степени можем сказать, что они оба являются “Транспортными средствами” и поэтому принадлежат к группе или классу “Транспортных средств”. Мы также видим, как классы действуют как чертежи для нескольких других типов объектов (включенных выше).

Хотя эти объекты принадлежат к одному и тому же классу, они не обязательно выполняют одни и те же “функции/действия”, в этом случае мы называем эти функции/действия “методами”.

Методы 🏃🏼 ♀ ️ 💨

Мы можем сказать, что метод – это любое действие, которое может выполнить объект. Действия, в том числе: летать, ехать, ехать, разворачиваться. Однако объекты одного и того же класса (например, автомобиль и велосипед в нашем примере) могут иметь не все общие методы, точно так же, как автомобиль нельзя крутить педали, точно так же велосипед нельзя водить. Думайте о методах как о глаголах.

public class Car {
  public void drive() {

  }
  public void reverse() {

  }
  public void park() {

  }
}

Атрибутами 🎨

Атрибуты – это свойства объекта, это те вещи, которые определяют объект или отличают один объект от другого. “синяя машина” — слово “синяя” говорит вам немного больше об автомобиле. Думайте об Атрибутах как о прилагательных.

Вы также могли бы сказать, что атрибуты класса – это переменные внутри класса.

public class MyClass {
  int x = 5;
  int y = 6;
}

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

Приятно иметь кучу объектов и их коллективных методов и атрибутов, но что было бы лучше для нас, чтобы разделить эти методы и атрибуты между другими связанными объектами, и зачем нам это делать? Ну, в основном для повторного использования и поддержания принципа DRY (Не повторяйся). Вот где пригодится наследование, наследование позволяет использовать один класс ( подкласс/дочерний ) “наследует” атрибуты и методы от другого класса ( суперкласс/родительский ) .

Мы не будем слишком углубляться в детали наследования, мы просто рассмотрим практический пример на Java. Но для заметок у нас есть несколько типов наследования:

  • Сингл ( мы бы прикоснулись к этому)
  • Множественный
  • Многоуровневый
  • Иерархический
  • Гибридный

Чтобы объявить дочерний класс родительского класса в Java, вы используете ключевое слово расширяет |/.

Модульность 🍰

Модульность включает в себя процесс разбиения программы на компоненты или подпрограммы.

[“Парень” + “сердце” + “бла-бла”] = 😘

Надеюсь, приведенный выше смайлик – достаточно хорошая иллюстрация. Основным преимуществом модульности наших программ является то, что она помогает нам быстрее и эффективнее обнаруживать и отлаживать проблемы.

Пакеты

Пакет в Java используется для группировки связанных классов. Пакет – это, по сути, папка связанных классов. Пакеты пригодятся при создании более удобного в обслуживании кода и в основном бывают двух типов:

  • Встроенные пакеты ( пакеты из Java API)
  • Пользовательские пакеты ( Пакеты, которые вы создаете)

Мы будем рассматривать только второй вариант.

Собирая Все это Воедино 👩 👩 👦 👦

Давайте рассмотрим очень простой пример: мы создадим класс Calculator (родительский класс) с методами и атрибутами класса, затем расширим из него подкласс MyCalculator (дочерний класс), который унаследует от него методы и атрибуты. Мы будем использовать модульность по умолчанию, поскольку мы будем разделять каждый из файлов класса и помещать их в одну папку (пакет).

Примечание: У вас должен быть только один класс для каждого файла пакета

Сначала у нас будет структура папок нашего пакета следующим образом:

Примечание: Я буду использовать код Visual Studio для этого урока “почему?? ” ” ” ” Как бы ни было здорово и приятно иметь IDE, такую как Netbean или IntelliJ, абстрагирующую от вас все детали компиляции, одна проблема заключается в том, что вы можете не совсем понимать процесс и адекватно отлаживать проблемы, когда возникает необходимость.

Calculator.java 👨🏽 💼 👩🏼 💼

Мы объявили родительский класс Calculator, у него есть один атрибут класса z и два метода класса addition( ) и subtraction( ). Метод сложения принимает два аргумента и выводит их сумму, в то время как метод вычитания выводит разницу.

MyCalculator.java 👨 👧

Здесь мы объявляем дочерний класс MyCalculator, который наследуется от родительского класса Calculator. Обратите внимание, что мы использовали необъявленную переменную z, нам не нужно объявлять переменную z снова, потому что дочерний класс (MyCalculator) наследует все атрибуты и методы от родительского (Calculator). И поскольку мы уже объявили z в родительском классе, нам не нужно повторять объявление в дочернем классе.

Мы также создали новый метод умножения, который также принимает две целочисленные переменные и возвращает их произведение.

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

Примечание (еще раз): Чтобы наследовать от родительского класса, используйте “extends” ключевое слово

Main.java ☕️

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

  • Строка 3: мы объявляем две целочисленные переменные a и b, это будут аргументы, которые мы будем передавать нашим методам.
  • Строка 4: Чтобы получить доступ к методам, которые находятся в нашем классе MyCalculator, нам нужно создать экземпляр этого класса. Итак, мы создали экземпляр Моего калькулятора под названием demo.
  • Мы вызываем методы сложения, вычитания и умножения, передавая переменные a и b в качестве аргументов.

Запуск 🚀

Хорошо, это та часть, где мы запускаем нашу программу. Поскольку мы не используем Netbeans или IntelliJ, мы будем компилировать и запускать нашу программу вручную.

Существует два основных шага для успешного запуска Java-программы:

  • Компиляция ( javac )
  • Выполнение ( java )

Для компиляции мы используем команду javac

Для выполнения мы используем команду java

Примечание : Обычно, когда мы имеем дело только с одним файлом/классом Java, мы выполняем обе команды только для этого класса. но в этом случае, когда у нас есть несколько связанных классов, было бы неплохо скомпилировать все программы один раз. К счастью, мы можем это сделать.

Откройте командную строку или терминал, в зависимости от того, какую операционную систему вы используете.

Для Windows: Нажмите клавишу Windows + R, затем введите “cmd” (без кавычек) и нажмите enter. Вы должны увидеть всплывающую командную строку.

Теперь нам нужно зайти в каталог, в котором мы сохранили нашу программу. Я предполагаю, что он был сохранен на рабочем столе, а имя папки – “калькулятор”. Чтобы перейти в каталог вашей программы, введите:

рабочий стол компакт-диска/калькулятор

Теперь вы должны находиться в каталоге вашего проекта.

Компилировать

Чтобы скомпилировать все классы в каталоге одновременно, введите:

javac ./*.java

Примечание: Эта команда сообщает компилятору java поискать в текущей папке, найти все, что имеет расширение “java” ( в данном случае, Calculator.java , MyCalculator.java & Main.java ) и скомпилируйте их.

Другим способом компиляции классов было бы по одному: если вы предпочитаете использовать этот метод, вам нужно выполнить компиляцию в таком порядке:

  • Скомпилируйте родительский класс ( javac Calculator.java )
  • Скомпилируйте Дочерний класс ( javac MyCalculator.java )
  • Окончательно, Скомпилируйте основной класс ( javac Main.java )

Это создаст файл .class для каждого из классов ( MyCalculator.class , Calculator.class , Main.class ).

Выполнять

Чтобы запустить вашу программу, вам нужно будет только запустить класс, содержащий метод main (в нашем случае Main.class )

java Main

Вы должны получить следующий результат:

В случае шампанского Мы подошли к концу этого короткого 😅 урока. Надеюсь, это кому-то поможет.

Оригинал: “https://dev.to/martinsonuoha/classes-inheritance-packages-modularization-in-java-4llg”