Программирование на языке Java


Программирование на языке Java


Революция по имени Java
Революция по имени Java Вообще опасно объявлять каждую новую технологию программирования революционной. Если вы поторопитесь подать свой голос за признание технологии, подобной той, которая реализ...
История создания
История создания Язык Java зародился как часть проекта создания передового программного обеспечения (ПО) для различных бытовых приборов. Реализация проекта была начата на языке С++, но вскоре возн...
Апплеты Java
Апплеты Java Каждый апплет — это небольшая программа, динамически загружаемая по сети — точно так же, как картинка, звуковой файл или элемент мультипликации. Главная особенность апплетов заключает...
Революционный язык программирования
Революционный язык программирования Язык должен был воплощать следующие качества: простоту и мощь, безопасность, объектную ориентированность, надежность, интерактивность, архитектурную независимос...
Простота и мощь
Простота и мощь После освоения основных понятий объектно-ориентированного программирования вы быстро научитесь программировать на Java. В наши дни существует много систем программирования, гордящи...
Безопасность
Безопасность В популярной литературе наших дней, особенно если речь заходит об Internet, стало модной темой обсуждение вопросов безопасности. Люди уверены, что использование Internet в коммерческо...
Объектная ориентированность
Объектная ориентированность Забавно наблюдать, как многочисленные новые диалекты старых языков безапелляционно объявляются объектно-ориентированными. Поскольку при разработке языка отсутствовала т...
Надежность
Надежность Java ограничивает вас в нескольких ключевых областях и таким образом способствует обнаружению ошибок на ранних стадиях разработки программы. В то же время в ней отсутствуют многие источ...
Интерактивность
Интерактивность Java создавалась как средство, которое должно удовлетворить насущную потребность в создании интерактивных сетевых программ. В Java реализовано несколько интересных решений, позволя...
Независимость от архитектуры ЭВМ
Независимость от архитектуры ЭВМ Вопрос о долговечности и переносимости кода важнее религиозных войн между ПК и Макинтошами. Создатели Java наложили на язык и на среду времени выполнения несколько...
Интерпретация плюс высокая производительность
Интерпретация плюс высокая производительность Необычайная способность Java исполнять свой код на любой из поддерживаемых платформ достигается тем, что ее программы транслируются в некое промежуточ...
Богатая объектная среда
Богатая объектная среда Среда Java — это нечто гораздо большее, чем просто язык программирования. В нее встроен набор ключевых классов, содержащих основные абстракции реального мира, с которым при...
Таблица 1 - Пакеты Java API
Таблица 1 - Пакеты Java API Имя пакетаСодержимоеjava.appletКлассы для реализации апплетовjava.awtКлассы для работы с графикой, текстом, окнами и GUIjava.awt.datatransferКлассы для обеспечения пере...
Отличия Java от C++
Отличия Java от C++ В большинстве книг по C++ вы найдете такое же описание достоинств объектно-ориентированного программирования и доказательства того, что это - очередная ступень в развитии индус...
Глобальные переменные
Глобальные переменные В старые добрые времена Фортрана, когда "настоящие мужчины" писали на ассемблере, а программы хранились на перфокартах, главным инструментом в программировании были...
Goto
Goto Другая не слишком хорошая конструкция традиционных языков программирования - оператор goto, предназначенный для передачи управления. Всем нам на первых занятиях по программированию говорили,...
Указатели
Указатели Указатели или адреса в памяти - наиболее мощная и наиболее опасная черта C++. Причиной большинства ошибок в сегодняшнем коде является именно неправильная работа с указателями. Например,...
Распределение памяти
Распределение памяти В строю опасных качеств C++ рука об руку с указателями идет распределение памяти. Распределение памяти в С, а значит и в C++, опирается на инь и янь ненадежного кода - на вызо...
Хрупкие типы данных
Хрупкие типы данных C++ получил в наследство от С все обычные типы данных последнего. Эти типы служат для представления целых и вещественных чисел различных размеров и точности. К несчастью, реаль...
Ненадежное приведение типов
Ненадежное приведение типов Приведение типов в С и C++ - мощный механизм, который позволяет произвольным образом изменять тип указателей. Такой техникой надо пользоваться с крайней осторожностью,...
Ненадежные списки аргументов
Ненадежные списки аргументов C++ гордится своей возможностью передавать указатели на произвольные типы в списках аргументов переменной длины, известных под названием varargs. Интерфейс varargs - п...
Раздельные файлы заголовков
Раздельные файлы заголовков Когда-то великим достижением считались файлы заголовков, в которые можно было поместить прототипы классов и распространять их вместе с оттранслированными двоичными файл...
Ненадежные структуры
Ненадежные структуры С++ пытается предоставить программисту возможность инкапсуляции данных посредством объявления структур (struct) и полиморфизм с помощью объединений (union). Эти две конструкци...
Препроцессорная обработка
Препроцессорная обработка Работа препроцессора C++ которого заключается в поиске специальных команд, начинающихся с символа #. Эти команды позволяют выполнять простую условную трансляцию и расшире...
QED
QED Quod erat demonstrandum - латинское "что и требовалось доказать". Просто прочитав обо всех этих проблемах, даже если вам еще не приходилось иметь с ними дела, вы должны быть готовы п...
Глава 3 - Введение в язык Java
Глава 3 - Введение в язык Java Исходный файл на языке Java - это текстовый файл, содержащий в себе одно или несколько описаний классов. Транслятор Java предполагает, что исходный текст программ хр...
Hello World
Hello World Итак, вот ваша первая Java-программа: class HelloWorld { public static void main (String args []) { System. out. println ("Hello World"); } } Для того, чтобы пораб...
Шаг за шагом
Шаг за шагом Конечно, HelloWorld - это тривиальный пример. Однако даже такая простая программа новичку в языке Java может показаться пугающе сложной, поскольку она знакомит вас с массой новых поня...
Строка 1
Строка 1 class HelloWorld { В этой строке использовано зарезервированное слово class. Оно говорит транслятору, что мы собираемся описать новый класс. Полное описание класса располагается между о...
Строка 2
Строка 2 public static void main (String args []) { Такая, на первый взгляд, чрезмерно сложная строка примера является следствием важного требования, заложенного при разработке языка Java. Дело...
Public
public Разбивая эту строку на отдельные лексемы, мы сразу сталкиваемся с ключевым словом public. Это - модификатор доступа, который позволяет программисту управлять видимостью любого метода и любо...
Static
static Следующее ключевое слово - static. С помощью этого слова объявляются методы и переменные класса, используемые для работы с классом в целом. Методы, в объявлении которых использовано ключево...
Void
void У вас нередко будет возникать потребность в методах, которые возвращают значение того или иного типа: например, int для целых значений, float - для вещественных или имя класса для типов данны...
Main
main Наконец, мы добрались до имени метода main. Здесь нет ничего необычного, просто все существующие реализации Java-интерпретаторов, получив команду интерпретировать класс, начинают свою работу...
Строка 3
Строка 3 System. out. prlntln("Hello World!"); В этой строке выполняется метод println объекта out. Объект out объявлен в классе OutputStream и статически инициализируется в классе Sys...
Лексические основы
Лексические основы Теперь, когда мы подробно рассмотрели минимальный Java-класс, давайте вернемся назад и рассмотрим общие аспекты синтаксиса этого языка. Программы на Java - это набор пробелов, к...
Пробелы
Пробелы Java - язык, который допускает произвольное форматирование текста программ. Для того, чтобы программа работала нормально, нет никакой необходимости выравнивать ее текст специальным образом...
Комментарии
Комментарии Хотя комментарии никак не влияют на исполняемый код программы, при правильном использовании они оказываются весьма существенной частью исходного текста. Существует три разновидности ко...
Зарезервированные ключевые слова
Зарезервированные ключевые слова Зарезервированные ключевые слова - это специальные идентификаторы, которые в языке Java используются для того, чтобы идентифицировать встроенные типы, модификаторы...
Таблица 2 - Зарезервированные слова Java
Таблица 2 - Зарезервированные слова Java abstractbooleanbreakbytebyvaluecasecastcatchcharclassconstcontinuedefaultdodoubleelseextendsfalse final finally floatforfuturegenericgotoifimplementsimpor...
Таблица 3.1 - Зарезервированные имена методов Java
Таблица 3.1 - Зарезервированные имена методов Java cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwait...
Идентификаторы
Идентификаторы Идентификаторы используются для именования классов, методов и переменных. В качестве идентификатора может использоваться любая последовательность строчных и прописных букв, цифр и с...
Литералы
Литералы Константы в Java задаются их литеральным представлением. Целые числа, числа с плавающей точкой, логические значения, символы и строки можно располагать в любом месте исходного кода. Типы...
Целые литералы
Целые литералы Целые числа - это тип, используемый в обычных программах наиболее часто. Любое целочисленное значение, например, 1, 2, 3, 42 - это целый литерал. В данном примере приведены десятичн...
Литералы с плавающей точкой
Литералы с плавающей точкой Числа с плавающей точкой представляют десятичные значения, у которых есть дробная часть. Их можно записывать либо в обычном, либо экспоненциальном форматах. В обычном ф...
Логические литералы
Логические литералы У логической переменной может быть лишь два значения - true (истина) и false (ложь). Логические значения true и false не преобразуются ни в какое числовое представление. Ключев...
Символьные литералы
Символьные литералы Символы в Java - это индексы в таблице символов UNICODE. Они представляют собой 16-битовые значения, которые можно преобразовать в целые числа и к которым можно применять опера...
Таблица 3.2 - Управляющие последовательности символов
Таблица 3.2 - Управляющие последовательности символов Управляющая последовательностьОписание\dddВосьмеричный символ (ddd)\uxxxxШестнадцатиричный символ UNICODE (xxxx)\'Апостроф\"Кавычка\\Обр...
Строчные литералы
Строчные литералы Строчные литералы в Java выглядят точно также, как и во многих других языках - это произвольный текст, заключенный в пару двойных кавычек (""). Хотя строчные литералы в...
Операторы
Операторы Оператор - это нечто, выполняющее некоторое действие над одним или двумя аргументами и выдающее результат. Синтаксически операторы чаще всего размещаются между идентификаторами и литерал...
Таблица 3.3 - Операторы языка Java
Таблица 3.3 - Операторы языка Java ++=--=**=//=||=^^=&&=%%=>>=<<=!!=++-->>>>=<<<<=>>>>>>=&&| |===~?:instanceof[ ] ...
Разделители
Разделители Лишь несколько групп символов, которые могут появляться в синтаксически правильной Java-программе, все еще остались неназваннами. Это - простые разделители, которые влияют на внешний в...
Переменные
Переменные Переменная - это основной элемент хранения информации в Java-программе. Переменная характеризуется комбинацией идентификатора, типа и области действия. В зависимости от того, где вы объ...
Объявление переменной
Объявление переменной Основная форма объявления переменной такова: тип идентификатор [ = значение] [, идентификатор [ = значение 7...]; Тип - это либо один из встроенных типов, то есть, byte, sh...
Ваш первый шаг
Ваш первый шаг Мы уже многого достигли: сначала написали небольшую программу на языке Java и подробно рассмотрели, из чего она состоит (блоки кода, комментарии). Мы познакомились со списком ключев...
Глава 4 - Типы
Глава 4 - Типы В этой главе вы познакомитесь со всеми основными типами языка Java и увидите, как надо объявлять переменные, присваивать им значения и использовать выражения со смешанными типами. В...
Простые типы
Простые типы Простые типы в Java не являются объектно-ориентированными, они аналогичны простым типам большинства традиционных языков программирования. В Java имеется восемь простых типов: - byte,...
Целые числа
Целые числа В языке Java понятие беззнаковых чисел отсутствует. Все числовые типы этого языка - знаковые. Например, если значение переменной типа byte равно в шестнадцатиричном виде 0х80, то это -...
Byte
byte Тип byte - это знаковый 8-битовый тип. Его диапазон - от -128 до 127. Он лучше всего подходит для хранения произвольного потока байтов, загружаемого из сети или из файла. byte b; byte с = 0...
Short
short short - это знаковый 16-битовый тип. Его диапазон - от -32768 до 32767. Это, вероятно, наиболее редко используемый в Java тип, поскольку он определен, как тип, в котором старший байт стоит п...
Int
int Тип int служит для представления 32-битных целых чисел со знаком. Диапазон допустимых для этого типа значений - от -2147483648 до 2147483647. Чаще всего этот тип данных используется для хранен...
Long
long Тип long предназначен для представления 64-битовых чисел со знаком. Его диапазон допустимых значений достаточно велик даже для таких задач, как подсчет числа атомов во вселенной. long m; lo...
Числа с плавающей точкой
Числа с плавающей точкой Числа с плавающей точкой, часто называемые в других языках вещественными числами, используются при вычислениях, в которых требуется использование дробной части. В Java реа...
Float
floatВ переменных с обычной, или одинарной точностью, объявляемых с помощью ключевого слова float, для хранения вещественного значения используется 32 бита. float f; float f2 = 3. 14F; // обрат...
Double
double В случае двойной точности, задаваемой с помощью ключевого слова double, для хранения значений используется 64 бита. Все трансцендентные математические функции, такие, как sin, cos, sqrt, во...
Приведение типа
Приведение типа Приведение типов (type casting) - одно из неприятных свойств C++, тем не менее приведение типов сохранено и в языке Java. Иногда возникают ситуации, когда у вас есть величина каког...
Автоматическое преобразование типов в выражениях
Автоматическое преобразование типов в выражениях Когда вы вычисляете значение выражения, точность, требуемая для хранения промежуточных результатов, зачастую должна быть выше, чем требуется для пр...
Символы
Символы Поскольку в Java для представления символов в строках используется кодировка Unicode, разрядность типа char в этом языке - 16 бит. В нем можно хранить десятки тысяч символов интернациональ...
Тип boolean
Тип boolean В языке Java имеется простой тип boolean, используемый для хранения логических значений. Переменные этого типа могут принимать всего два значения - true (истина) и false (ложь). Значен...
Массивы
Массивы Для объявления типа массива используются квадратные скобки. В приведенной ниже строке объявляется переменная month_days, тип которой - "массив целых чисел типа int". int month_d...
Многомерные массивы
Многомерные массивы На самом деле, настоящих многомерных массивов в Java не существует. Зато имеются массивы массивов, которые ведут себя подобно многомерным массивам, за исключением нескольких не...
Знай свои типы
Знай свои типы Теперь вы знаете, как работать с восьмью простыми типами языка Java. Вы видели, как нужно создавать объекты этих типов и знаете разрядности каждого из них. Вы знаете, как эти типы в...
Глава 5 - Операторы
Глава 5 - Операторы Операторы в языке Java - это специальные символы, которые сообщают транслятору о том, что вы хотите выполнить операцию с некоторыми операндами. Некоторые операторы требуют одно...
Арифметические операторы Арифметические
Арифметические операторы Арифметические операторы используются для вычислений так же как в алгебре (см. таблицу со сводкой арифметических операторов ниже). Допустимые операнды должны иметь числовы...
Четыре арифметических действия
Четыре арифметических действия Ниже, в качестве примера, приведена простая программа, демонстрирующая использование операторов. Обратите внимание на то, что операторы работают как с целыми литерал...
Оператор деления по модулю
Оператор деления по модулю Оператор деления по модулю, или оператор mod, обозначается символом %. Этот оператор возвращает остаток от деления первого операнда на второй. В отличие от C++, функция...
Арифметические операторы присваивания
Арифметические операторы присваивания Для каждого из арифметических операторов есть форма, в которой одновременно с заданной операцией выполняется присваивание. Ниже приведен пример, который иллюс...
Целочисленные битовые операторы
Целочисленные битовые операторы Для целых числовых типов данных - long, int, short, char и byte, определен дополнительный набор операторов, с помощью которых можно проверять и модифицировать состо...
Пример программы, манипулирующей с битами
Пример программы, манипулирующей с битами В таблице, приведенной ниже, показано, как каждый из операторов битовой арифметики воздействует на возможные комбинации битов своих операндов. Приведенный...
Сдвиги влево и вправо
Сдвиги влево и вправо Оператор Оператор >> означает в языке Java сдвиг вправо. Он перемещает все биты своего левого операнда вправо на число позиций, заданное правым операндом. Когда биты ле...
Беззнаковый сдвиг вправо
Беззнаковый сдвиг вправо Часто требуется, чтобы при сдвиге вправо расширение знакового раз-ряда не происходило, а освобождающиеся левые разряды просто запол-нялись бы нулями. class ByteUShift {...
Битовые операторы присваивания
Битовые операторы присваивания Так же, как и в случае арифметических операторов, у всех бинарных битовых операторов есть родственная форма, позволяющая автоматичес-ки присваивать результат операци...
Операторы отношения
Операторы отношения Для того, чтобы можно было сравнивать два значения, в Java имеется набор операторов, описывающих отношение и равенство. Список таких операторов приведен в таблице. ОператорРез...
Булевы логические операторы
Булевы логические операторы Булевы логические операторы, сводка которых приведена в таблице ниже, оперируют только с операндами типа boolean. Все бинарные логические операторы воспринимают в качес...
Тернарный оператор if-then-else
Тернарный оператор if-then-else Общая форма оператора if-then-use такова: выражение1? выражение2: выражениеЗ В качестве первого операнда - - может быть исполь-зовано любое выражение, результатом...
Приоритеты операторов
Приоритеты операторов В Java действует определенный порядок, или приоритет, операций. В элементарной алгебре нас учили тому, что у умножения и деления более высокий приоритет, чем у сложения и выч...
Явные приоритеты
Явные приоритеты Поскольку высший приоритет имеют круглые скобки, вы всегда можете добавить в выражение несколько пар скобок, если у вас есть сомнения по поводу порядка вычислений или вам просто х...
Что дальше?
Что дальше? Итак, мы рассмотрели все виды операторов языка Java. Теперь вы можете сконструировать любое выражение с различными типами данных. В следующей главе познакомимся с конструкциями ветвлен...
Глава 6 - Управление выполнением программы
Глава 6 - Управление выполнением программы Управление в Java почти идентично средствам, используемым в С и C++....
Условные операторы
Условные операторы Они хорошо Вам знакомы, давайте познакомимся с каждым из них в Java. if-else В обобщенной форме этот оператор записывается следующим образом: if (логическое выражение) операто...
Break
break В языке Java отсутствует оператор goto. Для того, чтобы в некоторых случаях заменять goto, в Java предусмотрен оператор break. Этот оператор сообщает исполняющей среде, что следует прекратит...
Внимание
Внимание Вы можете использовать оператор break только для перехода за один из текущих вложенных блоков. Это отличает break от оператора goto языка С, для которого возможны переходы на произвольные...
Switch
switch Оператор switch обеспечивает ясный способ переключения между различными частями программного кода в зависимости от значения одной переменной или выражения. Общая форма этого оператора таков...
Return
return В следующей главе вы узнаете, что в Java для реализации процедурного интерфейса к объектам классов используется разновидность подпрограмм, называемых методами. Подпрограмма main, которую мы...
Циклы
Циклы Любой цикл можно разделить на 4 части - инициализацию, тело, итерацию и условие завершения. В Java есть три циклические конструкции: while (с предусловием), do-while (с постусловием) и for (...
While
while Этот цикл многократно выполняется до тех пор, пока значение логического выражения равно true. Ниже приведена общая форма оператора while: [ инициализация; ] while ( завершение ) { тело; [и...
Do-while
do-while Иногда возникает потребность выполнить тело цикла по крайней мере один раз - даже в том случае, когда логическое выражение с самого начала принимает значение false. Для таких случаев в Ja...
For
for В этом операторе предусмотрены места для всех четырех частей цикла. Ниже приведена общая форма оператора записи for. for ( инициализация; завершение; итерация ) тело; Любой цикл, записанный с...
Оператор запятая
Оператор запятая Иногда возникают ситуации, когда разделы инициализации или итерации цикла for требуют нескольких операторов. Поскольку составной оператор в фигурных скобках в заголовок цикла for...
Continue
continue В некоторых ситуациях возникает потребность досрочно перейти к выполнению следующей итерации, проигнорировав часть операторов тела цикла, еще не выполненных в текущей итерации. Для этой ц...
Исключения
Исключения Последний способ вызвать передачу управления при выполнении кода - использование встроенного в Java механизма обработки исключительных ситуаций. Для этой цели в языке предусмотрены опер...
Вниз по течению
Вниз по течению В последних четырех главах вы узнали о Java довольно много. Если бы это была книга по Фортрану, курс обучения можно было считать законченным. Однако по сравнению с Фортраном Java о...
Глава 7 - Классы
Глава 7 - Классы Базовым элементом объектно-ориентированного программирования в языке Java является класс. В этой главе Вы научитесь создавать и расширять свои собственные классы, работать с экзем...
Переменные представителей (instance variables)
Переменные представителей (instance variables) Данные инкапсулируются в класс путем объявления переменных между открывающей и закрывающей фигурными скобками, выделяющими в определении класса его т...
Оператор new
Оператор new Оператор new создает экземпляр указанного класса и возвращает ссылку на вновь созданный объект. Ниже приведен пример создания и присваивание переменной р экземпляра класса Point. Poi...
Объявление методов
Объявление методов Методы - это подпрограммы, присоединенные к конкретным определениям классов. Они описываются внутри определения класса на том же уровне, что и переменные объектов. При объявлени...
Вызов метода
Вызов метода В Java отсутствует возможность передачи параметров по ссылке на примитивный тип. В Java все параметры примитивных типов передаются по значению, а это означает, что у метода нет доступ...
Скрытие переменных представителей
Скрытие переменных представителей В языке Java не допускается использование в одной или во вложенных областях видимости двух локальных переменных с одинаковыми именами. Интересно отметить, что при...
Конструкторы
Конструкторы Инициализировать все переменные класса всякий раз, когда создается его очередной представитель - довольно утомительное дело даже в том случае, когда в классе имеются функции, подобные...
Совмещение методов
Совмещение методов Язык Java позволяет создавать несколько методов с одинаковыми именами, но с разными списками параметров. Такая техника называется совмещением методов (method overloading). В кач...
This в конструкторах
this в конструкторах Очередной вариант класса Point показывает, как, используя this и совмещение методов, можно строить одни конструкторы на основе других. class Point { int х, у; Point(in...
Наследование
Наследование Вторым фундаментальным свойством объектно-ориентированного подхода является наследование (первый - инкапсуляция). Классы-потомки имеют возможность не только создавать свои собственные...
Внимание
Внимание Вероятно, программисты, знакомые с C++, очевидно ожидают, что сейчас мы начнем обсуждать концепцию множественного наследования. Под множественным наследованием понимается создание класса,...
Super
super В примере с классом Point3D частично повторялся код, уже имевшийся в суперклассе. Вспомните, как во втором конструкторе мы использовали this для вызова первого конструктора того же класса. А...
Замещение методов
Замещение методов Новый подкласс Point3D класса Point наследует реализацию метода distance своего суперкласса (пример PointDist.java). Проблема заключается в том, что в классе Point уже определена...
Динамическое назначение методов
Динамическое назначение методов Давайте в качестве примера рассмотрим два класса, у которых имеют простое родство подкласс / суперкласс, причем единственный метод суперкласса замещен в подклассе....
Final
final Все методы и переменные объектов могут быть замещены по умолчанию. Если же вы хотите объявить, что подклассы не имеют права замещать какие-либо переменные и методы вашего класса, вам нужно о...
Finalize
finalize В Java существует возможность объявлять методы с именем finalize. Методы finalize аналогичны деструкторам в C++ (ключевой знак ~) и Delphi (ключевое слово destructor). Исполняющая среда J...
Static
static Иногда требуется создать метод, который можно было бы использовать вне контекста какого-либо объекта его класса. Так же, как в случае main, все, что требуется для создания такого метода - у...
Abstract
abstract Бывают ситуации, когда нужно определить класс, в котором задана структура какой-либо абстракции, но полная реализация всех методов отсутствует. В таких случаях вы можете с помощью модифик...
Классическое заключение
Классическое заключение В этой главе вы научились создавать классы, конструкторы и методы. Вы осознали разницу между совмещением (overloading) и замещением (overriding) методов. Специальные переме...
Глава 8 - Пакеты и интерфейсы
Глава 8 - Пакеты и интерфейсы Пакет (package) - это некий контейнер, который используется для того, чтобы изолировать имена классов. Например, вы можете создать класс List, заключить его в пакет и...
Пакеты
Пакеты Все идентификаторы, которые мы до сих пор использовали в наших примерах, располагались в одном и том же пространстве имен (name space). Это означает, что нам во избежание конфликтных ситуац...
Оператор package Первое, что может
Оператор package Первое, что может появиться в исходном файле Java - это оператор package, который сообщает транслятору, в каком пакете должны определяться содержащиеся в данном файле классы. Паке...
Трансляция классов в пакетах
Трансляция классов в пакетах При попытке поместить класс в пакет, вы сразу натолкнетесь на жесткое требование точного совпадения иерархии каталогов с иерархией пакетов. Вы не можете переименовать...
Оператор import
Оператор import После оператора package, но до любого определения классов в исходном Java-файле, может присутствовать список операторов import. Пакеты являются хорошим механизмом для отделения кла...
Ограничение доступа
Ограничение доступа Java предоставляет несколько уровней защиты, обеспечивающих возможность тонкой настройки области видимости данных и методов. Из-за наличия пакетов Java должна уметь работать ещ...
Интерфейсы
Интерфейсы Интерфейсы Java созданы для поддержки динамического выбора (resolution) методов во время выполнения программы. Интерфейсы похожи на классы, но в отличие от последних у интерфейсов нет п...
Оператор interface
Оператор interface Определение интерфейса сходно с определением класса, отличие состоит в том, что в интерфейсе отсутствуют объявления данных и конструкторов. Общая форма интерфейса приведена ниже...
Оператор implements
Оператор implements Оператор implements - это дополнение к определению класса, реализующего некоторый интерфейс(ы). class имя_класса [extends суперкласс] [implements интерфейс0 [, интерфейс1...]...
Переменные в интерфейсах
Переменные в интерфейсах Интерфейсы можно использовать для импорта в различные классы совместно используемых констант. В том случае, когда вы реализуете в классе какойлибо интерфейс, все имена пер...
Использование пакетов
Использование пакетов Теперь вы обладаете полной информацией для создания собственных пакетов классов. Легко понимаемые интерфейсы позволят другим программистам использовать ваш код для самых разл...
Глава 9 - Работа со строками
Глава 9 - Работа со строками В этой главе обсуждаются средства языка Java для работы со строками. В язы-ках С и C++ отсутствует встроенная поддержка такого объекта, как строка. В них при необхо-ди...
Внимание
Внимание И String, и StringBuffer объявлены final, что означает, что ни от одного из этих классов нельзя производить подклассы. Это было сделано для того, чтобы можно было применить некоторые виды...
Конструкторы
Конструкторы Как и в случае любого другого класса, вы можете создавать объекты типа String с помощью оператора new. Для создания пустой строки ис-пользуется конструктор без параметров: String s =...
Специальный синтаксис для работы со строками
Специальный синтаксис для работы со строками В Java включено несколько приятных синтаксических дополнений, цель которых - помочь программистам в выполнении операций со строками. В числе таких опер...
Создание строк
Создание строк Java включает в себя стандартное сокращение для этой опера-ции - запись в виде литерала, в которой содержимое строки заключа-ется в пару двойных кавычек. Приводимый ниже фрагмент ко...
Слияние строк
Слияние строк Строку String s = + age + " years old."; в которой с помощью оператора + три строки объединяются в одну, про-честь и понять безусловно легче, чем ее эквивалент, записанный...
Последовательность выполнения операторов
Последовательность выполнения операторов Давайте еще раз обратимся к нашему последнему примеру: String s = "Не is " + age + " years old."; В том случае, когда age - не String...
Преобразование строк
Преобразование строк В каждом классе String есть метод toString - либо своя собственная реализация, либо вариант по умолчанию, наследуемый от класса Object. Класс в нашем очередном примере замещае...
Извлечение символов
Извлечение символов Для того, чтобы извлечь одиночный символ из строки, вы можете со-слаться непосредственно на индекс символа в строке с помощью метода charAt. Если вы хотите в один прием извлечь...
Сравнение
Сравнение Если вы хотите узнать, одинаковы ли две строки, вам следует воспользоваться методом equals класса String. Альтернативная форма этого метода называется equalsIgnoreCase, при ее использова...
Результат запуска этого примера :
Результат запуска этого примера : С:\> java equalsDemo Hello equals Hello -> true Hello equals Good-bye -> false Hello equals HELLO -> false Hello equalsIgnoreCase HELLO -> tr...
Равенство Метод equals и оператор
Равенство Метод equals и оператор == выполняют две совершенно различных проверки. Если метод equal сравнивает символы внутри строк, то опе-ратор == сравнивает две переменные-ссылки на объекты и пр...
IndexOf и lastIndexOf
indexOf и lastIndexOf В класс String включена поддержка поиска определенного символа или подстроки, для этого в нем имеются два метода - indexOf и lastIndexOf. Каждый из этих методов возвращает ин...
Модификация строк при копировании
Модификация строк при копировании Поскольку объекты класса String нельзя изменять, всякий раз, когда вам захочется модифицировать строку, придется либо копировать ее в объект типа StringBuffer, ли...
Substring Вы можете извлечь подстроку
substring Вы можете извлечь подстроку из объекта String, используя метод sub-string. Этот метод создает новую копию символов из того диапазона ин-дексов оригинальной строки, который вы указали при...
Replace
replace Методу replace в качестве параметров задаются два символа. Все сим-волы, совпадающие с первым, заменяются в новой копии строки на вто-рой символ. "Hello".replace('l' , 'w') ->...
ToLowerCase и toUpperCase
toLowerCase и toUpperCase Эта пара методов преобразует все символы исходной строки в нижний и верхний регистр, соответственно. "Hello".toLowerCase() -> "hello" "Hello...
Trim
trim И, наконец, метод trim убирает из исходной строки все ведущие и замыкающие пробелы. "Hello World ".trim() -> "Hello World"...








Начало