Основы программирования на Java.pptx
- Количество слайдов: 62
Основы программирования на Java Образовательная программа получения дополнительной квалификации Королёв 2014 г. 1
Java платформа Технология Java - это объектно-ориентированная, платформенно-независимая, многопоточная среда программирования. Это основа для "умных" Web- и сетевых сервисов, она позволяет надежно и безопасно наращивать информационную структуру предприятия благодаря платформенной независимости. Все виды систем могут взаимодействовать друг с другом - начиная со смарт-карт и заканчивая суперкомпьютерами - независимо от аппаратной платформы и системного программного обеспечения. 2
Как это работает? Когда программный продукт, написанный на языке программирования Java компилируется с использованием технологии Java, получается байт-код. Виртуальная машина Java может интерпретировать этот байт-код на любой платформе, на которой установлена виртуальная машина Java. Это означает, что нет необходимости в портировании программ. 3
Компания Sun и технология Java Язык Java зародился как часть проекта создания передового программного обеспечения (ПО) для различных бытовых приборов. Реализация проекта была начата на языке С++, но вскоре возник ряд проблем, наилучшим средством борьбы с которыми было изменение самого инструмента - языка программирования. Стало очевидным, что необходим платформенно-независимый язык программирования, позволяющий создавать программы, которые не приходилось бы компилировать отдельно для каждой архитектуры и можно было бы использовать на различных процессорах под различными операционными системами. 4
Компания Sun и технология Java . В 1990 году команда из шести человек, с кодовым названием Green из Sun Microsystems приступила к разработке нового объектно-ориентированного языка программирования, который был назван Oak (дуб), в честь дерева, росшего под окном Гослинга (James Gosling – один из руководителей компании). Вскоре компания Sun Microsystems преобразовала команду Green в компанию First Person. Новая компания обладала интереснейшей концепцией, но не могла найти ей подходящего применения. После ряда неудач неожиданно ситуация для компании изменилась: был анонсирован Mosaic - так родился World Wide Web, с которого началось бурное развитие Internet. 5
Компания Sun и технология Java Нотон (один из 6 -ти) предложил использовать Oak в создании Internet- приложений. Так Oak стал самостоятельным продуктом, вскоре был написан Oakкомпилятор и Oak-браузер "Web. Runner". В 1995 году компания Sun Microsystems приняла решение объявить о новом продукте, переименовав его в Java (единственное разумное объяснение названию - любовь программистов к кофе). Когда Java оказалась в руках Internet, стало необходимым запускать Javaаплеты - небольшие программы, загружаемые через Internet. Web. Runner был переименован в Hot. Java и компания Netscape встала на поддержку Javaпродуктов. 6
Ключевые особенности Java-технологии входят в мир бизнеса одновременно с двух сторон: через тысячи программистов, увлеченных необыкновенными возможностями Java и через дальновидных руководителей корпораций, признающих необычайную экономическую выгоду использования Java-технологий. Задача создания распределенных клиент-серверных сред сталкивается с проблемой интеграции подобных разрозненных продуктов. Развитие Internet, World Wide Web и электронного бизнеса привнесло новый уровень сложности в процесс разработки. Как же справиться с возникшими трудностями? 7
Основные характеристики 8
Ключевые характеристики Java Простота: 1) Разработчик не должен длительное время изучать язык, прежде чем он сможет на нем программировать. 2) В Java не включены некоторые редко используемые, плохо понимаемые и усложняющие работу возможности С: перегрузка операторов (но перегрузка методов в Java осталась), множественное наследование, автоматическое расширяющее приведение типов. 3) Добавилась автоматическая сборка мусора, упрощающая процесс программирования, но несколько усложняющая систему в целом. 4) В С и С++ управление памятью вызывало всегда массу проблем, теперь же об этом не придется много заботиться. 9
Ключевые характеристики Java Объектно-ориентированность : Язык Java с самого начала проектировался как объектно- ориентированный. Задачам распределенных систем клиент -сервер отвечает объектно-ориентированная парадигма: использование концепций инкапсуляции, наследования и полиморфизма. Java предоставляет ясную и действенную объектноориентированную платформу разработки. Программисты на Java могут использовать стандартные библиотеки объектов, обеспечивающие работу с устройствами ввода/вывода, сетевые функции, методы создания графических пользовательских интерфейсов. Функциональность объектов этих библиотек может быть расширена. 10
Ключевые характеристики Java Надежность Большое внимание уделено проверке программ на этапе компиляции, за которой следует второй уровень - динамическая проверка (на этапе выполнения). Модель управления памятью предельно проста: объекты создаются с помощью оператора new. В Java, в отличие от С++, механизм указателей исключает возможность прямой записи в память и порчи данных: при работе с указателями операции строго типизированы, отсутствуют арифметические операции над указателями. Работа с массивами находится под контролем управляющей системы. Существует автоматическая сборка мусора. Программы на Java можно писать, будучи уверенным в том, что машина не "повиснет" из-за ошибок при работе с динамически выделенной памятью. 11
Ключевые характеристики Java Безопасность: Java разработана для оперирования в распределенных средах, это означает, что на первом плане должны стоять вопросы безопасности. Средства безопасности, встроенные в язык, и система исполнения Java позволяют создавать приложения, на которые невозможно "напасть" извне. В сетевых средах приложения, написанные на Java, защищены от вторжения неавторизованного кода, пытающегося внедрить вирус или разрушить файловую систему 12
Ключевые характеристики Java Переносимость : Форматы типов данных и операции над ними четко определены. Тем самым, программы остаются неизменными на любой платформе - не существует несовместимости типов данных на аппаратных и программных архитектурах. Архитектурная независимость и переносимость программного обеспечения Java обеспечивается виртуальной машиной Java (Java Virtual Mashine - JVM) - абстрактной машиной, для которой компилятор Java генерирует код. Специальные реализации JVM для конкретных аппаратных и программных платформ предоставляют уже конкретную виртуальную машину. JVM базируется на стандарте интерфейса переносимых операционных систем (POSIX). 13
Ключевые характеристики Java 14 Независимость от архитектуры : Java разработан для поддержки приложений, внедряемых в гетерогенные сетевые среды. В подобных средах приложения должны исполняться на различных аппаратных архитектурах, под управлением различных операционных систем и во взаимодействии с интерфейсами различных языков программирования. Для обеспечения платформо-независимости программ компилятор Java генерирует байт-код - архитектурнонейтральный промежуточный формат программы, создаваемый для эффективной передачи кода на различные аппаратные и программные платформы. При выполнении программы байт-код интерпретируется исполняющей машиной Java. Один и тот же Java-байт-код будет исполняться на любой платформе.
Ключевые характеристики Java Высокая производительность : Java достигает высокой производительности благодаря специально оптимизированному байт-коду, легко переводимому в машинный код. Автоматическая сборка мусора выполняется как фоновый поток с низким приоритетом, обеспечивая высокую вероятность доступности требуемой памяти, что ведет к увеличению производительности. Приложения, требующие больших вычислительных ресурсов, могут быть спроектированы так, чтобы те части, которые требуют интенсивных вычислений, были написаны на языке ассемблера и взаимодействовали с Java платформой. 15
Ключевые характеристики Java Интерпретируемость: Java-интерпретатор может выполнять Java байт-код на любой машине, на которой установлен интерпретатор и система выполнения. На интерпретирующей платформе фаза сборки программы является простой и пошаговой, поэтому процесс разработки существенно ускоряется и упрощается, отсутствуют традиционные трудные этапы компиляции, сборки, тестирования. 16
Ключевые характеристики Java Многопоточность : Большинству современных сетевых приложений обычно необходимо осуществлять несколько действий одновременно. В Java реализован механизм поддержки легковесных процессовпотоков (нитей). Многопоточность Java предоставляет средства создания приложений с множеством одновременно активных потоков. 17
Ключевые характеристики Java Динамичность : По ряду соображений Java более динамичный язык, чем С++. Он был разработан специально для подстройки под изменяющееся окружение. В то время как компилятор Java на этапе компиляции и статических проверок не допускает никаких отклонений, процесс сборки и выполнения сугубо динамический. Классы связываются только тогда, когда в этом есть необходимость. Новые программные модули могут подключаться из любых источников, в том числе, поставляться по сети. В случае с браузером Hot. Java и другими подобными приложениями интерактивный выполняемый код может быть загружен откуда угодно, что позволяет производить прозрачные модификации приложений. 18
Выводы Разработка приложений на Java приводит к получению программного обеспечения, которое: переносимо на разные архитектуры, операционные системы и графические пользовательские интерфейсы безопасно высокопроизводительно Благодаря Java работа по разработке программного обеспечения значительно упрощается, все старания направлены на достижение конечной цели: вовремя получить передовой продукт, опирающийся на солидную основу Java. Источник: ru. sun. com 19
Основные категории программ Java: Приложение (application) – аналог "обычной" 20 прикладной программы. Апплет (applet) – специализированная программа, работающая в окне WWW-документа под управлением браузера. Сервлет (servlet) - специализированная программа, работающая в WWW на стороне сервера Модуль EJB (Enterprise Java. Beans) – предназначен для многократного использования серверными приложениями Java Библиотека – предназначена для многократного использования программами классов Java
Основные категории программ Java: Версии Java 1. 0 и 1. 1 принято называть Java 1. Все версии Java начиная c 1. 2 принято называть Java 2. Поставить на компьютер исполняющую среду Java (виртуальную Java-машину) можно путем установки SDK (Software Development Kit) - Комплекта разработки программного обеспечения. Имеется три типа SDK: Java ME – комплект Java Micro Edition, предназначенный для программирования "тонких аппаратных клиентов". Java SE – комплект Java Standard Edition, предназначенный для программирования обычных компьютеров. Java EE– комплект Java Enterprise Edition, предназначенный для написания серверного программного обеспечения. 21
Введение в язык Java Листинг 1. Первая программа на языке Java с использованием комментариев // Программа создана 24. 03. 2014. class My. Program { /** Выводим на экран строку "Это Ваша первая программа на языке Java". */ public static void main (String args[]) { System. out. println ("Эта Ваша первая программа на Java"); } } /* Конец программы */ 22
Введение в язык Java Листинг 2. Использование переменных в программе class Squarel { public static void main (String args[]) { int a, b = 4, s; a = 5; s=a*b; System. out. println ("Площадь прямоугольника со сторонами 5 см и 4 см равна " + s + " квадратных сантиметров. "); } } 23
Введение в язык Java Идентификаторы Имена переменных, классов, объектов, интерфейсов, методов называются идентификаторами. Названия идентификаторов выбираются по следующим правилам: • они должны начинаться с буквы или символа подчеркивания; • они могут содержать латинские буквы, символы подчеркивания или цифры без пробелов; • названия идентификаторов не должны совпадать с ключевыми словами; 24
Введение в язык Java Листинг 3 Пример использования переменных с целым типом данных class Example { public static void main (String args[]) { int x; // Объявляем переменную x. x = 10; // Инициализируем ее (присваиваем значение) int у = 6; // Объявляем и инициализируем переменную у int z; z = х * у; int b; b = х * х; System. out. println ("Площадь прямоугольника со сторонами " + х + " см и " + у + " см равна " + z + " см") ; System. out. println ("Площадь квадрата со стороной " + х + " см равна " + b + " см"); } } 25
Введение в язык Java Константа — это именованная ячейка памяти, способная хранить данные, которые потом изменяться не будут. Константа— это фактически переменная, объявленная с ключевым словом j (модификатором) final (оно как раз и говорит о том, что значение переменной изменяться не будет). Также под понятие константы можно подвести понятие литерала. Литералы — это константы, которые записаны по правилам языка Java. Примеры целочисленных литералов. 111 — десятичное (десятеричное) число 056 — число 46 в восьмеричной форме 0 х АВ — 171 в шестнадцатеричной форме В языке Java возможны три системы счисления: десятичная (десятеричная), восьмеричная и шестнадцатеричная. 26
Введение в язык Java Символьные литералы должны заключаться в одинарные кавычки. Среди символьных литералов есть так называемые еsсаре-последовательности, которые позволяют произвести какую-либо операцию, например, перевести курсор на новую строку или вывести обратную косую черту. Они представляют собой набор последовательностей вида uaaaaa, где вместо а могут быть какие-либо символы или числа. Однако есть специальные символы, которые соответствуют еsсаре-последовательностям. 27
Введение в язык Java Специальные символы а b f n r t \ ’ ” 28 Предупреждение (звонок) Возврат курсора на шаг Перевод страницы Следующая строка (перевод на новую строку) Возврат каретки Табуляция Отображение обратной косой черты Отображение одинарной кавычки Отображение двойной кавычки
Введение в язык Java К булевым литералам относятся такие значения, как true (истина) и false (ложь). Они служат для представления логического (или булева) типа данных — boolean. Ссылочный литерал — null. Его можно использовать для присвоения значений объекту, т. е. сделать так, чтобы объект не был инициализирован. Целочисленные типы данных Размер Тип данных 8 бит Byte 16 бит Short 32 бит Int 64 бит Long Типы данных для чисел c плавающей точкой Float 32 бита от3. 4 е-038 до 3. 4 е+038 Double 64 бита от 1. 7 е-308 до 1. 7 е+308 29
Введение в язык Java Тип данных char, это 16 -разрядный тип данных, который хранит символы Unicode с диапазоном значений от 0 до 65535 Пример использования типа данных char class Example { public static void main (String args[]){ char a = 'a'; char b = 'b'; char с = 'с', d= 'd'; char n = 'n'; System. out. println (a + " & " + b + n + с + " & " + d)}} Пример использования булева типа данных class Example { public static void main (String args[]) { boolean bl; int a = 11, b = 11, c= 15; bl = a < b; /* В bl запишется true, если а < b и false, если а>=b */ System. out. println ("11 < 11: " + bl); bl = a < c; System, out. println ("11 < 15: " + bl); bl = false; 30 System. out. println ("bl равна " + bl); }}
Типичные ошибки: 1. Путают языки Java. Script, либо считают, что Java. Script – это интерпретируемый вариант Java. Хотя эти языки не имеют друг к другу никакого отношения. 2. Ошибочно считают, что приложение Java может быть запущено на любом компьютере без установки исполняющей среды (JRE). 3. Не различают приложения (applications) и апплеты (applets). 4. При записи шестнадцатеричного числа вида 0 x… вместо ведущего нуля пишут букву O. 5. Ошибочно считают, что в идентификаторах Java нельзя использовать символы национальных алфавитов. 6. Ошибочно считают, что не имеет значения, в каком регистре набраны символы идентификатора (характерно для тех, кто раньше программировал на PASCAL или FORTRAN). 31
Введение в язык Java Строки представляют собой объекты класса String или массивы типа данных char. Класс String представляет собой класс со множеством полезных методов, которые можно использовать в своих программах (например, сравнение строк, поиск символов в строке и многое другое). Данный класс находится в пакете java. lang. Обо всех этих методах можно прочесть в специальной литературе. 32
Введение в язык Java Пример использования строк class My. String {public static void main (String args[]) {String s 1 = "Строка"; String s 2 = new String(); String s 3 = new String ("Akkuratov"); s 1 = "Eugene"; s 2 = " "; s 3 = s 3 + s 2; // Сложение строк. s 3 + = s 1; // Аналогично записи s 3 = s 3 + s 1. System. out. println ("Мое имя — " + s 3); }} 33
Введение в язык Java Чтобы узнать, совместимы ли два типа данных, необходимо использовать оператор instanceof. Пример использования оператора instanceof Type i; Туре 2 j; if (i instanceof Туре 2) // Если тип переменной i совместим с типом данных Туре 2, то: j = (Туре 2) i; // Преобразуем значение i в Туре 2. Искусственно можно преобразовывать значения почти любых типов данных в иные типы данных (например, преобразовать строку в любой тип данных, используя методы, которые предлагает класс String). Для этого необходимо применять методы так называемых классовоболочек из пакета java. util 34
Введение в язык Java Примитивными типами называются такие, для которых данные содержатся в одной ячейке памяти, и эта ячейка не имеет подъячеек. Ссылочными типами называются такие, для которых в ячейке памяти ( ссылочной переменной ) содержатся не сами данные, а только адреса этих данных, то есть ссылки на данные. При присваивании в ссылочную переменную заносится новый адрес, а не сами данные. Но непосредственного доступа к адресу, хранящемуся в ссылочных переменных, нет. Это сделано для обеспечения безопасности работы с данными – как с точки зрения устранения непреднамеренных ошибок, характерных для работы с данными по их адресам в языках C/C++/PASCAL, так и для устранения возможности намеренного взлома информации. 35
Введение в язык Java В Java все типы делятся на примитивные и ссылочные. К примитивным типам относятся следующие предопределенные типы: целочисленные типы byte, short, int, long, char, типы данных в формате с плавающей точкой float, double, а также булевский (логический) тип boolean и типы-перечисления, объявляемые с помощью зарезервированного слова enum (сокращение от enumeration – "перечисление"). Все остальные типы Java являются ссылочными. 36
В Java действуют следующие соглашения о регистре букв в идентификаторах: Имена примитивных типов следует писать в нижнем регистре (строчными буквами). Например, int, float, boolean и т. д. Имена ссылочных типов следует начинать с заглавной (большой) буквы, например, Object, Float, Boolean, Collection, Runnable. Но если имя составное, новую часть имени начинают с заглавной буквы. Например, JButton, JText. Field, JFormatted. Text. Field, My. Type Для переменных и методов имена, состоящие из одного слова, следует писать в нижнем регистре. Например, i, j, object 1. Если имя составное, новую часть имени начинают с заглавной буквы: my. Variable, j. Button 2, j. Text. Field 2. get. Text(). Имена констант следует писать в верхнем регистре (большими буквами), разделяя входящие в имя составные части символом подчеркивания "_". Например, Double. MIN_VALUE, Double. MAX_VALUE , JOption. Pane. INFORMATION_MESSAGE, MY_CHARS_COUNT и т. п. Символ подчеркивания "_" рекомендуется использовать для 37 разделения составных частей имени только в именах констант и пакетов.
Введение в язык Java Арифметические операторы + Сложение - Вычитание * Умножение / Деление % Вычисление остатка ++ Инкремент -- Декремент += Присваивание со сложением -= Присваивание с вычитанием *= Присваивание с умножением /= Присваивание с делением %= Присваивание с вычислением остатка 38
Введение в язык Java Битовые (поразрядные) операторы - Унарное отрицание & Поразрядное И | Поразрядное ИЛИ ^ Поразрядное исключающее ИЛИ << Сдвиг битов влево >> Сдвиг битов вправо >>> Сдвиг битов вправо с заполнением старшего бита нулем &=, | =, ^=, <<=, >>>= Присвоение с аналогичной операцией 39
Введение в язык Java class Example { public static void main (String args[]) { int a=3, b=4, c=5; int d = a * b; System. out. println (d); d = a | c; System. out. println (d); d &= a; System. out. println (d); }} 40
Введение в язык Java Логические операторы = = Равно != Не равно < Меньше < = Меньше или равно > Больше > = Больше или равно & Логическое и | Логическое или ^ Логическое исключающее или ! Отрицание && Условное и | | Условное или &=, |=, ^= Присваивание с аналогичным оператором 41
Введение в язык Java Пример использования логических операторов class Example { public static void main (String args[]) { int a = 10, b=15, c=20; boolean b 1 = a != b; boolean b 2 = с > a; boolean b 3 = b 1 & b 2; boolean b 4 = b. З ^ b 1; if (b 1 && b 4 = = false) // Если b 1 != b 4, то: b. З = true; else // Если это не так, то: b 2 = false; }} 42
Создание и использование массивов 43
Создание и использование массивов 44
Создание и использование массивов Квадратные скобки при объявлении массива можно ставить как после имени типа данных, так и после имени массива, однако принято ставить их после названия типа. Если вы задаете массив с десятью элементами, то отсчет элементов идет от 0 до 9, а не от 1 до 10. Если вы попытаетесь обратиться к десятому элементу не с помощью цифры 9, а с помощью цифры 10, это будет ошибкой. Многомерные массивы - в этом случае элементом одного массива является другой массив. 45
Создание и использование массивов 46
Создание и использование массивов Преобразование строки в массив с помощью метода char 47
Условный оператор 48
Приоритеты выполнения операторов 49
Циклы Можно использовать не одну переменную-счетчик, а несколько. 50
Циклы Цикл с предусловием. 51
Циклы Цикл с постусловием. 52
Выводы: Переменная — это именованная ячейка памяти компьютера, которая может хранить данные определенного типа. Константа — это переменная, объявленная с модификатором final и, следовательно, не способная менять своего значения. Литералы — это константы определенного типа данных, записанные по правилам языка Java. Тип данных указывает переменной, какие данные и в каком диапазоне значений она будет содержать. Существует множество специальных операторов, позволяющих работать с переменными определенных типов данных. Массив — это набор данных одного типа. 53
Контрольные упражнения 1. Напишите программу, использующую массив, который содержал бы имена всех учащихся двух классов. 2. Напишите программу, которая вычисляла бы длину разных окружностей с диаметрами, взятыми из элементов массива 54
Объектно-ориентированное программирование (ООП) - это методология программирования, опирающаяся на три базовых принципа: • инкапсуляцию, • наследование, • полиморфизм. Язык Java является объектно-ориентированным и в полном объеме использует эти принципы. Построение программ, основанных на ООП, принципиально отличается от более ранней методики процедурного программирования, в которой основой построения программы служили подпрограммы. 55
Инкапсуляция Это слово в общем случае означает "заключение внутрь капсулы". То есть ограничение доступа к внутреннему содержимому снаружи и отсутствие такого ограничения внутри капсулы. В объектном программировании "инкапсуляция" - использование классов – таких типов, в которых кроме данных описаны подпрограммы, позволяющие работать с этими данными, а также выполнять другие действия. Такие подпрограммы, инкапсулированные в класс, называются методами. Поля данных и методы, заданные в классе, часто называют членами класса (class members). 56
Инкапсуляция Так как экземплярами классов ("воплощением" в реальность того, что описано в классе) являются объекты, классы называют объектными типами. Все объекты, являющиеся экземплярами некоторого класса, имеют одинаковые наборы полей данных ( атрибуты объекта) – но со значениями этих данных, которые свои для каждого объекта. Поля данных - это переменные, заданные на уровне описания класса, а не при описании метода. В процессе жизни объекта эти значения могут изменяться. Значения полей данных объекта задают его состояние. А методы задают поведение объекта. 57
Классы в Java Пишется зарезервированное слово class, затем имя класса, после чего в фигурных скобках пишется реализация класса – задаются его поля ( глобальные переменные ) и методы. Объектные переменные – такие переменные, которые имеют объектный тип. В Java объектные переменные – это не сами объекты, а только ссылки на них. То есть все объектные типы являются ссылочными. Circle circle 1; 58
Классы в Java Создается объект с помощью вызова специальной подпрограммы, задаваемой в классе и называемой конструктором. Конструктор возвращает ссылку на созданный объект. Имя конструктора в Java всегда совпадает с именем класса, экземпляр которого создается. Перед именем конструктора во время вызова ставится оператор new – "новый", означающий, что создается новый объект. Например, вызов: circle 1=new Circle(); Circle obj 1=new Circle(); Circle obj 1=new Circle(130, 120, 50); 59
Классы в Java С помощью объектных переменных осуществляется доступ к полям данных или методам объекта: obj 1. x=5; obj 1. show(); Методы делятся на методы объектов и методы классов. Чаще всего пользуются методами объектов, они пользуются полями данных объектов, и поэтому их можно вызывать только из самих объектов. Методы классов, напротив, не пользуются полями данных объектов, и могут работать при отсутствии объекта. Поэтому их можно вызывать как из классов, так и из объектов. При задании метода класса перед его именем необходимо поставить модификатор static – «статический» имя. Класса. имя. Метода(список параметров) или имя. Объекта. имя. Метода(список параметров). 60
Классы в Java Переменные (поля данных) делятся на переменные объектов и переменные классов. При задании переменной класса перед ее именем необходимо поставить модификатор static. Переменные класса, как и методы класса, можно вызывать как из классов, так и из объектов. Формат вызова: имя. Класса. имя. Переменной или имя. Объекта. имя. Переменной. 61
Выводы: Не следует путать классы, объекты и объектные переменные. Класс – это тип, то есть описание того, как устроена ячейка памяти, в которой будут располагаться поля данных объекта. Объект – это содержимое данной ячейки памяти. (А в переменной объектного типа содержится адрес объекта, то есть адрес ячейки памяти. ) Java - язык с динамической объектной моделью. 62
Основы программирования на Java.pptx