Компьютеры Windows Интернет

Джава программирование

В предыдущих уроках для вывода информации на консоль мы использовали методы print() и println(), которые выводили строки или числа без какого-либо форматирования. Элементарное форматирование мы могли реализовать при помощи добавления к строкам дополнительных пробелов или других символов. В этом уроке мы познакомимся с методами, которые откроют нам новые возможности для форматирования строк в Java .

Массив (англ. Array) это объект, хранящий в себе фиксированное количество значений одного типа. Другими словами, массив — это нумерованный набор переменных. Переменная в массиве называется элементом массива , а ее позиция в массиве задается индексом . Например, нам нужно хранить 50 различных имен, согласитесь, неудобно для каждого имени создавать отдельную переменную, поэтому мы будем использовать массив. Нумерация элементов массива начинается с 0, а длинна массива устанавливается в момент его создания и фиксируется.

Программирую на Java вот уже 7 лет. Но на работе часто приходится обучать новое поколение. В связи с этим и решил сделать некоторую шпаргалку, которая, надеюсь, пригодится и для хабрчан. Если кто-то может помочь дополнить чем-то информацию из этой статьи, то пишите! Итак:

Основные ресурсы для начального обучения

  • www.javable.com - сайт со статьями и tutorial"ом по Java. Все в основном на русском.
  • www.exampledepot.com - очень полезный ресурс, где собраны краткие примеры использования классов для тех или иных пакетов
  • java.sun.com - без первоисточника не обойтись. Для любого Java программиста JavaDoc должен быть истиной в последней инстанции. Так же здесь можно найти серию tutorial"ов на все возможные темы.

Основные Java пакеты

Ниже приведён список Java пакетов, в которых программист должен свободно ориентироваться. Знакомиться с ними рекомендуется как по JavaDoc"ам , так и с помощью www.exampledepot.com . Все пакеты выстроены в рекомендуемом порядке для изучения. Итак:
  1. java.lang - основа основ. Каждый класс в этом пакете нуждается в отдельном внимании.
  2. java.io - ни одна программа не может обойтись без операций с вводом-выводом.
  3. java.util - пакет в основном содержит все необходимое для работы с коллекциями: Collection, Enumeration, Set, List, Map и т.д. и т.п.
  4. java.net - содержит основные классы для работы с сетью.
  5. java.text - все необходимое для форматирования текста
  6. java.lang.reflect - Java не была бы Java"ой если бы не Reflection. Reflection стирает грань между данными и кодом.
  7. javax.sql - все необходимое по работе с базами данных
  8. javax.xml.* , org.w3c.dom.* , org.xml.sax.* - без этих пакетов работа с XML просто немыслима

Ресурсы для расширения кругозора

  • onjava.com - рано или поздно все новости мира Java попадают сюда
  • www.javaspecialists.eu - ресурс полезен как новичкам, так и продвинутым программистам, так как содержит много статей о тонкостях работы с Java.
  • www.theserverside.com - рекомендуется подписаться на RSS, так как часто проскакивают весьма интересные вещи по Java.

Java Библитеки, которые должны знать все

Java не заканчивается знаниями лишь о возможностях JSDK. Чтобы чувствовать себя комфортно необходимо знать еще десятка два сторонних библиотек, используемых Java программистами повсеместно. Итак, начнем с основных:
  • Commons Lang - то что «забыли» включить в JDK
  • Commons Math - отличное дополнение для java.math
  • Commons Logging - логирование должно быть грамотным. За System.out.println для вывода логов начинающим программистам уже через неделю обучения следует отрубать руки.

Download

Java – современный объектно-ориентированный язык программирования. Программа, написанная на Java, способна выполняться практически на любом компьютере. Зная Java, можно создавать мощные мультимедийные приложения для любой платформы. Десятки тысяч программистов начинали изучать Java с помощью предыдущих изданий этой книги. Теперь ваша очередь! Независимо от того, на каком языке вы программировали раньше (и даже если вы никогда прежде не программировали), вы быстро научитесь создавать современные кроссплатформенные приложения.

  • Мир Java. Познакомьтесь с платформой Java, новыми средствами версии Java 7 и современными инструментами разработки.
  • Строительные блоки. Научитесь создавать мощные программы на основе классов – хорошо изолированных блоков кода.
  • Не повторяйтесь, но повторяйте. Научитесь использовать существующие фрагменты кодов в новых программах.
  • Не зацикливайтесь, но зацикливайте. Научитесь использовать циклы и условные конструкции для ветвления программ.
  • Будьте классным и стильным. Освойте правильный стиль кодирования с помощью классов и принципов инкапсуляции, наследования и полиморфизма.
  • Экспериментируйте. Применяйте переменные и методы, массивы и коллекции. Программируйте обработку событий. Создавайте обработчики исключений.

Java - прекрасный язык! Я программирую на нем уже много лет. Особенно мне нравится синтаксис Java - аккуратный и хорошо структурированный. Почти все в нем подчиняется простым правилам. Правда, некоторые правила на первый взгляд выглядят устрашающими, но данная книга для того и предназначена, чтобы помочь вам понять их. Так что если вы планируете программировать на Java, но не хотите читать скучные толстые учебники, прочитайте эту книгу, и вы найдете все, что нужно, чтобы освоиться с новым языком программирования.

Как работать с этой книгой

Я очень хотел бы сказать “Откройте наугад любую страницу книги и начните писать код Java. Не оглядывайтесь назад; вам всего лишь нужно заполнить пустые поля формы”. В некоторых случаях это действительно так. Вы ничего не испортите, если начнете писать код на Java, не умея этого делать, поэтому можете смело экспериментировать с любыми примерами.

Однако нужно честно признать, что приведенное выше утверждение в большинстве случаев неправильное. Если вы не видите всей картины, написать корректную программу будет слишком тяжело. Это справедливо не только для Java, но и для любого языка программирования. Если вы введете код, не зная, что он делает, а затем этот код не будет работать, вы окажетесь в тупике.

Поэтому я разделил материал книги на небольшие порции. Каждая порция - это приблизительно одна глава. Можете начать чтение с любой главы, а иногда даже с середины главы. Я приложил немало усилий, чтобы примеры были понятными без обращения к другим главам и главы были как можно более независимыми одна от другой. Если в какой-то главе вводится сложная концепция, объясняемая в другой главе, я всегда привожу ссылку на другую главу.

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

  • Если вы уже знаете что-либо, можете об этом не читать.
  • Если вы любопытны, не бойтесь забежать вперед. Всегда можно вернуться к предыдущей главе, чтобы возобновить чтение с места, на котором остановились, или найти объяснение непонятной концепции.

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

  • Если вы уже знаете, что такое Java и для чего нужен этот язык.
  • Если вы можете запустить Java-программу на выполнение и вам безразлично.
  • Если вы зарабатываете на жизнь программированием, но на каком-либо другом языке (например, на С++ или C#). Если вы успешно дошли до главы 7, значит, уже можете считаться Java-разработчиком.
  • Если вы хорошо знакомы с языком C (но не С++).
  • Если вы работаете на C++. Java немного отличается от C++ трактовкой классов и объектов.
  • Если вы зарабатываете на жизнь программированием на Java, обращайтесь ко мне и помогите написать очередное, 6-е издание данной книги.

Данная книга посвящена языку программирования Java, но несколько слов все же нужно сказать и о вас, читателе этой книги.

Я предполагаю, что у вас есть беспрепятственный доступ к компьютеру. Коды, приведенные в данной книге в качестве примеров, могут выполняться практически на любом компьютере, на котором можно установить операционною систему Windows, Mac, Linux или Unix. Подойдет даже компьютер десятилетней давности (плюс-минус несколько лет), лишь бы у него были монитор, клавиатура, мышка и, естественно, коврик для мышки.

Я предполагаю, что вы умеете работать со стандартными элементами пользовательского интерфейса, такими как меню и диалоговые окна. Вам не обязательно быть опытным пользователем Windows, Linux или Mac, но вы должны уметь запустить программу, найти файл, создать каталог,
скопировать файл в каталог, т.е. выполнить элементарные операции. Большую часть времени при работе с примерами данной книги вы будете вводить текст с клавиатуры и щелкать мышкой.

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

Я предполагаю, что вы умеете мыслить логически. Логическое мышление - главный элемент программирования на любом языке, включая Java. Надеюсь, эта книга поможет вам раскрыть неведомые ранее логические способности.

Я не делаю никаких предположений о вашем предыдущем опыте програм мирования (или о его отсутствии). Работая над данной книгой, я попытался сделать невозможное - создать книгу, интересную для опытного программиста и в то же время доступную для человека, не имеющего никакого опыта программирования. Это означает, что я не предполагаю наличия у вас какого-либо опыта или знаний в области программирования.

Если вы до этого момента ни разу не сталкивались с понятиями цикла или массива, можете смело приступать к чтению данной книги. С другой стороны, если вы уже встречались с ними в других языках (возможно, в Visual Basic, C++ или COBOL), вы обнаружите ряд интересных особенностей их реализации в Java.

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

Объектно-ориентированное программирование

Однажды в три часа ночи мне снился сон об экзамене по истории, который я про-валил в колледже. Преподаватель говорил мне с гипнотизирующей интонацией: “У вас есть два дня на подготовку к экзамену, но вы забудете, что нужно готовиться. Вы будете чувствовать себя виноватым, но не вспомните, по какой причине. Вина будет угнетать вас, угнетать, угнетать…”

Неожиданно зазвонил телефон, и я резко проснулся. Мне не нравятся сны об экзамене по истории, но просыпаться от телефонного звонка мне не нравится еще больше. В первый момент я хотел в резкой форме напомнить звонящему о необходимости сначала поинтересоваться, какое сейчас время в моем часовом поясе, но уронил телефон на пол и забыл сделать это. Когда я наконец нашел телефон и поднял трубку, человек на другом конце линии сообщил, что он репортер какой-то газеты. Он получил задание написать статью о Java и хочет, чтобы я в двух словах рассказал ему, что это такое.

Я сказал ему несколько слов о Java (решив, что так быстрее отвяжусь от него, чем если буду скандалить) и опять погрузился в сон. Утром я уже не мог вспомнить, что я ему сказал и не приснилось ли мне это. Но, как оказалось, не приснилось, потому что через несколько дней я получил экземпляр газеты, в которой мне бросился в глаза написанный крупными буквами заголовок: “Барри Берд утверждает, что Java - это замечательный объектно-ориентированный язык”.

Объекты и классы

В объектно-ориентированном языке для организации данных используются объекты и классы.

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

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

Возможно, лучше было бы назвать такой стиль программирования не объектно-ориентированным, а программированием на основе классов и объектов. Слово “классы” я поместил на первое место не случайно, потому что понятие класса важнее понятия объекта. Представьте себе строительную площадку. В ее углу посреди большой лужи стоит трейлер, в котором находятся контора прораба и чертеж коттеджа. Чертеж - это класс, поскольку он содержит исчерпывающую информацию о каждом коттедже и список изменяемых параметров.

Аналогия между чертежом и классом не ограничивается наличием списка параметров. Подобие между ними намного более глубокое. Чертеж создается один раз. На его основе подрядчик строит, например, десять коттеджей…

А. Н. Васильев “Самоучитель Java с примерами и программами” Наука и техника, 2011 год, 352 стр. (46,0 мб. djvu + 1,34 мб. файлы)

Самоучитель , как и всякий другой самоучитель, ориентирован на быстрое и самостоятельное изучение по своей тематике, в данном случае по языку программирования Java (под этим следует понимать технологию).

Не стоит много говорить, о том, как читая книги: руководства, самоучители, учебники можно стать программистом – все это не так. Изучение языка программирования, как и изучение иностранного языка, требует не только теоретических знаний – полученных из книг, но и практических упражнений. Желательно с носителями языка (делайте выводы).

Как вы заметили полное название книги – “Самоучитель Java с примерами и программами”, то есть – подразумевается, что читатель будет изучать не только теорию, но и выполнять практические задания и примеры. Что является не гарантией, но ключевым залогом вероятности достижения успехов для более – менее приличного программирования, в частности на Java.

Вам – читателю, судить о том, удалась ли автору поставленная задача или нет. Как не каждый может стать математиком, так не каждый может стать программистом (точнее – классным программистом, хотя…даже медведей в кольцо прыгать учат).

В одном архиве книга, в другом листинги с программным кодом для практических работ, дистрибутив Java со средой разработки программ на Java (NetBeans) из архива удален для уменьшения его размера, последние их версии вы можете скачать отдельно.
ISBN 978-5-94387-937-1


Страница загрузки NetBeans


О книге, языке и программном обеспечении 9
Технология JAVA 9
Программное обеспечение 11
Про ООП вообще и JAVA в частности 20
Полезные ресурсы 23
Структура книги 24
Терминология и принятые договоренности 25
Обратная связь 25
Благодарности 26

Глава 1. Первая программа 22
Очень простая программа 27
Еще одна простая программа 36
Резюме 39

Глава 2. Переменные и основные типы данных 41
Переменные базовых типов 41
Как объявлять переменные 43
Классы-оболочки 47
Резюме 50

Глава 3. Базовые операторы и приведение типов 51
Арифметические операторы 51
Логические операторы 52
Операторы сравнения 54
Побитовые операторы 54
Тернарный оператор 57
Оператор присваивания 59
Явное приведение и автоматическое расширение типов 60
Типы литералов 62
Сокращенные формы операторов 63
Инкремент и декремент 64
Вычисление выражений и приоритет операций 65
Резюме 66

Глава 4. Управляющие инструкции 67
Условный оператор IF 67
Оператор выбора SWITCH-CASE 76
Операторы цикла WHILE и DO-WHILE 80
Оператор цикла FOR 85
Резюме 90

Глава 5. Создание и работа с массивами 91
Одномерные массивы 91
Присваивание и сравнение массивов 97
Двумерные массивы 98
Инициализация массива 102
Работа с массивами 103
Оператор цикла FOR для перебора элементов массива 108
Резюме 109

Глава 6. Классы и объекты классы и объекты 111
Объявление класса и создание объекта 113
117
Конструкторы 122
Перегрузка методов и конструкторов 125
Присваивание объектов 130
Создание копии объекта 132
Резюме 136

Глава 7. Тонкости работы с объектами 137
Статические поля и методы 137
Объекты и методы 143
Массивы и объекты 149
Анонимные объекты 153
Внутренние классы 156
Аргументы командной строки 160
Резюме 164

Глава 8. Наследование, интерфейсы и пакеты 165
Основы наследования 165
Конструктор подкласса 169
Переопределение методов 172
Закрытые члены класса 177
Объектные переменные суперклассов 180
Абстрактные классы и интерфейсы 182
Пакеты и уровни доступа 193
Резюме 195

Глава 9. Работа с текстом и другие утилиты 197
Работа с текстом 197
Работа с датой и временем 209
Математические утилиты 210
Резюме 212

Глава 10. Обработка исключительных ситуаций 213
Исключительные ситуации и их типы 213
Обработка исключений 216
Создание пользовательских классов исключений 222
Резюме 227

Глава 11. Многопоточное программирование 228
Реализация потоков в JAVA 228
Главный поток 230
Создание дочернего потока 233
Синхронизация потоков 238
Резюме 244

Глава 12. Система ввода/вывода 245
Потоки данных и консольный ввод 245
Форматированный вывод 249
Работа с файлами 256
Резюме 265

Глава 13. Графика в Java. Основы библиотеки SWING, ринципы создания приложений с графическим интерфейсом 266
Создание простого окна 271
Окно с текстовой меткой 273
Окно с текстом и пиктограммой 275
Окно с меткой и кнопкой 277
Классы событий 282
Резюме 286

Глава 14. Приложения с графическим интерфейсом 287
Создание окна с текстовым полем ввода 287
Наследование классов компонентов 301
Резюме 315

Глава 15. Апплеты 316
Основные свойства апплетов и простой пример 316
Передача апплету аргументов 323
Апплет с элементами управления 328
Резюме 349
Заключение 350

Download technical books for free 7,61 mb. epub