Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
41
Добавлен:
12.05.2015
Размер:
624.64 Кб
Скачать

Использование аргументов командной строки

Иногда нужно переслать информацию в программу во время ее выполнения. Это делается пересылкой аргументов командной строки методу main(). Аргументы командной строки это информация, которая следует непосред­ственно за именем программы в командной строке, используемой для за­пуска программы. Обращаться к аргументам командной строки внутри Java-программы весьма просто – они сохраняются как строки в string-массиве. пересылаемом в maino. Например, следующая программа отображает, все аргументы командной строки, с которыми она вызывается:

// Показать все аргументы командной строки, class CommandLine {

public static void main(String args[]) { forfint i=0; i<args.length; i++)

System.out.println("args[" + i + "]: " + args[i]); } }

Попытайтесь выполнить эту программу (после ее компиляции), запустив интерпретатор Java, как показано в следующей командной строке:

Java CoramandLine это тест к программе 100 -1

После этого должен появиться такой вывод:

args[0] это

args[1] тест

args[2] к

args[3] программе

args[4] 100

args[5] -1

Все аргументы командной строки пересылаются как строки. Вы должны преоб­разовать числовые значения к их внутренним формам вручную (см. гл. 14).

Наследование

Наследование – один из краеугольных камней объектно-ориентированного программирования, потому что оно позволяет создавать иерархические клас­сификации. Используя наследование, можно создать главный класс, кото­рый определяет свойства, общие для набора связанных элементов. Затем этот класс может быть унаследован другими, более специфическими клас­сами, каждый из которых добавляет те свойства, которые являются уни­кальными для него. В терминологии Java класс, который унаследован, назы­вается суперклассом (superclass). Класс, который выполняет наследование, называется подклассом (subclass). Поэтому подкласс – это специализирован­ная версия суперкласса. Он наследует все переменные экземпляра и методы, определенные суперклассом, и прибавляет свои собственные уникальные элементы.

Основы наследования

Чтобы наследовать класс, нужно просто включить определение одного клас­са в другое, используя ключевое слово extends. Чтобы увидеть, как это дела­ется, начнем с короткого примера. Следующая программа создает супер­класс с именем а и подкласс с именем в. Обратите внимание, как использу­ется ключевое слово extends, чтобы создать подкласс а.

// Простой пример наследования.

// Создать суперкласс, class A { int i, j;

void showij () {

System.out.println("i и j: " + i + " " + j); } }

II Создать подкласс расширением класса А. class В extends A {

int k;

void showk() {

System.out.println("k: " + k); } void 3um() {

System.out.println("i+j+k: " + (i+j+k)); } }

class Simplelnheritance {

public static void main(String args[]) { A superOb = new A(); В subOb = new В() ;

// Суперкласс может быть использован сам по себе.

superOb.i = 10;

superOb.j = 20;

System.out.println("Содержимое superOb: ");

superOb.showij() ;

System.out.println() ;

/* Подкласс имеет доступ ко всем public-членам

его суперкласса. */ subOb.i = 7; subOb. j = 8; subOb.k = 9;

System.out.println("Содержимое of subOb: "}; subOb.showij(); subOb.showk(); System, out.println();

System.out.println("Сумма i, j и k в subOb:"}; subOb.sumO ; } }

Подкласс в включает все члены его суперкласса д. Вот почему объект зиьоь может обращаться к i и j и вызывать showijo. Поэтому же внутри sum о можно прямо ссылаться на i и j, как если бы они были частью в.

Хотя а – суперкласс для в, он тоже полностью независимый, автономный класс. Роль суперкласса для некоторого подкласса не означает, что этот су­перкласс не может использоваться сам по себе. Более того, подкласс может быть суперклассом для другого подкласса.

Вывод этой программы:

Содержимое supe rOb: i и j : 10 20

Содержимое subOb: i и j: 7 8 k: 9

Сумма i, j и k в subOb: i+j+k: 24

Ниже показана общая форма объявления класса, который наследует супер­класс:

class subclass-name extends superclass-name {

Соседние файлы в папке JavaLit