Разделы презентаций


Введение в Java

Содержание

Java и другие языки программирования Язык C (начало1970-х, Bell Laboratories, Деннис Ритчи) - универсальный язык процедурного программирования для создания системного программного обеспечения;Язык C++ (начало 1980-х, Bell Laboratories, Бьерн Страуструп,

Слайды и текст этой презентации

Слайд 1Программирование на Java
Тема 1.1 Введение в Java

Программирование на JavaТема 1.1 Введение в Java

Слайд 2 Java и другие языки программирования
Язык C (начало1970-х,

Bell Laboratories, Деннис Ритчи) - универсальный язык процедурного программирования для

создания системного программного обеспечения;

Язык C++ (начало 1980-х, Bell Laboratories, Бьерн Страуструп, расширение языка С) - универсальный язык процедурного и объектно-ориентированного программирования для создания системного и прикладного программного обеспечения;

Язык Java (1995, Sun Microsystems, Джеймс Гослинг) – универсальный объектно-ориентированный язык прикладного программирования;

Язык JavaScript (1995, Netscape Communication) – узкоспециализированный прикладной язык программирования HTML-документов, расширяющий возможности HTML.

Язык C#, платформа .Net (2000, Microsoft) – универсальный объектно-ориентированный язык прикладного программирования;



Java и другие языки программирования Язык C (начало1970-х, Bell Laboratories, Деннис Ритчи) - универсальный язык

Слайд 3 Java и другие языки программирования
Как связаны между

собой языки C, C++, JavaScript и Java? Что между ними

общего, и в чём они отличаются? В каких случаях следует, а в каких не следует их применять?
Язык C был создан в 1972 году в одной из исследовательских групп Bell Laboratories при разработке операционной системы Unix. Язык C создавался как язык для создания системного программного обеспечения, и таким он остаётся до сих пор (до сих пор применяется для написания операционных систем и программирования микроконтроллеров). Причины его популярности в том, что он смог обеспечить необходимую функциональность программного обеспечения в условиях низкой производительности компьютеров, крайней ограниченности их ресурсов и неразвитости периферийных устройств! Язык C является языком процедурного программирования, так как его базовыми конструкциями являются подпрограммы (подпрограммы –функции).
C++, Java, и JavaScript являются объектно-ориентированными языками программирования, и все они имеют C-образный синтаксис операторов. Но объектные модели и базовые конструкции этих языков (за исключением синтаксиса операторов) принципиально различны. Ни один из них не является версией или упрощением другого – это совсем разные языки, предназначенные для разных целей.
C++ является базовым языком системного программирования. Длительное время он использовался и для написания прикладных программ. Требования к прикладным программам совпадают к требованиям к системным только в том случае, когда быстродействие компьютера можно рассматривать как низкое, а ресурсы компьютера – малыми.
У языков C и C++ имеется два принципиальных недостатка: а) низкая надёжность как на уровне исходного кода, так и на уровне исполняемого кода; б) отсутствие переносимости на уровне исполняемого кода. С появлением компьютерных сетей эти недостатки стали очень существенным ограничивающим фактором, поскольку вопросы безопасности при работе в локальных, и, особенно, глобальных сетях приобретают первостепенную значимость.
Java – это не только язык программирования, -это целая технология программирования (язык программирования Java + платформа Java). Сначала Java предназначалась для программирования бытовых электронных устройств, таких как телефоны. Потом Java стала применяться для программирования браузеров — появились апплеты.





Java и другие языки программирования Как связаны между собой языки C, C++, JavaScript и Java?

Слайд 4 Java и другие языки программирования
Java также применяется

для прикладного программирования в неоднородных компьютерных сетях как со стороны

клиентского компьютера, так и со стороны сервера.
Язык JavaScript создавался как узкоспециализированный прикладной язык программирования HTML-страниц, расширяющий возможности HTML, и в полной мере отвечает этим потребностям до сих пор. Следует подчеркнуть, что язык JavaScript не имеет никакого отношения к Java. Включение слова “Java” в название JavaScript являлось рекламным трюком фирмы Netscape Communication. Он также C-образен, но, в отличие от Java, является интерпретируемым.
Итак, Java- универсальный язык прикладного программирования, JavaScript – узкоспециализированный язык программирования HTML-документов, C++ - универсальный язык системного программирования.
В 2000 году в корпорации Microsoft была разработана платформа .Net (читается “дотнет”, DotNet– в переводе с английского “точка Net” ). Она стала альтернативой платформе Java и во многом повторяла её идеи. Основное различие заключалось в том, что для этой платформы можно использовать произвольное количество языков программирования, а не один. Причём классы .Net оказываются совместимы как в целях наследования, так и по исполняемому коду независимо от языка, используемого для их создания. Важнейшим языком .Net стал Java-образный язык C# (читается “Си шарп”). Фактически, C# унаследовал от Java большинство особенностей - динамическую объектную модель, сборку “мусора”, основные синтаксические конструкции. Хотя и является вполне самостоятельным языком программирования, имеющим много привлекательных черт. В частности, компонентные модели Java и C# принципиально отличаются.









Java и другие языки программирования Java также применяется для прикладного программирования в неоднородных компьютерных сетях

Слайд 5 Категории программ, написанных на языке Java
Приложение (application)

– аналог “обычной” прикладной программы.
Апплет (applet) – специализированная программа с

ограниченными возможностями, работающая в окне WWW-документа под управлением браузера.
Сервлет (servlet) - специализированная программа с ограниченными возможностями, работающая в WWW на стороне сервера. Используется преимущественно в рамках технологии JSP (Java Server Pages - Серверных Страниц Java) для программирования WWW-документов со стороны сервера.
Серверное приложение (Enterprise application) – предназначено для многократного использования на стороне сервера.
Библиотека (Java Class Library – библиотека классов, либо NetBeans Module – модуль платформы NetBeans) – предназначена для многократного использования программами Java
Категории программ, написанных на языке Java Приложение (application) – аналог “обычной” прикладной программы.Апплет (applet) –

Слайд 6 Выполнение Java-программы
Выполнение Java-программы

Выполнение Java-программыВыполнение Java-программы

Слайд 7 Выполнение Java-программы
Как вы знаете, программа, написанная на одном из

языков высокого уровня, к которым относится и язык Java, так

называемый исходный модуль ("source"), не может быть сразу же выполнена. Ее сначала надо откомпилировать, т. е. перевести в последовательность машинных команд — объектный модуль. Но и он, как правило, не может быть сразу же выполнен: объектный модуль надо еще скомпоновать с библиотеками использованных в модуле функций, получив в результате загрузочный модуль — полностью готовую к выполнению программу.
Исходный модуль, написанный на Java, не может избежать этих процедур, но здесь проявляется главная особенность технологии Java — программа компилируется сразу в машинные команды, но не команды какого-то конкретного процессора, а в команды так называемой виртуальной машины Java (JVM, Java Virtual Machine). Виртуальная машина Java — это совокупность команд вместе с системой их выполнения. Команды JVM короткие, большинство из них имеет длину 1 байт, отчего команды JVM называют байт-кодами.
Другая особенность Java — все стандартные функции, вызываемые в программе, подключаются к ней только на этапе выполнения, а не включаются в байт-коды. Как говорят специалисты, происходит динамическая компоновка (dynamic binding). Это тоже сильно уменьшает объем откомпилированной программы.
Итак, на первом этапе программа, написанная на языке Java, переводится компилятором в байт-коды. Эта компиляция не зависит от типа какого-либо конкретного процессора и архитектуры некоего конкретного компьютера. Она может быть выполнена один раз сразу же после написания программы. Байт-коды записываются в одном или нескольких файлах, могут храниться во внешней памяти или передаваться по сети. Это особенно удобно благодаря небольшому размеру файлов с байт-кодами. Затем полученные в результате компиляции байт-коды можно выполнять на любом компьютере, имеющем систему, реализующую JVM. При этом не важен ни тип процессора, ни архитектура компьютера. Так реализуется принцип Java "Write once, run anywhere" — "Написано однажды, выполняется где угодно".
Выполнение Java-программыКак вы знаете, программа, написанная на одном из языков высокого уровня, к которым относится и

Слайд 8 Выполнение Java-программы
Интерпретация байт-кодов и динамическая компоновка значительно замедляют выполнение

программ. Это не имеет значения в тех ситуациях, когда байт-коды

передаются по сети, сеть все равно медленнее любой интерпретации, но в других ситуациях требуется мощный и быстрый компьютер. Поэтому постоянно идет усовершенствование интерпретаторов в сторону увеличения скорости интерпретации. Разработаны JIT-компиляторы (Just-In-Time), запоминающие уже интерпретированные участки кода в машинных командах процессора и просто выполняющие эти участки при повторном обращении, например, в циклах. Это значительно увеличивает скорость повторяющихся вычислений. Фирма SUN разработала целую технологию Hot-Spot и включила ее в свою виртуальную машину Java.
При выполнении программ Java на других процессорах требуется интерпретация команд JVM в команды конкретного процессора, а значит, нужна программа-интерпретатор, причем для каждого типа процессоров, и для каждой архитектуры компьютера следует написать свой интерпретатор.
Эта задача уже решена практически для всех компьютерных платформ. На них реализованы виртуальные машины Java, а для наиболее распространенных платформ имеется несколько реализаций JVM разных фирм. Все больше операционных систем и систем управления базами данных включают реализацию JVM в свое ядро. Создана и специальная операционная система JavaOS, применяемая в электронных устройствах. В большинство браузеров встроена виртуальная машина Java для выполнения апплетов.
Внимательный читатель уже заметил, что кроме реализации JVM для выполнения байт-кодов на компьютере еще нужно иметь набор функций, вызываемых из байт-кодов и динамически компонующихся с байт-кодами. Этот набор оформляется в виде библиотеки классов Java, состоящей из одного или нескольких пакетов. Каждая функция может быть записана байт-кодами, но, поскольку она будет храниться на конкретном компьютере, ее можно записать прямо в системе команд этого компьютера, избегнув тем самым интерпретации байт-кодов. Такие функции называют "родными" методами (native methods). Применение "родных" методов ускоряет выполнение программы.
Выполнение Java-программыИнтерпретация байт-кодов и динамическая компоновка значительно замедляют выполнение программ. Это не имеет значения в тех

Слайд 9 Платформа Java
Варианты распространения платформы Java:
JDK (Java Development Kit);
JRE

(Java Runtime Environment ).
Версии JDK (Java Development Kit) :
Java SE

– комплект Java Standard Edition – для написания программного обеспечения для обычных компьютеров;
Java EE– комплект Java Enterprise Edition – для написания серверного программного обеспечения;
Java ME – комплект Java Micro Edition – для написания программного обеспечения для устройств, обладающих малыми ресурсами, например, сотовых телефонов, микроконтроллеров;
Ссылка для скачивания JRE:
http://java.com/ru/download/index.jsp

Платформа JavaВарианты распространения платформы Java:JDK (Java Development Kit);JRE (Java Runtime Environment ).Версии JDK (Java Development

Слайд 10 Платформа Java
Платфома Java – это программное обеспечение, которое используется

для создания и выполнения Java –программ, также коллекция компонентов готовых

к использованию, которые существенно упрощают процесс разработки приложений. Эти компоненты сгруппированы в библиотеки классов и интерфейсов. Такие библиотеки называются пакетами (packages).
Замечание: Платформа – это совокупность аппаратного и программного (ОС) обеспечения (Microsoft Windows, Linux, Solaris OS и Mac OS). Платформа Java отличается от этих платформ, так как являет лишь программным обеспечением.
Платформа Java распространяется в двух вариантах – JDK(Java Development Kit) и JRE (Java Runtime Environment ).
JDK - средство разработчика, состоящее в основном из утилит (например, java compiler), стандартных библиотек классов и демонстрационных примеров. JDK является базовым средством разработки приложений. Оно не содержит никаких текстовых редакторов, а оперирует только с уже существующими java-файлами с помощью утилит командной строки.
JRE (среда выполнения Java) - это минимальная реализация виртуальной машины, необходимая для исполнения Java-приложений, без компилятора и других средств разработки. Если пользователь хочет только запускать программы, это именно то, что ему нужно. JRE включен в состав JDK.

Платформа JavaПлатфома Java – это программное обеспечение, которое используется для создания и выполнения Java –программ, также

Слайд 11 Платформа Java
Наиболее часто используемые пакеты библиотеки классов:
java.lang -

базовые классы, необходимые для работы любого приложения (название - сокращение

от language);
java.util - многие полезные вспомогательные классы;
java.applet - классы для создания апплетов;
java.awt, java.swing - библиотека для создания графического интерфейса пользователя(GUI);
java.awt.image - дополнительные классы для работы с изображениями;
java.io - работа с потоками данных (streams) и с файлами;
java.net - работа с сетью.

Платформа JavaНаиболее часто используемые пакеты библиотеки классов:java.lang - базовые классы, необходимые для работы любого приложения

Слайд 12 Java Development Kit (JDK)
Ссылка для скачивания JDK:

http://www.oracle.com/technetwork/java/javase/downloads/

Java Development Kit (JDK)Ссылка для скачивания JDK:   http://www.oracle.com/technetwork/java/javase/downloads/

Слайд 13 Java Development Kit (JDK)

Java Development Kit (JDK)

Слайд 14 Java Development Kit (JDK)
javac – компилятор для перевода

java-программы в байт-код, понятный виртуальной машине;
java – утилита для запуска

байт-кода java-программы ;
jar – утилита для создания java-архивов
Java Development Kit (JDK)javac – компилятор для перевода java-программы в байт-код, понятный виртуальной машине;java –

Слайд 15 Java Development Kit (JDK)
Проверка версии установленной Java –

машины:
Проверка доступности javac:
Если команда javac недоступна, то нужно добавить путь


“ C:\Program Files\Java\jdk1.7.0_25\bin” к системной переменной
PATH (Пуск->Панель управления->Система->Дополнительно -> Переменные среды)
Java Development Kit (JDK)Проверка версии установленной Java – машины:Проверка доступности javac:Если команда javac недоступна, то

Слайд 16 Структура Java-программы

Структура Java-программы

Слайд 17 Структура Java-программы
Исходный код Java-программы – это текстовый файл, содержащий

в себе одно или несколько описаний классов, и имеющий расширение

java. Хорошим стилем программирования является описание в java-файле одного класса, имя которого совпадает с именем этого класса.
Скомпилированный код (байт-код) для каждого класса записывается в отдельном выходном бинарном файле, с именем совпадающим с именем класса, и расширением class.
Среди классов программы должен быть класс, содержащий метод main(). Именно с метода main() начинает выполнять программу виртуальная java-машина.
Для того, чтобы байт-код был выполнен на каком-либо компьютере, он должен быть переведён в инструкции для соответствующего процессора. Именно этим и занимается Java-машина.
Виртуальная Java-машина не только исполняет байт-код (интерпретирует его, занимается JIT-компиляцией и исполняет JIT-компилированный код), но и выполняет ряд других функций. Например, взаимодействует с операционной системой, обеспечивая доступ к файлам или поддержку графики. А также обеспечивает автоматическое высвобождение памяти, занятой ненужными объектами – так называемую сборку мусора (garbage collection).


Структура Java-программыИсходный код Java-программы – это текстовый файл, содержащий в себе одно или несколько описаний классов,

Слайд 18 Структура Java-программы
Пример программы:

Структура Java-программыПример программы:

Слайд 19 Структура Java-программы

В рассматриваемом примере файл с программой будет иметь

имя HelloWorld и расширение .java (HelloWorld.java). Файл с программой набран

и сохранен с помощью программы Geany.
В командной строке запустим компилятор Java под названием javac и получим готовый класс HelloWorld.class. Если вы хотите посмотреть, как этот класс работает, выполните его при помощи команды java HelloWorld. При этом необходимо набрать имя запускаемого класса точно так, как оно написано в исходном тексте программы, т.е. с соблюдением регистра, иначе вы получите сообщение об ошибке. Если установлен JDK , то в Geany можно не только набрать программу на Java, но также ее компилировать и выполнять.
Рассмотрим поэлементно исходный текст нашего примера. Вся программа состоит из одного класса с именем HelloWorld. У этого класса имеется единственный метод main (так называемая точка входа).
Строка System.out.println("Привет, мир") посылает строку текста в стандартный поток вывода, т. е. на экран.
Модификатор доступа public перед именем метода main указывает на то, что этот метод доступен всем классам, желающим его вызвать, независимо от прав доступа и от места их расположения. Модификатор static говорит о том, что для всех экземпляров класса HelloWorld и в наследуемых от него классах существует лишь один метод main, разделяемый между всеми классами, которые, возможно, будут унаследованы от HelloWorld. Это помогает избежать появления множества точек входа в программу, что вызовет ошибку. Через переменную-массив args типа String (строка) передаются параметры командной строки класса.


Структура Java-программыВ рассматриваемом примере файл с программой будет иметь имя HelloWorld и расширение .java (HelloWorld.java). Файл

Слайд 20 Структура Java-программы
Пример программы с комментариями:

Структура Java-программыПример программы с комментариями:

Слайд 21 Структура Java-программы

В текст программы можно вставить комментарии, которые компилятор

не будет учитывать. Они очень полезны для пояснений по ходу

программы. В период отладки можно выключать из действий один или несколько операторов, пометив их символами комментария. Комментарии вводятся таким образом:
за двумя наклонными чертами подряд //, без пробела между ними, начинается комментарий, продолжающийся до конца строки;
за наклонной чертой и звездочкой /* начинается комментарий, который может занимать несколько строк, до звездочки и наклонной черты */ (без пробелов между этими знаками).
Комментарии очень удобны для чтения и понимания кода, они превращают программу в документ, описывающий ее действия. Программу с хорошими комментариями называют самодокументированной. Поэтому в Java введены комментарии третьего типа, а в состав JDK — программа javadoc , извлекающая эти комментарии в отдельные файлы формата HTML и создающая гиперссылки между ними: за наклонной чертой и двумя звездочками подряд, без пробелов, /** начинается комментарий, который может занимать несколько строк до звездочки (одной) и наклонной черты */ и обрабатываться программой javadoc . В такой комментарий можно вставить указания программе javadoc , которые начинаются с символа @.
Именно так создается документация к JDK. Добавим комментарии к нашему примеру.
Пример, конечно, перегружен пояснениями (это плохой стиль), здесь просто показаны разные формы комментариев.
Структура Java-программыВ текст программы можно вставить комментарии, которые компилятор не будет учитывать. Они очень полезны для

Слайд 22 Структура Java-программы
Пример программы:

Структура Java-программыПример программы:

Слайд 23 Структура Java-программы

В рассматриваемом примере файл с программой будет иметь

имя JavaApplication1 и расширение .java (JavaApplication1.java). Файл с программой набран

и сохранен с помощью программы Netbeans.
Ключевое слово “package” означает объявление пакета (грубо говоря, пакет – это контейнер, содержащий классы). Иерархический вид любой программы можно описать следующим образом:
Пакет ► Класс ► Метод. (при запуске – java Пакет.Класс)
Если класс хранится в отдельном файле, то пакету соответствует папка с этими файлами. Если у пакета есть подпакеты, то им соответствуют подпапки этой папки. Содержимое одних пакетов можно использовать в других с помощью команды import (тоже зарезервированное ключевое слово). Подробнее этот механизм мы изучим на следующих занятиях.


Структура Java-программыВ рассматриваемом примере файл с программой будет иметь имя JavaApplication1 и расширение .java (JavaApplication1.java). Файл

Слайд 24 Константы

Целые константы:
в десятичной форме: +5, -7, 12345678

;
в восьмеричной форме, начиная с нуля: 027, -0326, 0777

; в записи таких констант недопустимы цифры 8 и 9;
в шестнадцатеричной форме, начиная с нуля и латинской буквы х или X: 0xff0a, 0xFC2D, 0x45a8, 0X77FF ; здесь строчные и прописные буквы не различаются.

Действительные константы:
с фиксированной точкой: 37.25, -128.678967, +27.035 ;
с плавающей точкой: 2.5е34, -0.345е-25, 37.2Е+4 ;






Константы Целые константы:в десятичной форме: +5, -7, 12345678 ; в восьмеричной форме, начиная с нуля:

Слайд 25 Константы
Символьные константы:
Печатные символы можно записать в апострофах:

' а ', ' N ', ' ? ‘
Управляющие символы

записываются в апострофах с обратной наклонной чертой:
' \n ' — символ перевода строки;
' \t ' — символ горизонтальной;
и др.
Код любого символа с десятичной кодировкой от 0 до 255:
' \123 ' — буква S , ' \346 ' — буква Ж в кодировке СР1251
Код любого символа в кодировке Unicode:
' \u0053 ' — буква S , ' \u0416 ' — буква Ж .
Строковые константы:
"Это строка\nс переносом"
"\"Спартак\" — Чемпион!"
" Сцепление " + "строк" дает в результате строку "Сцепление строк" .





Константы Символьные константы:Печатные символы можно записать в апострофах: ' а ', ' N ', '

Слайд 26 Константы
Замечание :Число, начинающееся с нуля, записано в

восьмеричной форме, а не в десятичной.
Целые константы хранятся в

формате типа int (см. ниже).
В конце целой константы можно записать букву прописную L или строчную l , тогда константа будет сохраняться в длинном формате типа long (см. ниже): +25L, -0371, OxffL, OXDFDF1 .
В конце действительной константы можно поставить букву F или f , тогда константа будет сохраняться в формате типа float (см. ниже): 3.5f, -45.67F, 4.7e-5f . Можно приписать и букву D (или d): 0.045D, -456.77889d , означающую тип double , но это излишне, поскольку действительные константы и так хранятся в формате типа double .
Код любого символа с десятичной кодировкой от 0 до 255 можно задать, записав его не более чем тремя цифрами в восьмеричной системе счисления в апострофах после обратной наклонной черты: ' \123 ' — буква S , ' \346 ' — буква Ж в кодировке СР1251. Не рекомендуется использовать эту форму записи для печатных и управляющих символов, перечисленных в предыдущем пункте, поскольку компилятор сразу же переведет восьмеричную запись в указанную выше форму. Наибольший код ' \377 ' — десятичное число 255.
Код любого символа в кодировке Unicode набирается в апострофах после обратной наклонной черты и латинской буквы ц ровно четырьмя шестнад-цатеричными цифрами: ' \u0053 ' — буква S , ' \u0416 ' — буква Ж .
Символы хранятся в формате типа char (см. ниже).
Примечание Прописные русские буквы в кодировке Unicode занимают диапазон от ' \u0410 ' — заглавная буква А , до ' \u042F ' — заглавная Я , строчные буквы от ' \u0430 ' — а , до ' \044F ' — я .
В какой бы форме ни записывались символы, компилятор переводит их в Unicode, включая и исходный текст программы.
Замечание .Компилятор и исполняющая система Java работают только с кодировкой Unicode.



Константы Замечание :Число, начинающееся с нуля, записано в восьмеричной форме, а не в десятичной. Целые

Слайд 27 Константы
Строки символов заключаются в кавычки. Управляющие символы

и коды записываются в строках точно так же, с обратной

наклонной чертой, но, разумеется, без апострофов, и оказывают то же действие. Строки могут располагаться только на одной строке исходного кода, нельзя открывающую кавычку поставить на одной строке, а закрывающую — на следующей.
Замечание. Строки символов нельзя начинать на одной строке исходного кода, а заканчивать на другой.
Для строковых констант определена операция сцеплений, обозначаемая плюсом.
Не все шрифты Unicode содержат начертания всех символов, поэтому будьте осторожны при выводе строк в кодировке Unicode.
Совет Используйте Unicode напрямую только в крайних случаях.




Константы Строки символов заключаются в кавычки. Управляющие символы и коды записываются в строках точно так

Слайд 28 Идентификаторы

Соглашения о регистре букв в идентификаторах:

Имена

примитивных типов следует писать в нижнем регистре (строчными буквами).

Например, int, float, boolean

Имена ссылочных типов следует начинать с заглавной (большой) буквы. Если имя составное, новую часть имени также начинают с заглавной буквы.
Например, Object, Float, Collection , JButton, JTextField

Для переменных и методов имена, состоящие из одного слова, следует писать в нижнем регистре. Если имя составное, новую часть имени начинают с заглавной буквы.
Например, i, j,obj1, myVar, jButton2, jTextField2.getText()

Имена констант следует писать в верхнем регистре (большими буквами), разделяя входящие в имя составные части символом подчёркивания “_”.
Например, MIN_VALUE, MAX

Идентификаторы Соглашения о регистре букв в идентификаторах: Имена примитивных типов следует писать в нижнем регистре

Слайд 29 Идентификаторы
Идентификаторы - это имена переменных, классов, методов и

других объектов программы.
В идентификаторах можно применять только буквы и

цифры, причём первой всегда должна быть буква (в том числе символы подчёркивания и доллара), а далее может идти произвольная комбинация букв и цифр. Некоторые символы национальных алфавитов рассматриваются как буквы, и их можно применять в идентификаторах. Но некоторые используются в качестве символов-разделителей, и в идентификаторах их использовать нельзя.
Замечание . Не указывайте в именах знак доллара. Компилятор Java использует его для записи имен вложенных классов.

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


ИдентификаторыИдентификаторы - это имена переменных, классов, методов и других объектов программы. В идентификаторах можно применять

Слайд 30 Примитивные и ссылочные типы данных

Примитивные и ссылочные типы данных

Слайд 31 Примитивные и ссылочные типы данных
Тип данных

- это конструкция языка программирования, которая позволяет описать для данных:
размер

занимаемой памяти,
диапазон допустимых значений,
множество разрешенных операций.
Java все типы делятся на примитивные и ссылочные.
Примитивными типами называются такие, для которых данные содержатся в одной ячейке памяти, и эта ячейка не имеет подъячеек.
Ссылочными типами называются такие, для которых в ячейке памяти (ссылочной переменной) содержатся не сами данные, а только адреса этих данных, то есть ссылки на данные. При присваивании в ссылочную переменную заносится новый адрес, а не сами данные. Но непосредственного доступа к адресу, хранящемуся в ссылочных переменных, нет. Это сделано для обеспечения безопасности работы с данными – как с точки зрения устранения непреднамеренных ошибок, характерных для работы с данными по их адресам в языках C/C++/PASCAL, так и для устранения возможности намеренного взлома информации.
Если ссылочной переменной не присвоено ссылки, в ней хранится нулевой адрес, которому дано символическое имя null. Ссылки можно присваивать друг другу, если они совместимы по типам, а также присваивать значение null. При этом из одной ссылочной переменной в другую копируется адрес. Ссылочные переменные можно сравнивать на равенство, в том числе на равенство null. При этом сравниваются не данные, а их адреса, хранящиеся в ссылочных переменных.
К примитивным типам относятся следующие предопределённые типы: целочисленные типы byte,short,int, long, char, типы данных в формате с плавающей точкой float, double, а также булевский (логический) тип boolean и типы-перечисления, объявляемые с помощью зарезервированного слова enum (сокращение от enumeration – “перечисление”). Все остальные типы Java являются ссылочными.
Ссылочные типы Java используются в объектно – ориентированном программировании. В частности, для работы со строками, файлами, элементами пользовательского интерфейса. Все пользовательские типы (задаваемые программистом) , кроме типов-перечислений, являются ссылочными.

Примитивные и ссылочные типы данных Тип данных - это конструкция языка программирования, которая позволяет описать

Слайд 32 Переменные

Объявление переменных


int i1 =

i2 = 5; // Ошибка! Запрещено в Java

class HelloWorld
{


public static int i;
public static double d1, d2 = 2.5;
public static void main (String args [])
{ int k = 0;
System.out.println(i);
System.out.println(d1);
System.out.println(d2);
System.out.println(k);
System.out.println(MAX);
}
}


Переменные Объявление   переменных int i1 = i2 = 5; // Ошибка! Запрещено в

Слайд 33 Переменные
Переменная – это именованная ячейка памяти, содержимое которой

может изменяться. При объявлении переменной сначала указывается тип переменной, а

затем имя переменной. Указание типа позволяет компилятору задавать объём памяти, выделяемой под переменную или значение данного типа, а также допустимые правила действий с переменными и значениями этого типа.
Синтаксис объявления переменных такой же как и в С++. Объявление переменных может сопровождаться их инициализацией - присваиванием начальных значений. Присваивания вида int i1=i2=5;, характерные для C/C++, запрещены.
Объявление переменных может осуществляться либо в классе, либо в методе.
В классе их можно объявлять как без явного присваивания начального значения, так и с указанием этого значения. Если начальное значение не указано, величина инициализируется нулевым значением. Если объявляется несколько переменных одного типа, после указания имени типа разрешается перечислять несколько переменных, в том числе – с присваиванием им начальных значений.
В методе все переменные перед использованием обязательно надо инициализировать – автоматической инициализации для них не происходит. Это надо делать либо при объявлении, либо до попытки использования значения переменной в подпрограмме. Попытка использования в подпрограмме значения неинициализированной переменной приводит к ошибке во время компиляции.

ПеременныеПеременная – это именованная ячейка памяти, содержимое которой может изменяться. При объявлении переменной сначала указывается

Слайд 34 Примитивные типы данных и операции

Логический тип:

boolean a = true;

boolean b = false;

Логические операции и операции отношения



Примитивные типы данных и операции Логический тип:  boolean a = true;

Слайд 35 Примитивные типы данных и операции
Величины типа boolean

принимают значения true или false. Логические величины обычно используются в

логических выражениях. Значением логического выражения являются true или false. Для работы с логическими выражениями часто применяют так называемые таблицы истинности.
Логические выражения в Java вычисляются в соответствии с так называемым укороченным оцениванием: из приведённой выше таблицы видно, что если a имеет значение false, то значение оператора a&&b будет равно false независимо от значения b. Поэтому если b является булевским выражением, его можно не вычислять. Аналогично, если a имеет значение true, то значение оператора a||b будет равно true независимо от значения b.
Операции отношения - это операции сравнения и принадлежности. Они имеют результат типа boolean. Операции сравнения применимы к любым величинам a и b одного типа, а также к произвольным числовым величинам a и b, не обязательно имеющим один тип.
Про оператор instanceof будет рассказано в разделе, посвящённом динамической проверке типов.




Примитивные типы данных и операции Величины типа boolean принимают значения true или false. Логические величины

Слайд 36 Примитивные типы данных и операции
Целые типы




Aрифметические операции:

+ - / *

% ++ --
Приведение типов:




Примитивные типы данных и операции Целые типыAрифметические операции: +   -   /

Слайд 37 Примитивные типы данных и операции
Над целыми типами

можно производить массу операций. Их набор восходит к языку С,

он оказался удобным и кочует из языка в язык почти без изменений.
Результат арифметической операции имеет тип int, кроме того случая, когда один из операндов типа long . В этом случае результат будет типа long .
Перед выполнением арифметической операции всегда происходит повышение типов byte , short , char . Они преобразуются в тип int , а может быть, и в тип long , если другой операнд типа long . Операнд типа int повышается до типа long , если другой операнд типа long . Конечно, числовое значение операнда при этом не меняется.
Это правило приводит иногда к неожиданным результатам. Попытка откомпилировать простую программу, представленную на слайде, приведет к сообщениям компилятора.
Эти сообщения означают, что в файле HelloWorld.java, в строке 4, обнаружена возможная потеря точности (possible loss of precision). Затем приводятся обнаруженный (found) и нужный (required) типы, выводится строка, в которой обнаружена (а не сделана) ошибка, и отмечается символ, при разборе которого найдена ошибка. Затем указано общее количество обнаруженных (а не сделанных) ошибок (1 error).
В таких случаях следует выполнить явное приведение типа. В данном случае это будет сужение типа int до типа short . Оно осуществляется операцией явного приведения, которая записывается перед приводимым значением в виде имени типа в скобках. Определение short k = (short)(b1 + b2); будет верным.
Сужение осуществляется просто отбрасыванием старших битов, что необходимо учитывать для больших значений. Например, определение byte b = (byte) 300; даст переменной b значение 44 . Действительно, в двоичном представлении числа 300 , равном 100101100 , отбрасывается старший бит и получается 00101100 .
Таким же образом можно произвести и явное расширение типа, если в этом есть необходимость.

Примитивные типы данных и операции Над целыми типами можно производить массу операций. Их набор восходит

Слайд 38 Примитивные типы данных и операции
Если результат целой

операции выходит за диапазон своего типа int или long ,

то автоматически происходит приведение по модулю, равному длине этого диапазона, и вычисления продолжаются, переполнение никак не отмечается. Замечание В языке Java нет целочисленного переполнения.
В языке Java шесть обычных операций сравнения целых чисел по величине: 
больше > ; 
меньше < ;
больше или равно >= ; 
меньше или равно <= ; 
равно == ; 
не равно != .
Результат сравнения — логическое значение: true , в результате, например, сравнения 3 != 5 ; или false , например, в результате сравнения 3 == 5 .
Для записи сложных сравнений следует привлекать логические операции. Например, в вычислениях часто приходится делать проверки вида а < х < b . Подобная запись на языке Java приведет к сообщению об ошибке, поскольку первое сравнение, а < х , даст true или false , a Java не знает, больше это, чем b , или меньше. В данном случае следует написать выражение (а < х) && (х < b) , причем здесь скобки можно опустить, написать просто а < х && х < b .


Примитивные типы данных и операции Если результат целой операции выходит за диапазон своего типа int

Слайд 39 Примитивные типы данных и операции

Вещественные типы:






Операции присваивания:
Простоя

операция присваивания: =
Составные операции присваивания:

+= , -= , *=, /=, %=, &=, |=, ^=, <<=, >>=
Схема действия составных операций присваивания:
х ор= а эквивалентно х = (тип х)(х ор а).
short ind =1; ind +=7.8; // получим 8
ind = (short)(ind + 7.8); // получим 8


Примитивные типы данных и операции Вещественные типы:Операции присваивания:Простоя операция присваивания: =Составные операции присваивания:

Слайд 40 Примитивные типы данных и операции
К вещественным типам

применимы все арифметические операции и сравнения, перечисленные для целых типов.


Знатокам C/C++: В языке Java взятие остатка от деления %, инкремент ++ и декремент — применяются и к вещественным типам.
Поскольку к вещественным типам применимы все арифметические операции и сравнения, целые и вещественные значения можно смешивать в операциях. При этом правило приведения типов дополняется такими условиями:
если в операции один операнд имеет тип double, то и другой приводится к типу double;
если один операнд имеет тип float, то и другой приводится к типу float; 
в противном случае действует правило приведения целых значений.
Операция присваивания действует так: выражение, стоящее после знака равенства, вычисляется и приводится к типу переменной, стоящей слева от знака равенства. Результатом операции будет приведенное значение правой части.


Примитивные типы данных и операции К вещественным типам применимы все арифметические операции и сравнения, перечисленные

Слайд 41 Выражения

Правила вычисления выражений:
Операции одного приоритета вычисляются слева

направо: х + у + z вычисляется как (х +

у) + z. Исключение: операции присваивания вычисляются справа налево: х = у = z вычисляется как х = (у = z).
Левый операнд вычисляется раньше правого.
Операнды полностью вычисляются перед выполнением операции.
Перед выполнением составной операции присваивания значение левой части сохраняется для использования в правой части.
int а = 3, b = 5;
b + (b = 3) // результат 8
(b = 3) + b // результат 6
b += (b = 3) // результат 8

Выражения Правила вычисления выражений:Операции одного приоритета вычисляются слева направо: х + у + z вычисляется

Слайд 42 Выражения
Из констант и переменных, операций над ними,

вызовов методов и скобок составляются выражения. Разумеется, все элементы выражения

должны быть совместимы, нельзя написать, например, 2 + true.
Порядок вычисления выражения всегда можно отрегулировать скобками.
Выражения Из констант и переменных, операций над ними, вызовов методов и скобок составляются выражения. Разумеется,

Слайд 43 Выражения
Приоритет операций (в порядке убывания):
1.Постфиксные операции ++

и —.
2. Префиксные операции ++ и —, дополнение ~

и отрицание !.
3. Приведение типа (тип).
4. Умножение *, деление / и взятие остатка %.
5. Сложение + и вычитание -.
6. Сдвиги <<, >>, >>>.
7. Сравнения >, <, >=, <=.
8. Сравнения ==, !=.
9. Побитовая конъюнкция &.
10. Побитовое исключающее ИЛИ ^.
11. Побитовая дизъюнкция | .
12. Конъюнкция &&.
13. Дизъюнкция | | .
14. Условная операция ?: .
15. Присваивания =, +=, -=, *=, /=, %=, &=, ^=, |=, <<, >>, >>>.

Выражения Приоритет операций (в порядке убывания):1.Постфиксные операции ++ и —. 2. Префиксные операции ++ и

Слайд 44 Консольный ввод-вывод

Потоковые объекты:
System.in – объект класса InputStream;
System.out

– объект класса OutputStream;

Вывод данных: метод System.out.println( );

System.out.println("Hello World");

// вывод строки
System.out.println(245); // вывод числовой константы

// Вывод строковой или численной переменной
int var = 245; String text = "Hello World";
System.out.println(text); System.out.println(var);

// Вывод произвольного сочетания переменных и констант
System.out.println("Hello" + "number = " + var);

// Вывод вещ. чисел с ограничением числа знаков после запятой

double f = 2.567432;
NumberFormat nf = NumberFormat.getInstance(); nf.setMaximumFractionDigits(2);
System.out.println(nf.format(f));
Консольный ввод-вывод Потоковые объекты:System.in – объект класса InputStream;System.out – объект класса OutputStream;Вывод данных:  метод

Слайд 45 Консольный ввод-вывод
В языке Java для поддержки консольного ввода-вывода имеются

три встроенных потоковых объекта System.in, System.out и System.err, которые можно

использовать в программе, не создавая собственных потоков.
Поток System.in является встроенным объектом подкласса InputStream и предназначен для ввода информации с клавиатуры. Поток System.out является объектом подкласса OutputStream и позволяет выводить информацию на монитор. Поток System.err – поток для вывода сообщений об ошибках на монитор.
Вывод данных в консольном приложении выполняется с помощью метода System.out.println( ) . Данный метод достаточно удобен и позволяет выводить константы и переменные в самых различных сочетаниях.
Наряду с методом println( ) существует также очень похожий метод print( ). Единственное его отличие заключается в том, что он не осуществляет перевода строки, то есть с его помощью можно выводить несколько значений в одну строку.
Для ограничение числа знаков после запятой при выводе вещественных чисел необходимо создать обьект класса NumberFormat и вызвать его метод setMaximumFractionDigits(), с помощью которого можно указать, сколько следует выводить знаков после запятой. Класс NumberFormat входит в состав пакета java.text.
В метод println() передается результат форматирования переменных с помощью метода format() класса NmberFomat.
Консольный ввод-выводВ языке Java для поддержки консольного ввода-вывода имеются три встроенных потоковых объекта System.in, System.out и

Слайд 46 Консольный ввод-вывод

Ввод данных с клавиатуры:

// установить связь с вводимыми с клавиатуры данными
import

java.io.*

BufferedReader bReader = new BufferedReader (new InputStreamReader(System.in));

// ввод строки данных
String cStr; cStr = bReader.readLine();

// преобразование строки данных
int iNum = Integer.parseInt(cStr); float fNum = Float.parseFloat(cStr); double dNum = Double.parseDouble(cStr);




Консольный ввод-вывод Ввод данных с клавиатуры:   // установить связь с вводимыми с клавиатуры

Слайд 47 Консольный ввод-вывод
К сожалению, при вводе чисел или знаков в

программу для их обработки, все выглядит немного сложнее. Здесь необходимы

специальные классы и механизмы пакета java.io, который в этой теме не будет рассматриваться подробно, так как о нем пойдет речь в следующих темах.
Считывание вводимых с клавиатуры данных производится в программе на Java в два этапа:
установить связь с вводимыми с клавиатуры данными;
преобразовать вводимые пользователем знаки в данные соответствующего типа.
Для того, чтобы установить связь с вводимыми с клавиатуры данными используются три различных класса (BufferedReader, InputStreamRreader, System.in), которые взаимодействуют между собой и возвращают значение в переменную bReader.
Так как мы используем класс BufferedReader из пакета java.io, то необходимо в самом начале программы обеспечить импорт этого пакета с помощью инструкции import java.io.*.
Переменная bReader имеет тип класса BufferedReader, из которого мы используем только метод readLine( ), необходимый для получения введенной пользователем с клавиатуры строки.
Преобразование строки, которая содержит некое число, в соответствующее численное значение производится с помощью специальных методов, которые существуют для каждого элементарного типа данных. Необходимым условием при вызове данных методов является то, что строка cStr должна соответствовать подразумеваемому виду. Если метод получает строку ”Hello”, то при всем своем желании компилятор не сможет преобразовать ее в число!

Консольный ввод-выводК сожалению, при вводе чисел или знаков в программу для их обработки, все выглядит немного

Слайд 48 Консольный ввод-вывод

Класс Scanner:

import java.util.Scanner; //

импортируем класс
public class Main
{ public static void main(String[]

args)
{ Scanner sc = new Scanner(System.in); // создаём объект
// класса Scanner     int i = 2;     System.out.print("Введите целое число: ");     if(sc.hasNextInt())
{ // возвращает истинну если с потока ввода можно
// считать целое число        i = sc.nextInt(); // считывает целое число с потока
// ввода и сохраняем в переменную        System.out.println(i*2);       } else {           System.out.println("Вы ввели не целое число");         }     } }



Консольный ввод-вывод Класс Scanner:  import java.util.Scanner; // импортируем классpublic class Main { public static

Слайд 49 Консольный ввод-вывод

Класс Scanner:

import java.util.Scanner; //

импортируем класс
public class Main
{ public static void main(String[]

args)
{ Scanner sc = new Scanner(System.in); // создаём объект
// класса Scanner    
double  i = sc.nextDouble(); // если ввести букву s, то
// случится ошибка во время
// выполнения программы   System.out.println(i/3);    } }


Консольный ввод-вывод Класс Scanner:  import java.util.Scanner; // импортируем классpublic class Main { public static

Слайд 50 Консольный ввод-вывод
Для ввода данных можно использовать класс Scanner из

библиотеки пакетов Java (java.util). Этот класс надо подключить в программе,

где он будет использоваться с помощью команды import (import java.util.Scanner).
В классе есть методы для чтения очередного символа заданного типа со стандартного потока ввода, а также для проверки существования такого символа.
Для работы с потоком ввода необходимо создать объект класса Scanner, при создании указав, с каким потоком ввода он будет связан (см. пример на слайде). Стандартный поток ввода (клавиатура) в Java представлен объектом — System.in. А стандартный поток вывода (дисплей) — уже знакомым вам объектом System.out. Есть ещё стандартный поток для вывода ошибок — System.err.

Метод hasNextDouble(), применённый объекту класса Scanner, проверяет, можно ли считать с потока ввода вещественное число типа double, а метод nextDouble() — считывает его. Если попытаться считать значение без предварительной проверки, то во время исполнения программы можно получить ошибку (отладчик заранее такую ошибку не обнаружит). Например, попробуйте в представленной на слайде программе ввести не какое-то вещественное число, а букву.
 С помощью класса java.util.Scanner можно считывать различного типа данные из файлов (см. пример на следующем слайде).
Консольный ввод-выводДля ввода данных можно использовать класс Scanner из библиотеки пакетов Java (java.util). Этот класс надо

Слайд 51 Ввод данных из файла

Класс Scanner:

import

java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadFileByScanner
{ public ReadFileByScanner()

{ // Загружаем созданный текстовый файл
File file = new File("testfile.txt");
try {
// Объявляем класс Scanner, инициализируем его с
// параметром file
// Создаем цикл, который будет считывать строки,
// пока не дойдем до конца файла.

Scanner scanner = new Scanner(file);

Ввод данных из файлаКласс Scanner:  import java.io.File;import java.io.FileNotFoundException;import java.util.Scanner;public class ReadFileByScanner { public

Слайд 52 Ввод данных из файла
Класс Scanner:

while

(scanner.hasNextLine())
{ if (scanner.hasNextInt())
{ int i = scanner.nextInt();

System.out.println("Тип Integer: " + i);
} else if (scanner.hasNextDouble())
{ double d = scanner.nextDouble();
System.out.println("Тип double: " + d);
} else if (scanner.hasNextBoolean())
{ Boolean b = scanner.nextBoolean();
System.out.println("Тип boolean: " + b);
} else
{ System.out.println("String: " + scanner.next());}
}
} catch (FileNotFoundException e) { e.printStackTrace(); }
}
public static void main(String[] args)
{ new ReadFileByScanner();}
}
Ввод данных из файлаКласс Scanner:  while (scanner.hasNextLine()) { if (scanner.hasNextInt())  { int

Слайд 53 Контрольные вопросы
История создания и назначение языка программирования Java.

Категории программ, написанных на языке Java .
Выполнение Java-программы.
Платформа

Java: варианты распространения, назначение и версии JDK, назначение JRE.
Cтруктура Java - программы, примеры. Компиляция и запуск программы из командной строки.
Примитивные и ссылочные типы данных Java: понятие, примеры.
Объявление переменных в Java, примеры. Примитивные типы данных и операции: характеристика и примеры.
Преобразование типов данных в Java: правила и примеры.
Консольный ввод-вывод данных в Java: характеристика и примеры.
Характеристика и примеры использования операторов ветвления и циклов в Java.




Контрольные вопросыИстория создания и назначение языка программирования Java. Категории программ, написанных на языке Java .

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика