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

Потоки. Система.вывод.печать()

Вступление Это четвертый пост в моей серии стримов, он будет разделен на два… Помечено как java, новички, форматирование.

Потоки (Серия из 7 частей)

  • Это четвертый пост в моей серии стримов, он будет разделен на две части. Первая часть (эта часть) будет посвящена базовому форматированию, а вторая часть будет посвящена форматированию с помощью метода format(). Я создал видео-версию YouTube , поэтому, пожалуйста, обязательно проверьте и это.
  • Потоки, реализующие форматирование, являются экземплярами потоков символов, потоков байтов, Printwriter или PrintStream. Теперь в этой серии мы уже видели потоки типа character и byte, но что это за классы печати?
  • Основная задача этих классов – печатать форматированные представления объектов для вывода текстовых потоков, и в них реализованы все методы, найденные в PrintStream. Однако в этом уроке наше основное внимание будет уделено потоку печати.
  • В документации для PrintStream говорится: “Поток печати добавляет функциональность к другому выходному потоку, а именно возможность удобной печати представлений различных значений данных”.. Хотя я знаю, что это было не совсем полезно, но я считаю, что это примерно переводится так: “любой выходной поток типа PrintStream будет иметь дополнительные функциональные возможности (методы), которые позволят выходному потоку печатать представления различных типов данных. Это то, что помогает нам с форматированием. Говоря о форматировании, существует два основных уровня форматирования.

1) печать и печать/|: эти методы форматируют отдельные значения заранее определенным образом.

2) формат : этот метод позволяет нам форматировать любое количество значений на основе строки формата. Об этом будет рассказано в части 2 этого поста в блоге

печать и распечатка

  • Сначала я покажу некоторый код, а затем разобью его на части.
public class Root {
    public static void main(String[] args) {
        int i = 2;
        double r = Math.sqrt(i);

        System.out.print("The square root of ");
        System.out.print(i);
        System.out.print(" is ");
        System.out.print(r);
        System.out.println(".");

        i = 5;
        r = Math.sqrt(i);
        System.out.println("The square root of " + i + " is " + r + ".");
    }
}

1) общедоступный статический void main(строка[] аргументы) : общедоступный означает, что любой класс имеет доступ к этому методу. Статический модификатор означает, что этот метод принадлежит классу, а не объекту, поэтому нам не нужно создавать экземпляр объекта для доступа к нему. Void – это возвращаемый тип, и это означает, что этот метод ничего не возвращает. “main” – это название метода, но в Java main – это совершенно особый метод. Когда Java-программа начинает работать, ей нужно с чего-то начинать, Java-программа всегда начнет выполняться внутри основного метода. Мы могли бы изменить имя файла и/или имя класса, но мы не можем изменить имя основного метода. Основной метод идентифицируется JVM по его имени, если его имя изменено, то он теряет статус отправной точки. Аргументы String[] просто содержат предоставленные аргументы командной строки в виде массива строк. В отличие от основного метода, мы можем изменить имя аргументов на любое, какое захотим.

  • 2) в : мы просто объявляем целое число в Java и присваиваем ему значение 2. Целое число – это просто примитивный тип в Java

  • 3) двойной.sqrt(i) : здесь мы сначала объявляем переменную r двойной, которая является еще одним примитивным типом в Java. Затем мы используем класс Math и вызываем метод sqrt(i), который даст нам квадратный корень из int i.

  • 4) System.out.print(“Квадратный корень из “) : хотя этот код может показаться простым, и я уверен, что вы использовали его, даже не задумываясь об этом. Мы собираемся сломать эту систему, вывести и распечатать на самом деле делают

Система : основная цель системы – предоставить нам классы и методы для обработки стандартных потоков ввода/вывода. С учетом сказанного давайте немного углубимся в документацию. Первое, что мы должны заметить, это то, что система не может быть создана. Это связано с тем, что конструктор System является закрытым, так почему же вы хотите сделать конструктор класса закрытым? Ну, на самом деле существует ряд причин: создание синглтона, ограничение количества создаваемых экземпляров, предотвращение подклассов или создание служебного класса. В случае System конструктор является закрытым, поскольку он является служебным классом. При создании служебного класса вы делаете 3 основные вещи.

  • 1) объявите класс окончательным, чтобы не было никаких расширений.

  • 2) объявить его конструктор закрытым (без создания экземпляра)

  • 3) предоставьте общедоступные статические служебные методы.

  • Если вы посмотрите документацию System , вы заметите, что в ней есть все три из этих условий. Короче говоря, System – это служебный класс, который не может быть расширен/не может быть создан и предоставляет нам статические методы для обработки стандартных потоков ввода/вывода.

из : out – это поле в системном классе. Поле описывается как класс, интерфейс или перечисление с соответствующим значением. “выход” также является фактическим выходным потоком, и нам не нужно его открывать, так как это уже сделано для нас. “out” также имеет предопределенное место назначения для своего потока, это место назначения определяется средой хоста. Для нас конечным пунктом назначения является консоль eclipse. В документации out указано, что это статический класс типа PrintStream. Это очень хорошо, потому что основная цель Printstream – предоставить потокам дополнительную функциональность. Итак, поскольку “out” относится к типу PrintStream, у нас есть доступ ко всем методам print() и println(), которые предоставляет PrintStream.

print() : в PrintStream метод печати перегружен, это означает, что существует много методов с одинаковым именем, но все они имеют разные параметры. Это определяет отдельные сигнатуры методов. Метод print(String s) делает именно то, что вы ожидаете, он печатает строку. Однако, если вы хотите немного углубиться в детали, вот что он делает. Строковые символы преобразуются в байты в соответствии с кодировкой символов платформы по умолчанию, для нас кодировкой является Юникод, а затем эти байты передаются в выходной поток, который, наконец, “печатается” в определенном месте. Все отпечатки работают одинаково, независимо от того, какие параметры они получают. Класс print() обрабатывает всю кодировку за кулисами для нас.

Резюме : итак, чтобы просто резюмировать все, мы используем класс утилиты в Java под названием System, а внутри System мы получаем доступ к полю под названием “out”. “out” – это фактический выходной поток, который мы используем, и он имеет предопределенное назначение, определяемое средой хоста, это также статический класс типа PrintStream. PrintStream предоставляет классу “out” доступ ко всем методам PrintStream. Затем мы используем метод print() для обработки всей закулисной кодировки и распечатки наших символов в заранее определенном месте назначения.

  • Это первый уровень вывода потока форматирования, предоставленный нам. Этот уровень форматирования дает нам очень мало контроля над тем, что мы форматируем.

  • На этом заканчивается первая часть форматирования потоков. Пожалуйста, обратите внимание на вторую часть форматирования, где мы рассмотрим форматирование с помощью метода форматирования.

  • Спасибо, что нашли время в свой день, чтобы прочитать этот мой пост в блоге. Если у вас есть какие-либо вопросы или проблемы, пожалуйста, прокомментируйте ниже или свяжитесь со мной по адресу Твиттер .
  • Также обязательно загляните на мой канал YouTube для получения дополнительных уроков по программированию

Потоки (Серия из 7 частей)

Оригинал: “https://dev.to/theplebdev/streams-system-out-print-15na”