🗊Презентация 01. Введение. Лексика языка Java

Нажмите для полного просмотра!
01. Введение. Лексика языка Java, слайд №101. Введение. Лексика языка Java, слайд №201. Введение. Лексика языка Java, слайд №301. Введение. Лексика языка Java, слайд №401. Введение. Лексика языка Java, слайд №501. Введение. Лексика языка Java, слайд №601. Введение. Лексика языка Java, слайд №701. Введение. Лексика языка Java, слайд №801. Введение. Лексика языка Java, слайд №901. Введение. Лексика языка Java, слайд №1001. Введение. Лексика языка Java, слайд №1101. Введение. Лексика языка Java, слайд №1201. Введение. Лексика языка Java, слайд №1301. Введение. Лексика языка Java, слайд №1401. Введение. Лексика языка Java, слайд №1501. Введение. Лексика языка Java, слайд №1601. Введение. Лексика языка Java, слайд №1701. Введение. Лексика языка Java, слайд №1801. Введение. Лексика языка Java, слайд №1901. Введение. Лексика языка Java, слайд №2001. Введение. Лексика языка Java, слайд №2101. Введение. Лексика языка Java, слайд №2201. Введение. Лексика языка Java, слайд №2301. Введение. Лексика языка Java, слайд №2401. Введение. Лексика языка Java, слайд №2501. Введение. Лексика языка Java, слайд №2601. Введение. Лексика языка Java, слайд №2701. Введение. Лексика языка Java, слайд №2801. Введение. Лексика языка Java, слайд №2901. Введение. Лексика языка Java, слайд №3001. Введение. Лексика языка Java, слайд №3101. Введение. Лексика языка Java, слайд №3201. Введение. Лексика языка Java, слайд №3301. Введение. Лексика языка Java, слайд №3401. Введение. Лексика языка Java, слайд №3501. Введение. Лексика языка Java, слайд №3601. Введение. Лексика языка Java, слайд №3701. Введение. Лексика языка Java, слайд №3801. Введение. Лексика языка Java, слайд №3901. Введение. Лексика языка Java, слайд №4001. Введение. Лексика языка Java, слайд №4101. Введение. Лексика языка Java, слайд №4201. Введение. Лексика языка Java, слайд №4301. Введение. Лексика языка Java, слайд №4401. Введение. Лексика языка Java, слайд №4501. Введение. Лексика языка Java, слайд №4601. Введение. Лексика языка Java, слайд №4701. Введение. Лексика языка Java, слайд №4801. Введение. Лексика языка Java, слайд №4901. Введение. Лексика языка Java, слайд №5001. Введение. Лексика языка Java, слайд №5101. Введение. Лексика языка Java, слайд №5201. Введение. Лексика языка Java, слайд №5301. Введение. Лексика языка Java, слайд №5401. Введение. Лексика языка Java, слайд №5501. Введение. Лексика языка Java, слайд №5601. Введение. Лексика языка Java, слайд №5701. Введение. Лексика языка Java, слайд №5801. Введение. Лексика языка Java, слайд №5901. Введение. Лексика языка Java, слайд №6001. Введение. Лексика языка Java, слайд №6101. Введение. Лексика языка Java, слайд №6201. Введение. Лексика языка Java, слайд №6301. Введение. Лексика языка Java, слайд №6401. Введение. Лексика языка Java, слайд №6501. Введение. Лексика языка Java, слайд №6601. Введение. Лексика языка Java, слайд №6701. Введение. Лексика языка Java, слайд №68

Содержание

Вы можете ознакомиться и скачать презентацию на тему 01. Введение. Лексика языка Java. Доклад-сообщение содержит 68 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1





Java
Введение
Описание слайда:
Java Введение

Слайд 2





План лекции
История языка Java и его особенности
Объектно-ориентированное программирование, основные понятия
Пакеты в Java
Правила именования
Описание слайда:
План лекции История языка Java и его особенности Объектно-ориентированное программирование, основные понятия Пакеты в Java Правила именования

Слайд 3





Предыстория Java
Старт проекта Green (1991)
Патрик Нотон, Джеймс Гослинг, Майк Шеридан
Идея Гослинга об "универсальном пульте"
Модификации Гослингом языка C++
Начало работ над OaK, "технология молотка"
Первая демонстрация (08.1991)
Описание слайда:
Предыстория Java Старт проекта Green (1991) Патрик Нотон, Джеймс Гослинг, Майк Шеридан Идея Гослинга об "универсальном пульте" Модификации Гослингом языка C++ Начало работ над OaK, "технология молотка" Первая демонстрация (08.1991)

Слайд 4





Предыстория Java
Идеи, заложенные в OaK, проект Green:
Надежность и механизмы безопасности
Работа на разных типах устройств
Объектная ориентированность
Объекты, доступные по сети
Описание слайда:
Предыстория Java Идеи, заложенные в OaK, проект Green: Надежность и механизмы безопасности Работа на разных типах устройств Объектная ориентированность Объекты, доступные по сети

Слайд 5





Предыстория Java
1991
Начало работ над Oak
1993
Работы в области интерактивного TV
Появление браузера Mosaic
1994
Браузер WebRunner
1995
Официальное представление Java
Включение в Netscape Navigator 2.0
Описание слайда:
Предыстория Java 1991 Начало работ над Oak 1993 Работы в области интерактивного TV Появление браузера Mosaic 1994 Браузер WebRunner 1995 Официальное представление Java Включение в Netscape Navigator 2.0

Слайд 6





История Java
1996 – JDK 1.0 (JLS, JVM, JDK)
1997 – JDK 1.1 (JIT, JavaBeans, JDBC, RMI)
1998 – JDK 1.2 (изменения языка, policy/permission, JFC, …)
1999 – разделение развития 
Java 2 Platform, Standard Edition (J2SE, JavaSE)
Java 2 Platform, Enterprise Edition (J2EE, JavaEE)
Java 2 Platform, Micro Edition (J2ME, JavaME)
2000 – JDK 1.3 (HotSpot (JIT) в составе JVM, …)
2002 – JDK 1.4 (новое API)
2004 – JDK 1.5 (изменения языка)
2006 – JDK 1.6 (скриптовые языки, работа с базами данных…)
2011 – JDK 1.7 (изменения языка…)
Описание слайда:
История Java 1996 – JDK 1.0 (JLS, JVM, JDK) 1997 – JDK 1.1 (JIT, JavaBeans, JDBC, RMI) 1998 – JDK 1.2 (изменения языка, policy/permission, JFC, …) 1999 – разделение развития Java 2 Platform, Standard Edition (J2SE, JavaSE) Java 2 Platform, Enterprise Edition (J2EE, JavaEE) Java 2 Platform, Micro Edition (J2ME, JavaME) 2000 – JDK 1.3 (HotSpot (JIT) в составе JVM, …) 2002 – JDK 1.4 (новое API) 2004 – JDK 1.5 (изменения языка) 2006 – JDK 1.6 (скриптовые языки, работа с базами данных…) 2011 – JDK 1.7 (изменения языка…)

Слайд 7





Особенности Java
Строгая типизация
Кросс-платформенность
Объектная ориентированность
Встроенная модель безопасности
Ориентация на интернет-задачи, распределенные приложения
Динамичность, легкость развития
Легкость в освоении
Описание слайда:
Особенности Java Строгая типизация Кросс-платформенность Объектная ориентированность Встроенная модель безопасности Ориентация на интернет-задачи, распределенные приложения Динамичность, легкость развития Легкость в освоении

Слайд 8





Java платформа
Множество различных аппаратных систем
Intel x86, Sun SPARC, PowerPC и др.
Множество разных программных систем
MS Windows, Sun Solaris, Linux, Mac OS и др.
Потребность в одинаковом функционале на различных платформах
Java Virtual Maсhine (JVM), универсальность
Исходный код открыт с 1999 г.
Описание слайда:
Java платформа Множество различных аппаратных систем Intel x86, Sun SPARC, PowerPC и др. Множество разных программных систем MS Windows, Sun Solaris, Linux, Mac OS и др. Потребность в одинаковом функционале на различных платформах Java Virtual Maсhine (JVM), универсальность Исходный код открыт с 1999 г.

Слайд 9





Именование установочных файлов
Старый вариант
jdk-1_5_0_08-windows-i586-p.exe 
1 – глобальная версия языка
5 – номер версии языка
0 – номер подверсии
08 – номер модификации
windows-i586 – платформа
Новый вариант
jdk-6u14-windows-i586.exe
6 – номер версии языка
14 – номер модификации
windows-i586 – платформа
Описание слайда:
Именование установочных файлов Старый вариант jdk-1_5_0_08-windows-i586-p.exe 1 – глобальная версия языка 5 – номер версии языка 0 – номер подверсии 08 – номер модификации windows-i586 – платформа Новый вариант jdk-6u14-windows-i586.exe 6 – номер версии языка 14 – номер модификации windows-i586 – платформа

Слайд 10





Разработка и запуск
Описание слайда:
Разработка и запуск

Слайд 11





Этапы программного решения задачи
Создание модели, определение данных для предстоящей обработки
Разработка алгоритма: определение операций над данными и последовательности шагов по преобразованию текущего состояния модели в следующее
Формулировка модели и алгоритма на языке программирования
Описание слайда:
Этапы программного решения задачи Создание модели, определение данных для предстоящей обработки Разработка алгоритма: определение операций над данными и последовательности шагов по преобразованию текущего состояния модели в следующее Формулировка модели и алгоритма на языке программирования

Слайд 12





Развитие подходов
Инструкции
Сплошные
С операторами
Процедуры
Модули
Описание слайда:
Развитие подходов Инструкции Сплошные С операторами Процедуры Модули

Слайд 13





Объекты и классы
Объект
Состояние
Поведение
Уникальность
Описание слайда:
Объекты и классы Объект Состояние Поведение Уникальность

Слайд 14





Основные принципы
Инкапсуляция
	объединение данных и методов их обработки в одну сущность, приводящее к сокрытию реализации класса и отделению его внутреннего представления от внешнего
Наследование
	отношение между классами, при котором один класс использует структуру или поведение другого (одиночное наследование) или других (множественное наследование) классов
Полиморфизм
	способность объекта соответствовать во время выполнения двум или более возможным типам
Описание слайда:
Основные принципы Инкапсуляция объединение данных и методов их обработки в одну сущность, приводящее к сокрытию реализации класса и отделению его внутреннего представления от внешнего Наследование отношение между классами, при котором один класс использует структуру или поведение другого (одиночное наследование) или других (множественное наследование) классов Полиморфизм способность объекта соответствовать во время выполнения двум или более возможным типам

Слайд 15





Отношения между классами
Наследование
Объекты дочернего класса наследуют свойства родительского класса

Ассоциация
Объекты классов вступают во взаимодействие между собой 

Агрегация
Объекты разных классов образуют целое, оставаясь самостоятельными

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

Класс-метакласс
Экземплярами класса являются классы
Описание слайда:
Отношения между классами Наследование Объекты дочернего класса наследуют свойства родительского класса Ассоциация Объекты классов вступают во взаимодействие между собой Агрегация Объекты разных классов образуют целое, оставаясь самостоятельными Композиция Объекты одного класса входят в объекты другого, не обладая самостоятельностью Класс-метакласс Экземплярами класса являются классы

Слайд 16





Достоинства ООП
Упрощение разработки
Разделение функциональности, локализация кода, инкапсуляция
Возможность создания расширяемых систем
Обработка разнородных структур данных, изменение поведения на этапе выполнения, работа с наследниками
Легкость модернизации с сохранением совместимости
Описание слайда:
Достоинства ООП Упрощение разработки Разделение функциональности, локализация кода, инкапсуляция Возможность создания расширяемых систем Обработка разнородных структур данных, изменение поведения на этапе выполнения, работа с наследниками Легкость модернизации с сохранением совместимости

Слайд 17





Недостатки ООП
Неэффективность на этапе выполнения
Неэффективность в смысле распределения памяти
Излишняя избыточность
Психологическая сложность проектирования
Техническая сложность проектирования и документирования
Описание слайда:
Недостатки ООП Неэффективность на этапе выполнения Неэффективность в смысле распределения памяти Излишняя избыточность Психологическая сложность проектирования Техническая сложность проектирования и документирования

Слайд 18





Объектный язык Java
Все сущности в Java являются объектами, классами либо интерфейсами
Строгая реализация инкапсуляции
Реализовано одиночное наследование от класса и множественное от интерфейсов
Описание слайда:
Объектный язык Java Все сущности в Java являются объектами, классами либо интерфейсами Строгая реализация инкапсуляции Реализовано одиночное наследование от класса и множественное от интерфейсов

Слайд 19





Понятие о пакетах
Способ логической группировки классов
Комплект ПО, могущий распространяться независимо и применяться в сочетании с другими пакетами
Членами пакетов являются:
классы,
интерфейсы,
вложенные пакеты,
дополнительные файлы ресурсов
Описание слайда:
Понятие о пакетах Способ логической группировки классов Комплект ПО, могущий распространяться независимо и применяться в сочетании с другими пакетами Членами пакетов являются: классы, интерфейсы, вложенные пакеты, дополнительные файлы ресурсов

Слайд 20





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

Слайд 21





Способы реализации
и доступ к пакетам
Пакеты могут быть реализованы: 
в виде структуры каталогов с файлами классов,
в виде jar-архива.
Путь к используемым пакетам указывается: 
непосредственно при запуске JVM,
через переменную окружения CLASSPATH
(по умолчанию CLASSPATH="").
Описание слайда:
Способы реализации и доступ к пакетам Пакеты могут быть реализованы: в виде структуры каталогов с файлами классов, в виде jar-архива. Путь к используемым пакетам указывается: непосредственно при запуске JVM, через переменную окружения CLASSPATH (по умолчанию CLASSPATH="").

Слайд 22





Понятие имени
Имена задаются посредством идентификаторов, указывают на компоненты программы
Пространства имен
пакеты
типы
поля
методы
локальные переменные и параметры
метки
Имена бывают
составные (java.lang.Double)
и простые (Double)
Описание слайда:
Понятие имени Имена задаются посредством идентификаторов, указывают на компоненты программы Пространства имен пакеты типы поля методы локальные переменные и параметры метки Имена бывают составные (java.lang.Double) и простые (Double)

Слайд 23





Душераздирающий, 
но корректный код
Пример зависимости имени от контекста
Описание слайда:
Душераздирающий, но корректный код Пример зависимости имени от контекста

Слайд 24





Понятие модуля компиляции
Модуль компиляции хранится в .java файле и является единичной порцией входных данных для компилятора. 
Состоит из:
объявления пакета
package mypackage;
выражений импортирования
import java.net.Socket;
import java.io.*;
объявлений верхнего уровня – классов и интерфейсов
Описание слайда:
Понятие модуля компиляции Модуль компиляции хранится в .java файле и является единичной порцией входных данных для компилятора. Состоит из: объявления пакета package mypackage; выражений импортирования import java.net.Socket; import java.io.*; объявлений верхнего уровня – классов и интерфейсов

Слайд 25





Объявление пакета
Первое выражение в модуле компиляции (например, для файла java/lang/Object.java)
package java.lang;
При отсутствии объявления пакета модуль компиляции принадлежит безымянному пакету (не имеет вложенных пакетов)
Пакет доступен, если доступен модуль компиляции с объявлением пакета
Ограничение на доступ к пакетам нет
Описание слайда:
Объявление пакета Первое выражение в модуле компиляции (например, для файла java/lang/Object.java) package java.lang; При отсутствии объявления пакета модуль компиляции принадлежит безымянному пакету (не имеет вложенных пакетов) Пакет доступен, если доступен модуль компиляции с объявлением пакета Ограничение на доступ к пакетам нет

Слайд 26





Выражения импорта
Доступ к типу из данного пакета – по простому имени типа
Доступ к типу из других пакетов – по составному имени пакета и имени типа
сложности при многократном использовании
import-выражения упрощают доступ
импорт одного типа (import java.net.URL;)
импорт пакета с типами (import java.net.*;)
Описание слайда:
Выражения импорта Доступ к типу из данного пакета – по простому имени типа Доступ к типу из других пакетов – по составному имени пакета и имени типа сложности при многократном использовании import-выражения упрощают доступ импорт одного типа (import java.net.URL;) импорт пакета с типами (import java.net.*;)

Слайд 27





Выражения импорта
Попытка импорта пакета, недоступного на момент компиляции, вызовет ошибку
Дублирование импорта игнорируется
Нельзя импортировать вложенный пакет
import java.net; //ошибка компиляции
При импорте типов пакета вложенные пакеты не импортируются!
Описание слайда:
Выражения импорта Попытка импорта пакета, недоступного на момент компиляции, вызовет ошибку Дублирование импорта игнорируется Нельзя импортировать вложенный пакет import java.net; //ошибка компиляции При импорте типов пакета вложенные пакеты не импортируются!

Слайд 28





Выражения импорта
Алгоритм компилятора при анализе типов:
выражения, импортирующие типы
другие объявленные типы
выражения, импортирующие пакеты
Если тип импортирован явно невозможны:
объявление нового типа с таким же именем
доступ по простому имени к одноименному типу в текущем пакете
Описание слайда:
Выражения импорта Алгоритм компилятора при анализе типов: выражения, импортирующие типы другие объявленные типы выражения, импортирующие пакеты Если тип импортирован явно невозможны: объявление нового типа с таким же именем доступ по простому имени к одноименному типу в текущем пакете

Слайд 29





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

Слайд 30





Объявление верхнего уровня
Область видимости типа – пакет
Доступ к типу извне его пакета
по составному имени
через выражения импорта
Разграничение (модификаторы) доступа
Описание слайда:
Объявление верхнего уровня Область видимости типа – пакет Доступ к типу извне его пакета по составному имени через выражения импорта Разграничение (модификаторы) доступа

Слайд 31





Объявление верхнего уровня
В модуле компиляции может быть максимум один public тип
Имя публичного типа и имя модуля компиляции должны совпадать
Другие не-public типы модуля должны использоваться только внутри текущего пакета
Как правило, один модуль компиляции содержит один тип
Описание слайда:
Объявление верхнего уровня В модуле компиляции может быть максимум один public тип Имя публичного типа и имя модуля компиляции должны совпадать Другие не-public типы модуля должны использоваться только внутри текущего пакета Как правило, один модуль компиляции содержит один тип

Слайд 32





Правила именования
Пакеты
java.lang, javax.swing, ru.ssau.infokom
Типы
Student, ArrayIndexOutOfBoundException
Cloneable, Runnable, Serializable
Поля
value, enabled, distanceFromShop
Методы
getValue, setValue, isEnabled, length, toString
Поля-константы
PI, SIZE_MIN, SIZE_MAX, SIZE_DEF
Локальные переменные
Описание слайда:
Правила именования Пакеты java.lang, javax.swing, ru.ssau.infokom Типы Student, ArrayIndexOutOfBoundException Cloneable, Runnable, Serializable Поля value, enabled, distanceFromShop Методы getValue, setValue, isEnabled, length, toString Поля-константы PI, SIZE_MIN, SIZE_MAX, SIZE_DEF Локальные переменные

Слайд 33





Лексика языка Java
Описание слайда:
Лексика языка Java

Слайд 34





План лекции
Структура исходного кода и его элементы
Типы данных
Описание классов
Общая структура
Поля
Методы
Конструкторы
Блоки инициализации
Точка входа программы
Описание слайда:
План лекции Структура исходного кода и его элементы Типы данных Описание классов Общая структура Поля Методы Конструкторы Блоки инициализации Точка входа программы

Слайд 35





Кодировка
Java ориентирован на Unicode
Первые 128 символов почти идентичны набору ASCII
Символы Unicode задаются с помощью escape-последовательностей
 \u262f, \uu2042, \uuu203d

Java чувствителен к регистру!
Описание слайда:
Кодировка Java ориентирован на Unicode Первые 128 символов почти идентичны набору ASCII Символы Unicode задаются с помощью escape-последовательностей \u262f, \uu2042, \uuu203d Java чувствителен к регистру!

Слайд 36





Исходный код
Исходный код разделяется на:
Пробелы
ASCII-символ SP, \u0020, дес. код 32
ASCII-символ HT, \u0009, дес. код 9
ASCII-символ FF, \u000c, дес. код 12
ASCII-символ LF, символ новой строки
ASCII-символ CR, возврат каретки
символ CR, за которым сразу следует символ LF
Комментарии
Лексемы
Описание слайда:
Исходный код Исходный код разделяется на: Пробелы ASCII-символ SP, \u0020, дес. код 32 ASCII-символ HT, \u0009, дес. код 9 ASCII-символ FF, \u000c, дес. код 12 ASCII-символ LF, символ новой строки ASCII-символ CR, возврат каретки символ CR, за которым сразу следует символ LF Комментарии Лексемы

Слайд 37





Комментарии
// Комментарий
Символы после // и до конца текущей строки игнорируются
/* Комментарий */
Все символы, заключенные между /* и */, игнорируются
/** Комментарий */
Комментарии документирования
Описание слайда:
Комментарии // Комментарий Символы после // и до конца текущей строки игнорируются /* Комментарий */ Все символы, заключенные между /* и */, игнорируются /** Комментарий */ Комментарии документирования

Слайд 38





Комментарии документирования (javadoc)
Начинаются с /**, заканчиваются */
В строках начальные символы * и пробелы перед ними игнорируются
Допускают использование HTML-тэгов, кроме заголовков
Специальные тэги
@see, @param, @deprecated
Описание слайда:
Комментарии документирования (javadoc) Начинаются с /**, заканчиваются */ В строках начальные символы * и пробелы перед ними игнорируются Допускают использование HTML-тэгов, кроме заголовков Специальные тэги @see, @param, @deprecated

Слайд 39





Лексемы
Идентификаторы
Служебные слова
class, public, const, goto
Литералы
Разделители
{ } [ ] ( ) ; . ,
Операторы
= > < ! ? : == && ||
Описание слайда:
Лексемы Идентификаторы Служебные слова class, public, const, goto Литералы Разделители { } [ ] ( ) ; . , Операторы = > < ! ? : == && ||

Слайд 40





Идентификаторы
Имена, задаваемые элементам языка для упрощения доступа к ним
Можно записывать символами Unicode
Состоят из букв и цифр, знаков _ и $
Не допускают совпадения со служебными словами, литералами true, false, null
Длина имени не ограничена
Описание слайда:
Идентификаторы Имена, задаваемые элементам языка для упрощения доступа к ним Можно записывать символами Unicode Состоят из букв и цифр, знаков _ и $ Не допускают совпадения со служебными словами, литералами true, false, null Длина имени не ограничена

Слайд 41





Служебные (ключевые) слова
abstract	double		int		strictfp
boolean	else		interface	super
break		extends	long		switch
byte		final		native		synchronized
case		finally		new		this
сatch		float		package	throw
char		for		private		throws
class		goto		protected	transient
const		if		public		try
continue	implements	return		void
default		import		short		volatile
do		instanceof	static		while
Описание слайда:
Служебные (ключевые) слова abstract double int strictfp boolean else interface super break extends long switch byte final native synchronized case finally new this сatch float package throw char for private throws class goto protected transient const if public try continue implements return void default import short volatile do instanceof static while

Слайд 42





Типы данных
Ссылочные
Предназначены для работы с объектами
Переменные содержат ссылки на объекты
Ссылка – это не указатель!
Тип переменной определяет контракт доступа к объекту
Примитивные (простые)
Предназначены для работы со значениями естественных, простых типов
Переменные содержат непосредственно значения
Описание слайда:
Типы данных Ссылочные Предназначены для работы с объектами Переменные содержат ссылки на объекты Ссылка – это не указатель! Тип переменной определяет контракт доступа к объекту Примитивные (простые) Предназначены для работы со значениями естественных, простых типов Переменные содержат непосредственно значения

Слайд 43





Ссылочные типы
К ссылочным типам относятся типы классов (в т.ч. массивов) и интерфейсов
Переменная ссылочного типа способна содержать ссылку на объект, относящийся к этому типу
Ссылочный литерал
null
Описание слайда:
Ссылочные типы К ссылочным типам относятся типы классов (в т.ч. массивов) и интерфейсов Переменная ссылочного типа способна содержать ссылку на объект, относящийся к этому типу Ссылочный литерал null

Слайд 44





Примитивные типы
Булевский (логический) тип
boolean – допускает хранение значений true или false
Целочисленные типы
char – 16-битовый символ Unicode
byte – 8-битовое целое число со знаком
short – 16-битовое целое число со знаком
int – 32-битовое целое число со знаком
long – 64-битовое целое число со знаком
Вещественные типы
float – 32-битовое число с плавающей точкой (IEEE 754-1985)
double – 64-битовое число с плавающей точкой (IEEE 754-1985)
Описание слайда:
Примитивные типы Булевский (логический) тип boolean – допускает хранение значений true или false Целочисленные типы char – 16-битовый символ Unicode byte – 8-битовое целое число со знаком short – 16-битовое целое число со знаком int – 32-битовое целое число со знаком long – 64-битовое целое число со знаком Вещественные типы float – 32-битовое число с плавающей точкой (IEEE 754-1985) double – 64-битовое число с плавающей точкой (IEEE 754-1985)

Слайд 45





Литералы
Булевы
true false
Символьные
'a' '\n' '\\' '\377' '\u0064'
Целочисленные
29  035  0x1D  0X1d 0xffffL
По умолчанию имеют тип int
Числовые с плавающей запятой
1.  .1  1e1 1e-4D 1e+5f
По умолчанию имеют тип double
Строковые
 "Это строковый литерал"   ""
Описание слайда:
Литералы Булевы true false Символьные 'a' '\n' '\\' '\377' '\u0064' Целочисленные 29 035 0x1D 0X1d 0xffffL По умолчанию имеют тип int Числовые с плавающей запятой 1. .1 1e1 1e-4D 1e+5f По умолчанию имеют тип double Строковые "Это строковый литерал" ""

Слайд 46





Описание класса
Класс может содержать:
поля,
методы,
вложенные классы и интерфейсы.
Описание слайда:
Описание класса Класс может содержать: поля, методы, вложенные классы и интерфейсы.

Слайд 47





Модификаторы объявления класса
public
Признак общедоступности класса
abstract
Признак абстрактности класса
final
Завершенность класса (класс не допускает наследования)
strictfp
Повышенные требования к операциям с плавающей точкой
Описание слайда:
Модификаторы объявления класса public Признак общедоступности класса abstract Признак абстрактности класса final Завершенность класса (класс не допускает наследования) strictfp Повышенные требования к операциям с плавающей точкой

Слайд 48





Поля класса
Объявление поля:
	[модификаторы] <тип> {<имя> [= 			<инициализирующее выражение>]};
	double sum = 2.5 + 3.7;
	public double val = sum + 2 * Math.sqrt(2);
Если поле явно не инициализируются, ему присваивается значение по умолчанию его типа (0, false или null)
Описание слайда:
Поля класса Объявление поля: [модификаторы] <тип> {<имя> [= <инициализирующее выражение>]}; double sum = 2.5 + 3.7; public double val = sum + 2 * Math.sqrt(2); Если поле явно не инициализируются, ему присваивается значение по умолчанию его типа (0, false или null)

Слайд 49





Поля класса
Модификаторы полей: 
модификаторы доступа
static 
поле статично (принадлежит контексту класса)
final
поле не может изменять свое значение после инициализации
transient
поле не сериализуется (влияет только на механизмы сериализации)
volatile
усиливает требования к работе с полем в многопоточных программах
Описание слайда:
Поля класса Модификаторы полей: модификаторы доступа static поле статично (принадлежит контексту класса) final поле не может изменять свое значение после инициализации transient поле не сериализуется (влияет только на механизмы сериализации) volatile усиливает требования к работе с полем в многопоточных программах

Слайд 50





Методы
Объявление метода:
	[модификаторы] <тип> <сигнатура> [throws исключения] {<тело>}
Описание слайда:
Методы Объявление метода: [модификаторы] <тип> <сигнатура> [throws исключения] {<тело>}

Слайд 51





Модификаторы методов
Модификаторы доступа
abstract
абстрактность метода (тело при этом не описывается)
static
статичность метода (метод принадлежит контексту класса)
final
завершенность метода (метод не может быть переопределен при наследовании)
Описание слайда:
Модификаторы методов Модификаторы доступа abstract абстрактность метода (тело при этом не описывается) static статичность метода (метод принадлежит контексту класса) final завершенность метода (метод не может быть переопределен при наследовании)

Слайд 52





Модификаторы методов
synchronized
синхронизированность метода (особенности вызова метода в многопоточных приложениях)
native
«нативность» метода (тело метода не описывается, при вызове вызывается метод из native-библиотеки)
strictfp
повышенные требования к операциям с плавающей точкой
Описание слайда:
Модификаторы методов synchronized синхронизированность метода (особенности вызова метода в многопоточных приложениях) native «нативность» метода (тело метода не описывается, при вызове вызывается метод из native-библиотеки) strictfp повышенные требования к операциям с плавающей точкой

Слайд 53





Особенности методов
Для нестатических методов вызов через ссылку на объект или в контексте объекта
reference.method();
methodReturningReference().method();
Для статических методов вызов через имя типа, через ссылку на объект или в контексте класса
ClassName.staticMethod();
reference.staticMethod();
staticMethodReturningReference().method();
Наличие круглых скобок при вызове обязательно, т.к. они являются оператором вызова метода
Описание слайда:
Особенности методов Для нестатических методов вызов через ссылку на объект или в контексте объекта reference.method(); methodReturningReference().method(); Для статических методов вызов через имя типа, через ссылку на объект или в контексте класса ClassName.staticMethod(); reference.staticMethod(); staticMethodReturningReference().method(); Наличие круглых скобок при вызове обязательно, т.к. они являются оператором вызова метода

Слайд 54





Особенности методов
На время выполнения метода управление передается в тело метода
Возвращается одно значение простого или объектного типа
return someValue;
Аргументы передаются по значению, т.е. значения параметров копируются в стек:
для примитивных типов копируются сами значения
для ссылочных типов копируется значение ссылки 
Перегруженными являются методы с одинаковыми именами и различными сигнатурами
Описание слайда:
Особенности методов На время выполнения метода управление передается в тело метода Возвращается одно значение простого или объектного типа return someValue; Аргументы передаются по значению, т.е. значения параметров копируются в стек: для примитивных типов копируются сами значения для ссылочных типов копируется значение ссылки Перегруженными являются методы с одинаковыми именами и различными сигнатурами

Слайд 55





Создание объектов
Создание ссылки и создание объекта – различные операции
Используется оператор new, он возвращает ссылку на объект 
После оператора указывается имя конструктора и его параметры
Описание слайда:
Создание объектов Создание ссылки и создание объекта – различные операции Используется оператор new, он возвращает ссылку на объект После оператора указывается имя конструктора и его параметры

Слайд 56





Конструкторы
Память для объекта выделяет оператор new
Конструкторы предназначены для формирования начального состояния объекта
Правила написания конструктора сходны с правилами написания методов
Имя конструктора совпадает с именем класса
Описание слайда:
Конструкторы Память для объекта выделяет оператор new Конструкторы предназначены для формирования начального состояния объекта Правила написания конструктора сходны с правилами написания методов Имя конструктора совпадает с именем класса

Слайд 57





Конструкторы
Для конструкторов разрешено использование только модификаторов доступа
При написании конструктор не имеет возвращаемого типа
Оператор возврата return прекращает выполнение текущего конструктора
Конструкторы могут быть перегружены
Конструкторы могут вызывать друг друга с помощью ключевого слова this в первой строке конструктора
Описание слайда:
Конструкторы Для конструкторов разрешено использование только модификаторов доступа При написании конструктор не имеет возвращаемого типа Оператор возврата return прекращает выполнение текущего конструктора Конструкторы могут быть перегружены Конструкторы могут вызывать друг друга с помощью ключевого слова this в первой строке конструктора

Слайд 58





Конструкторы
Если в классе явно не описан ни один конструктор, автоматически создается т.н. конструктор по умолчанию, не имеющий параметров
Если в классе описан хотя бы один конструктор, то автоматически конструктор по умолчанию не создается
Также конструктором по умолчанию называют конструктор, не имеющий параметров
Описание слайда:
Конструкторы Если в классе явно не описан ни один конструктор, автоматически создается т.н. конструктор по умолчанию, не имеющий параметров Если в классе описан хотя бы один конструктор, то автоматически конструктор по умолчанию не создается Также конструктором по умолчанию называют конструктор, не имеющий параметров

Слайд 59





Конструкторы
Описание слайда:
Конструкторы

Слайд 60





Деструкторы?
В ряде языков деструкторы выполняют действия, обратные действию конструкторов: освобождают память, занимаемую объектом, и «деинициализируют» объект (освобождают ресурсы, очищают связи, изменяют состояние связанных объектов)
Если после вызова деструктора где-то осталась ссылка (указатель) на объект, ее использование приведет к возникновению ошибки
В Java деструкторов нет, вместо них применяется механизм автоматической сборки мусора
Описание слайда:
Деструкторы? В ряде языков деструкторы выполняют действия, обратные действию конструкторов: освобождают память, занимаемую объектом, и «деинициализируют» объект (освобождают ресурсы, очищают связи, изменяют состояние связанных объектов) Если после вызова деструктора где-то осталась ссылка (указатель) на объект, ее использование приведет к возникновению ошибки В Java деструкторов нет, вместо них применяется механизм автоматической сборки мусора

Слайд 61





Автоматическая сборка мусора
В случае нехватки памяти для создания очередного объекта виртуальная машина находит недостижимые объекты и удаляет их 
Процесс сборки мусора можно инициировать принудительно
Для явного удаления объекта следует утратить все ссылки на этот объект и инициировать сбор мусора
Взаимодействие со сборщиком осуществляется через системные классы java.lang.System и java.lang.Runtime
Описание слайда:
Автоматическая сборка мусора В случае нехватки памяти для создания очередного объекта виртуальная машина находит недостижимые объекты и удаляет их Процесс сборки мусора можно инициировать принудительно Для явного удаления объекта следует утратить все ссылки на этот объект и инициировать сбор мусора Взаимодействие со сборщиком осуществляется через системные классы java.lang.System и java.lang.Runtime

Слайд 62





Блоки инициализации
Если некоторые действия по инициализации должны выполняться в любом варианте создания объекта, удобнее использовать блоки инициализации
Тело блока инициализации заключается в фигурные скобки и располагается на одном уровне с полями и методами
При создании объекта сначала выполняются инициализирующие выражения полей и блоки инициализации (в порядке их описания в теле класса), а потом тело конструктора
Описание слайда:
Блоки инициализации Если некоторые действия по инициализации должны выполняться в любом варианте создания объекта, удобнее использовать блоки инициализации Тело блока инициализации заключается в фигурные скобки и располагается на одном уровне с полями и методами При создании объекта сначала выполняются инициализирующие выражения полей и блоки инициализации (в порядке их описания в теле класса), а потом тело конструктора

Слайд 63





Блоки инициализации
Описание слайда:
Блоки инициализации

Слайд 64





Статическая инициализация
Статический блок инициализации выполняет инициализацию контекста класса
Вызов статического блока инициализации происходит в процессе загрузки класса в виртуальную машину
Описание слайда:
Статическая инициализация Статический блок инициализации выполняет инициализацию контекста класса Вызов статического блока инициализации происходит в процессе загрузки класса в виртуальную машину

Слайд 65





Модификаторы доступа
private
	Доступ только в контексте класса
          (package, default, none)
	Доступ для самого класса и классов в том же пакете

protected
	Доступ в пределах самого класса, классов-наследников
	и классов пакета

public
	Доступ есть всегда, когда доступен сам класс
Описание слайда:
Модификаторы доступа private Доступ только в контексте класса (package, default, none) Доступ для самого класса и классов в том же пакете protected Доступ в пределах самого класса, классов-наследников и классов пакета public Доступ есть всегда, когда доступен сам класс

Слайд 66





Точка входа программы
Метод
Статический
Доступный
Описание слайда:
Точка входа программы Метод Статический Доступный

Слайд 67





Спасибо за внимание!
Описание слайда:
Спасибо за внимание!

Слайд 68





Дополнительные источники
Арнолд, К. Язык программирования Java [Текст] / Кен Арнолд, Джеймс Гослинг, Дэвид Холмс. – М. : Издательский дом «Вильямс», 2001. – 624 с.
Вязовик, Н.А. Программирование на Java. Курс лекций [Текст] / Н.А. Вязовик. – М. : Интернет-университет информационных технологий, 2003. – 592 с.
Хорстманн, К. Java 2. Библиотека профессионала. Том 1. Основы [Текст] / Кей Хорстманн, Гари Корнелл. – М. : Издательский дом «Вильямс», 2010 г. – 816 с.
Эккель, Б. Философия Java [Текст] / Брюс Эккель. – СПб. : Питер, 2011. – 640 с.
JavaSE at a Glance [Электронный ресурс]. – Режим доступа: http://www.oracle.com/technetwork/java/javase/overview/index.html, дата доступа: 21.10.2011.
JavaSE APIs & Documentation [Электронный ресурс]. – Режим доступа: http://www.oracle.com/technetwork/java/javase/documentation/api-jsp-136079.html, дата доступа: 21.10.2011.
Описание слайда:
Дополнительные источники Арнолд, К. Язык программирования Java [Текст] / Кен Арнолд, Джеймс Гослинг, Дэвид Холмс. – М. : Издательский дом «Вильямс», 2001. – 624 с. Вязовик, Н.А. Программирование на Java. Курс лекций [Текст] / Н.А. Вязовик. – М. : Интернет-университет информационных технологий, 2003. – 592 с. Хорстманн, К. Java 2. Библиотека профессионала. Том 1. Основы [Текст] / Кей Хорстманн, Гари Корнелл. – М. : Издательский дом «Вильямс», 2010 г. – 816 с. Эккель, Б. Философия Java [Текст] / Брюс Эккель. – СПб. : Питер, 2011. – 640 с. JavaSE at a Glance [Электронный ресурс]. – Режим доступа: http://www.oracle.com/technetwork/java/javase/overview/index.html, дата доступа: 21.10.2011. JavaSE APIs & Documentation [Электронный ресурс]. – Режим доступа: http://www.oracle.com/technetwork/java/javase/documentation/api-jsp-136079.html, дата доступа: 21.10.2011.



Похожие презентации
Mypresentation.ru
Загрузить презентацию