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 Уровень 22
26 октября 2022
Супер кратно по сути
FlamieCyrex23 Уровень 28
24 октября 2022
Хорошая краткая статья для прочтения на досуге.
IVAN Уровень 30
11 октября 2022
Прекрасно