Московский государственный индустриальный университет
Опубликован: 27.09.2006 | Доступ: свободный | Студентов: 3332 / 380 | Оценка: 4.17 / 3.79 | Длительность: 24:17:00
Специальности: Программист
Лекция 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 >
Анастасия Халудорова
Анастасия Халудорова
екатерина яковлева
екатерина яковлева