Содержание
- 2. План лекции История языка Java и его особенности Объектно-ориентированное программирование, основные понятия Пакеты в Java Правила
- 3. Предыстория Java Старт проекта Green (1991) Патрик Нотон, Джеймс Гослинг, Майк Шеридан Идея Гослинга об "универсальном
- 4. Предыстория Java Идеи, заложенные в OaK, проект Green: Надежность и механизмы безопасности Работа на разных типах
- 5. Предыстория Java 1991 Начало работ над Oak 1993 Работы в области интерактивного TV Появление браузера Mosaic
- 6. История Java 1996 – JDK 1.0 (JLS, JVM, JDK) 1997 – JDK 1.1 (JIT, JavaBeans, JDBC,
- 7. Особенности Java Строгая типизация Кросс-платформенность Объектная ориентированность Встроенная модель безопасности Ориентация на интернет-задачи, распределенные приложения Динамичность,
- 8. Java платформа Множество различных аппаратных систем Intel x86, Sun SPARC, PowerPC и др. Множество разных программных
- 9. Именование установочных файлов Старый вариант jdk-1_5_0_08-windows-i586-p.exe 1 – глобальная версия языка 5 – номер версии языка
- 10. Разработка и запуск “Компилятор” JVM Исходный код .java Исполняемый бинарный код Байт-код .class
- 11. Этапы программного решения задачи Создание модели, определение данных для предстоящей обработки Разработка алгоритма: определение операций над
- 12. Развитие подходов Инструкции Сплошные С операторами Процедуры Модули Данные Ячейка памяти Переменные Массивы Объединения ООП Объединение
- 13. Объекты и классы Объект Состояние Поведение Уникальность Класс Объекты имеют одинаковый набор свойств Объекты имеют общее
- 14. Основные принципы Инкапсуляция объединение данных и методов их обработки в одну сущность, приводящее к сокрытию реализации
- 15. Отношения между классами Наследование Объекты дочернего класса наследуют свойства родительского класса Ассоциация Объекты классов вступают во
- 16. Достоинства ООП Упрощение разработки Разделение функциональности, локализация кода, инкапсуляция Возможность создания расширяемых систем Обработка разнородных структур
- 17. Недостатки ООП Неэффективность на этапе выполнения Неэффективность в смысле распределения памяти Излишняя избыточность Психологическая сложность проектирования
- 18. Объектный язык Java Все сущности в Java являются объектами, классами либо интерфейсами Строгая реализация инкапсуляции Реализовано
- 19. Понятие о пакетах Способ логической группировки классов Комплект ПО, могущий распространяться независимо и применяться в сочетании
- 20. Функциональность пакетов Позволяют группировать взаимосвязанные классы и интерфейсы в единое целое Способствуют созданию пространств имен, позволяющих
- 21. Способы реализации и доступ к пакетам Пакеты могут быть реализованы: в виде структуры каталогов с файлами
- 22. Понятие имени Имена задаются посредством идентификаторов, указывают на компоненты программы Пространства имен пакеты типы поля методы
- 23. Душераздирающий, но корректный код Пример зависимости имени от контекста package Reuse; class Reuse { Reuse Reuse
- 24. Понятие модуля компиляции Модуль компиляции хранится в .java файле и является единичной порцией входных данных для
- 25. Объявление пакета Первое выражение в модуле компиляции (например, для файла java/lang/Object.java) package java.lang; При отсутствии объявления
- 26. Выражения импорта Доступ к типу из данного пакета – по простому имени типа Доступ к типу
- 27. Выражения импорта Попытка импорта пакета, недоступного на момент компиляции, вызовет ошибку Дублирование импорта игнорируется Нельзя импортировать
- 28. Выражения импорта Алгоритм компилятора при анализе типов: выражения, импортирующие типы другие объявленные типы выражения, импортирующие пакеты
- 29. Выражения импорта Импорт пакета не мешает объявлять новые типы или обращаться к имеющимся типам текущего пакета
- 30. Объявление верхнего уровня Область видимости типа – пакет Доступ к типу извне его пакета по составному
- 31. Объявление верхнего уровня В модуле компиляции может быть максимум один public тип Имя публичного типа и
- 32. Правила именования Пакеты java.lang, javax.swing, ru.ssau.infokom Типы Student, ArrayIndexOutOfBoundException Cloneable, Runnable, Serializable Поля value, enabled, distanceFromShop
- 33. Лексика языка Java © Составление, Гаврилов А.В., 2012 Лекция 1.2 УНЦ «Инфоком» Самара 2012
- 34. План лекции Структура исходного кода и его элементы Типы данных Описание классов Общая структура Поля Методы
- 35. Кодировка Java ориентирован на Unicode Первые 128 символов почти идентичны набору ASCII Символы Unicode задаются с
- 36. Исходный код Исходный код разделяется на: Пробелы ASCII-символ SP, \u0020, дес. код 32 ASCII-символ HT, \u0009,
- 37. Комментарии // Комментарий Символы после // и до конца текущей строки игнорируются /* Комментарий */ Все
- 38. Комментарии документирования (javadoc) Начинаются с /**, заканчиваются */ В строках начальные символы * и пробелы перед
- 39. Лексемы Идентификаторы Служебные слова class, public, const, goto Литералы Разделители { } [ ] ( )
- 40. Идентификаторы Имена, задаваемые элементам языка для упрощения доступа к ним Можно записывать символами Unicode Состоят из
- 41. Служебные (ключевые) слова abstract double int strictfp boolean else interface super break extends long switch byte
- 42. Типы данных Ссылочные Предназначены для работы с объектами Переменные содержат ссылки на объекты Ссылка – это
- 43. Ссылочные типы К ссылочным типам относятся типы классов (в т.ч. массивов) и интерфейсов Переменная ссылочного типа
- 44. Примитивные типы Булевский (логический) тип boolean – допускает хранение значений true или false Целочисленные типы char
- 45. Литералы Булевы true false Символьные 'a' '\n' '\\' '\377' '\u0064' Целочисленные 29 035 0x1D 0X1d 0xffffL
- 46. Описание класса Класс может содержать: поля, методы, вложенные классы и интерфейсы. class Body { public long
- 47. Модификаторы объявления класса public Признак общедоступности класса abstract Признак абстрактности класса final Завершенность класса (класс не
- 48. Поля класса Объявление поля: [модификаторы] { [= ]}; double sum = 2.5 + 3.7; public double
- 49. Поля класса Модификаторы полей: модификаторы доступа static поле статично (принадлежит контексту класса) final поле не может
- 50. Методы Объявление метода: [модификаторы] [throws исключения] { } class Primes { static int nextPrime(int current) {
- 51. Модификаторы методов Модификаторы доступа abstract абстрактность метода (тело при этом не описывается) static статичность метода (метод
- 52. Модификаторы методов synchronized синхронизированность метода (особенности вызова метода в многопоточных приложениях) native «нативность» метода (тело метода
- 53. Особенности методов Для нестатических методов вызов через ссылку на объект или в контексте объекта reference.method(); methodReturningReference().method();
- 54. Особенности методов На время выполнения метода управление передается в тело метода Возвращается одно значение простого или
- 55. Создание ссылки и создание объекта – различные операции Используется оператор new, он возвращает ссылку на объект
- 56. Конструкторы Память для объекта выделяет оператор new Конструкторы предназначены для формирования начального состояния объекта Правила написания
- 57. Конструкторы Для конструкторов разрешено использование только модификаторов доступа При написании конструктор не имеет возвращаемого типа Оператор
- 58. Конструкторы Если в классе явно не описан ни один конструктор, автоматически создается т.н. конструктор по умолчанию,
- 59. class Body { public long idNum; public String name = "No Name"; public Body orbits =
- 60. Деструкторы? В ряде языков деструкторы выполняют действия, обратные действию конструкторов: освобождают память, занимаемую объектом, и «деинициализируют»
- 61. Автоматическая сборка мусора В случае нехватки памяти для создания очередного объекта виртуальная машина находит недостижимые объекты
- 62. Блоки инициализации Если некоторые действия по инициализации должны выполняться в любом варианте создания объекта, удобнее использовать
- 63. Блоки инициализации class Body { public long idNum; public String name = "No Name"; public Body
- 64. Статическая инициализация Статический блок инициализации выполняет инициализацию контекста класса Вызов статического блока инициализации происходит в процессе
- 65. Модификаторы доступа private Доступ только в контексте класса (package, default, none) Доступ для самого класса и
- 66. Точка входа программы Метод Статический Доступный С параметрами-аргументами Без возвращаемого значения class Echo { public static
- 67. Спасибо за внимание!
- 69. Скачать презентацию