Опубликован: 27.09.2006 | Уровень: для всех | Доступ: свободно
Лекция 2:

Основы языка Java

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >

Использование класса Xterm

Методы clear и setPosition этого класса были полностью описаны ранее, а вот об уже встречавшемся методе print было рассказано далеко не все. Начнем с того, что в классе Xterm имеется целых три метода с именем print: с одним, двумя и тремя аргументами. Первый аргумент — выводимая строка, второй (в случае его наличия) определяет цвет символов, а третий (если он есть) — цвет фона.

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

public static final int Black   = 0;
    public static final int Red     = 1;
    public static final int Green   = 2;
    public static final int Yellow  = 3;
    public static final int Blue    = 4;
    public static final int Magenta = 5;
    public static final int Cyan    = 6;
    public static final int White   = 7;

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

2 + 2             // 4
    "i = " + "c"      // "i = c"
    "i = " + 2        // "i = 2" 
    "x = " + (3./2.)  // "x = 1.5" 
    "" + (3./2.)      // "1.5" 
    2 + "i = "        // Ошибка!

Используя этот оператор и метод print класса Xterm, можно выводить значения переменных любого из простых типов. Полезно знать, что "" обозначает пустую строку, а печать "\n" приводит к тому, что курсор терминала перемещается в начало следующей строки.

Для того чтобы не добавлять постоянно к выводимой строке "\n", можно пользоваться методами println, действие которых в остальном совершенно аналогично работе методов print.

Оставшиеся неразобранными методы класса Xterm предназначены для ввода целых и действительных чисел. Они позволяют работать с величинами типов int, long, float и double. Их имена вполне естественны: inputInt, inputLong, inputFloat и inputDouble соответственно. Все эти методы возвращают в качестве результата введенное число, если только в процессе ввода не произошла какая-либо ошибка. При этом предполагается, что за один раз может быть введено только одно число, и ввод завершается нажатием на клавишу Enter.

Аналогично работает и метод inputChars, позволяющий осуществить ввод строки символьной информации, размещая ее в массиве символов.

Исключительная ситуация возникает, например, в случае ошибочного или целенаправленного ввода буквенных или управляющих символов, а также при вводе пустой строки. Про работу с исключительными ситуациями будет рассказано позже , а пока необходимо запомнить, что в том случае, когда программа использует ввод чисел, строку

public static void main(String[] args)

следует заменить на

public static void main(String[] args) throws Exception

Все четыре метода ввода чисел и метод ввода строки символов, определенные в классе Xterm, являются перегруженными (overload). Перегрузка методов — это своеобразное проявление полиморфизма, когда два или более различных методов имеют одно и то же имя и различаются только количеством или типами аргументов. Методы ввода класса Xterm позволяют указывать в качестве аргумента строку, которая будет выведена в качестве подсказки. Это весьма удобно, так как позволяет при выполнении программы явно увидеть, когда именно следует вводить ту или иную информацию.

Использование класса Xterm для организации операций ввода/вывода будет проиллюстрировано при решении следующей задачи.

Задача 2.3. Напишите программу, вводящую два целых числа a и b, печатающую их, затем обменивающую значения этих переменных (так, чтобы новое значение a стало равно старому значению b, и наоборот) и вновь их печатающую.

Текст программы

public class Change {
    public static void main(String[] args) throws Exception {    
        int a = Xterm.inputInt("Введите первое число -> ");
        int b = Xterm.inputInt("Введите второе число -> ");
        Xterm.println("До обмена:    a = " + a + "; b = " + b);

        int c = a;
        a = b;
        b = c;

        Xterm.println("После обмена: a = " + a + "; b = " + b);
    }
}

Эта программа использует третью переменную c для того, чтобы сохранить в ней начальное значение переменной a, которое иначе оказалось бы утерянным при выполнении оператора присваивания a = b;. Попробуйте придумать какой-либо способ обменять значения двух переменных без введения третьей.

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >
Анастасия Халудорова
Анастасия Халудорова
подавляющее большиство фукций на пространстве последовательостей?
екатерина яковлева
екатерина яковлева
как получить сертификат,что для этого нужно?
Павел Плахотник
Павел Плахотник
Украина, Днепропетровск
Елена Сергеева
Елена Сергеева
Россия, Таганрог, ТРТУ, 2003