Knigionline.co » Программное обеспечение » Java руководство для начинающих

Java руководство для начинающих - Шилдт Герберт (2012)

Java руководство для начинающих
  • Год:
    2012
  • Название:
    Java руководство для начинающих
  • Автор:
  • Жанр:
  • Оригинал:
    Английский
  • Язык:
    Русский
  • Издательство:
    Вильямс
  • Страниц:
    316
  • ISBN:
    978-5-8459-1770-6
  • Рейтинг:
    4.3 (4 голос)
  • Ваша оценка:
"Java: руководство для начинающих", автором которого является Герберт Шилдт, а также на его счету популярные по всему миру книги по языкам программирования, таким образом, чтобы у читателя получилось быстро освоить основные навыки программирования на Java. Полностью обновленное по версии Java Platform, Standard Edition 7, пятое издание этого учебного пособия начинается с обзора самых простейших основ, не исключая выполнение простых программ на Java и компилирование. Далее в нем описаны синтаксические конструкции и ключевые слова составляющие основу Java как языка программирования. Затем следует изложение наиболее передовых языковых средств Java, включая многопоточное и обобщенное программирование. Книга завершается введением в библиотеку Swing. Использованный в книге справочный и учебный материал позволяет читателю быстро и легко освоить основы программирования на Java. В целях упрощения процесса изучения Java, учебник построен следующим образом: - Базовые понятия и навыки. Все главы начинаются с перечня базовых понятий и навыков, которые будет необходимо усвоить читателю. - Обращение к знатоку. Во врезках под этим заголовком даны полезные рекомендации в форме вопрос-ответ. - Примеры для опробования. Это примеры небольших проектов, наглядно показывающие, как применять полученные навыки и знания на практике. - Упражнения для самопроверки. В конце каждой главы присутствуют контрольные вопросы и задания для проверки прочности изученного материала. - Подробные комментарии к примерам программ. Все примеры программ в этом учебном пособии снабжены подробными комментариями, которые описывают приемы программирования Java и демонстрируемые языковые средства.

Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги

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

**Пример для опробования 6.2.**

Перегрузка конструктора класса Queue

В этом проекте предстоит усовершенствовать класс Queue, добавив в него два дополнительных конструктора. В первом из них новая очередь будет конструироваться на основании уже существующей, а во втором — присваиваться начальные значения элементам очереди при ее конструировании. Как станет ясно в дальнейшем, добавление этих конструкторов сделает класс Queue более удобным для использования.

Последовательность действий

1. Создайте новый файл QDemo2 . j ava и скопируйте в него код класса Queue, созданный в примере для опробования 6.1.

2. Добавьте сначала в этот класс приведенный ниже конструктор, который будет строить одну очередь на основании другой.

// Конструктор, строящий один объект типа Queue на основании другого.

Queue(Queue ob) {

putloc = ob.putloc;

getloc = ob.getloc;

q = new char[ob.q.length];

// копировать элементы очереди

for(int i=getloc+l; i <= putloc; i++)

q[i] = ob.q[i];

}

```

Внимательно проанализируем этот конструктор. Сначала переменные putloc и getloc инициализируются в нем значениями, содержащимися в объекте ob, который передается ему в качестве параметра. Затем в нем организуется новый массив для хранения элементов очереди, которые далее копируются из объекта ob в этот массив. Вновь созданная копия очереди будет идентична оригиналу, хотя они и являются совершенно отдельными объектами.

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

// Конструирование и инициализация объекта типа Queue.

Queue(char а [ ]) {

putloc = 0;

getloc = 0;

q = new char[a.length+1];

for(int i = 0; i < a.length; i++) put(a[i]);

}

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

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

```

// Класс, реализующий очередь для хранения символов,

class Queue {

private char q[]; // Массив для хранения элементов очереди,

private int putloc, getloc; // Индексы размещения и извлечения

// элементов очереди.

// сконструировать пустую очередь заданного размера

Queue(int size) {

q = new char[size+1]; // выделить память для очереди

putloc = getloc = 0;

}

// сконструировать очередь из существующего объекта типа Queue

Queue(Queue ob) {

putloc = ob.putloc;

getloc = ob.getloc;

q = new char[ob.q.length];

// копировать элементы в очередь

for (int i=getloc+l; i <= putloc; i++)

q[i] = ob.q[i];

}

// сконструировать очередь из массива исходных значений

Queue(char а[]) {

putloc = 0;

getloc = 0;

q = new char[a.length+1];

for(int i = 0; i < a.length; i++) put(a[i]);

}

// поместить символ в очередь

void put(char ch) {

if(putloc==q.length-1) {

System.out.println(" - Queue is full.");

return;

}

putloc++;

q[putloc] = ch;

}

// извлечь символ из очереди

char get() {

if(getloc == putloc) {

System.out.println(" - Queue is empty.");

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