JavaRush/Java блог/Random/Кофе-брейк #166. Зачем нужна инкапсуляция в Java? Три спо...

Кофе-брейк #166. Зачем нужна инкапсуляция в Java? Три способа использования функции Print в Java

Статья из группы Random
участников

Зачем нужна инкапсуляция в Java?

Источник: Use My Notes Из этой публикации вы узнаете, зачем нужна инкапсуляция в объектно-ориентированном программировании. В статье рассмотрена концепция ее работы и способы реализации на языке Java. Кофе-брейк #166. Зачем нужна инкапсуляция в Java? Три способа использования функции Print в Java - 1

Что такое инкапсуляция в Java

Инкапсуляция — это концепция в языке Java, которая объединяет данные и методы, работающие с ними, в единое целое — в одну упаковку или оболочку. Проще говоря, инкапсуляция объединяет переменные и методы в одном классе.

Зачем нам нужна инкапсуляция в Java?

  • Чтобы код оставался чистым и организованным.
  • Для лучшего контроля доступа к инкапсулированным членам.
  • Чтобы лучше понимать код.
Давайте разберемся с этой концепцией на небольшом примере:
class MyBankAccount {
    private int acc_number;
    private int acc_balance;

    public MyBankAccount(int acc_number, int acc_balance) {
        this.acc_number = acc_number;
        this.acc_balance = acc_balance;
    }

    public int printAccountBalance() {
        System.out.println("Balance: " + acc_balance);
    }

    public int printAccountNumber() {
        System.out.println("Account Number: " + acc_number);
    }

    public void depositMoney(int money) {
        acc_balance = acc_balance + money;
    }
}
Здесь у нас есть класс MyBankAccount с конструктором, двумя переменными и тремя методами. Эти члены класса связаны друг с другом, поэтому они находятся в одном классе. Класс MyBankAccount инкапсулирует или объединяет содержимое класса, и весь этот код действует как единое целое. Теперь, просто взглянув на имя класса, то есть на “MyBankAccount”, мы можем предположить, что у него есть баланс счета и номер счета (которые он имеет в качестве переменных). Банковские счета связаны с денежными транзакциями, такими как внесение денег, распечатка остатков на счетах и ​​так далее. Эти транзакции выполняются с помощью методов, соответствующих вышеприведенному классу. Как мы видим, это улучшило читаемость и поддержку кода. Предположим, у нас есть 100 классов, и каждый класс имеет от 5 до 10 методов и почти такое же количество переменных. С инкапсуляцией нам намного проще найти определенные методы или переменные, просто предположив, к какому классу они могут относиться.

Как концепция инкапсуляции может помочь в работе?

У инкапсуляции в программировании есть несколько преимуществ, мы их просто не осознаем, пока не увидим в работе. В современном мире все так или иначе цифровое и программное. Существует много языков программирования, на которых генерируется огромное количество кода при разработке софта или библиотек программирования. Все они так или иначе инкапсулированы. Без инкапсуляции программирование было бы беспорядочным (особенно в индустрии ПО). Инкапсуляция в Java:
  • Помогает организовать код лучше и понятнее.
  • Позволяет прилагать меньше усилий при сопровождении большого количества кода.
  • Снижает сложность управления кодом.
  • Разделяет код на части.
  • Повышает читабельность.

А если бы инкапсуляции не было?

Есть языки программирования, в которых нет концепции инкапсуляции. Одним из них является язык программирования C. У него нет понятия инкапсуляции. Код может быть разбросан по файлам, и каждый файл может иметь любую переменную или функцию, которые могут быть связаны или не связаны друг с другом. Это создает путаницу в управлении кодом и увеличивает сложность. Без инкапсуляции:
  • Код может стать неорганизованным или беспорядочным.
  • Увеличивается сложность поддержки кода.
  • Усложняется отладка кода.
  • Снижается читабельность.
Я надеюсь, что теперь вы лучше понимаете инкапсуляцию и ее использование в программировании на Java. Спасибо за чтение.

Три способа использования функции Print в Java

Источник: FreeCodeCamp Далеко не все разработчики знают о трех разных функциях/операторах Print в Java. Автор этой статьи расскажет о них и покажет, как они работают на примерах. Кофе-брейк #166. Зачем нужна инкапсуляция в Java? Три способа использования функции Print в Java - 2

Как использовать функцию println() в Java

Функция println() добавляет новую строку после печати значения/данных внутри нее. Здесь суффикс ln работает как символ новой строки \n. Давайте посмотрим на пример кода:
public class Main{
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
Если пока не очень понятно, что именно происходит, то вкратце это можно объяснить так. Когда вы печатаете только одну строку, то получаете на выводе вот что:
Hello World!
А теперь, если вы попытаетесь напечатать несколько разных выражений, используя println(), то ясно видна разница!
public class Main{
    public static void main(String[] args) {
        System.out.println("Hello World!");
        System.out.println("Welcome to freeCodeCamp");
    }
}
Как можно заметить, после выполнения первого оператора печати добавляется один символ новой строки (\n). Таким образом, вы получаете второй оператор печати Welcome to freeCodeCamp в следующей строке. Весь вывод будет таким, как показано ниже:
Hello World! Welcome to freeCodeCamp
Но нет ли способа избежать автоматически сгенерированного символа новой строки в функции print? Есть! В этом случае вам нужно использовать оператор print().

Как использовать функцию print() в Java

Для демонстрации этой функции позвольте мне использовать пример, который поможет сразу увидеть разницу:
public class Main{
    public static void main(String[] args) {
        System.out.print("Hello World!");
        System.out.print("Welcome to freeCodeCamp");
    }
}
Как вы видите, я использовал print вместо использования println, как раньше. Оператор print не добавляет дополнительный \n в качестве символа новой строки после выполнения задачи в нем. То есть, вы не получите еще одну новую строку на выводе, а будет примерно вот так:
Hello World! Welcome to freeCodeCamp
Если хотите, то вы можете решить проблему \n, как показано ниже:
public class Main{
    public static void main(String[] args) {
        System.out.print("Hello World!\n");
        System.out.print("Welcome to freeCodeCamp");
    }
}
На этот раз \n будет работать как символ новой строки, и вы получите вторую строку. Вот результат:
Hello World! Welcome to freeCodeCamp
Вы также можете распечатать две строки, используя только один оператор print, как показано ниже:
public class Main{
    public static void main(String[] args) {
        System.out.print("Hello World!\nWelcome to freeCodeCamp");
    }
}
Вывод будет таким же:
Hello World! Welcome to freeCodeCamp

Как использовать функцию printf() в Java

Функция printf() работает как форматированная функция print. Чтобы лучше понять, вот два сценария: Сценарий 1. Ваш друг Томми хочет, чтобы вы передали ему PDF-файл по электронной почте. Вы можете просто создать электронное письмо, указать тему по своему усмотрению (например, привет Томми, это Джим). Вы даже можете ничего не писать в основной части электронного письма и отправить пустой e-mail лишь прикрепив PDF-файл. Сценарий 2. Вы не смогли вчера прийти на занятие. Ваш преподаватель попросил вас предоставить причины отсутствия с доказательствами и отправить документы по электронной почте. Здесь вы не можете отправить письмо своему профессору так, как вы это делали для своего друга Томми. Вам нужно соблюсти некоторую формальность и надлежащий этикет. То есть, в письме вы должны указать формальную тему и написать необходимую информацию в основной части. И последнее, но не менее важное: вы должны прикрепить документ к своему электронному письму после переименования его в соответствии с надлежащим соглашением об именах. Речь о том, что вам нужно отформатировать свою электронное письмо так, как от вас требуют. Функция printf() помогает нам реализовать второй сценарий. Если мы хотим указать какой-либо конкретный формат/стиль печати, мы используем именно функцию printf(). Приведу краткий пример, как это работает:
public class Main{
    public static void main(String[] args) {
        double value = 2.3897;
        System.out.println(value);
        System.out.printf("%.2f" , value);
    }
}
Здесь я объявляю переменную типа double с именем value и присваиваю ей значение 2.3897. Теперь, когда я использую функцию println(), она печатает все значение с четырьмя цифрами после точки счисления. Вот результат:
2.3897 2.39
После этого, когда я использую функцию printf(), я могу изменить выходной поток, чтобы функция выводила значение. Здесь я сообщаю функции, что хочу, чтобы после точки счисления выводилось ровно две цифры. Таким образом, функция печатает округленное значение до двух цифр после точки счисления. И это лишь один из способов использования функции printf(). Имейте в виду, что она имеет множество применений в языке Java.
Комментарии (3)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
SeniorPomidor Developer в ИП Рогов Василий
26 октября 2022, 05:44
Супер кратно по сути
FlamieCyrex23
Уровень 28
24 октября 2022, 07:09
Хорошая краткая статья для прочтения на досуге.
IVAN Работает в Bus Driver
11 октября 2022, 20:11
Прекрасно