Содержание
- 2. План лекции Структура исходного кода и его элементы Типы данных Описание классов Общая структура Поля Методы
- 3. Кодировка Java спроектирована быть многоязыковой Java ориентирована на Unicode Первые 128 символов почти идентичны набору ASCII
- 4. Исходный код Исходный код разделяется на: Пробелы – разделяют текст на лексемы ASCII-символ SP, \u0020, дес.
- 5. Исходный код double a = 1, b = 1, c = 6; double D = b
- 6. Лексемы Идентификаторы Служебные (ключевые) слова class, public, const, goto Литералы Разделители { } [ ] (
- 7. Идентификаторы Имена, задаваемые элементам языка для упрощения доступа к ним Можно записывать символами Unicode Состоят из
- 8. Служебные (ключевые) слова abstract double int strictfp boolean else interface super break extends long switch byte
- 9. Типы данных Ссылочные Предназначены для работы с объектами Переменные содержат ссылки на объекты Ссылка – это
- 10. Ссылочные типы К ссылочным типам относятся типы классов (в т.ч. массивов) и интерфейсов Переменная ссылочного типа
- 11. Примитивные типы Булевский (логический) тип boolean – допускает хранение значений true или false Целочисленные типы char
- 12. Литералы Булевы true false Символьные 'a' '\n' '\\' '\377' '\u0064' Целочисленные 29 035 0x1D 0X1d 0xffffL
- 13. Целочисленные литералы десятичный вид цифры 0-9 восьмеричный префикс 0, цифры 0-7 шестнадцатеричный вид префикс 0x или
- 14. Дробные литералы целая часть; десятичная точка (ASCII -символ точка); дробная часть; порядок (ASCII -буква E в
- 15. Символьные литералы один символ из набора Unicode в одиночных кавычках (апострофах) допускается специальная запись для описания
- 16. Символьные литералы \b \u0008 backspace BS – забой \t \u0009 horizontal tab HT – табуляция \n
- 17. Строковые литералы состоят из набора символов и записываются в двойных кавычках длина литерала может быть нулевой
- 18. Строковые литералы Примеры строковых литералов "" // литерал нулевой длины "\"" //литерал, состоящий из одного символа
- 19. Описание класса Класс может содержать: поля, методы, вложенные классы и интерфейсы. class Body { public long
- 20. Модификаторы объявления класса public Признак общедоступности класса abstract Признак абстрактности класса final Завершенность класса (класс не
- 21. Поля класса Объявление поля: [модификаторы] { [= ]}; double sum = 2.5 + 3.7; public double
- 22. Поля класса Модификаторы полей: модификаторы доступа static поле статично (принадлежит контексту класса) final поле не может
- 23. Методы Объявление метода: [модификаторы] [throws исключения] { } class Primes { static int nextPrime(int current) {
- 24. Модификаторы методов Модификаторы доступа abstract абстрактность метода (тело при этом не описывается) static статичность метода (метод
- 25. Модификаторы методов synchronized синхронизированность метода (особенности вызова метода в многопоточных приложениях) native «нативность» метода (тело метода
- 26. Особенности методов Для нестатических методов вызов через ссылку на объект или в контексте объекта reference.method(); methodReturningReference().method();
- 27. Особенности методов На время выполнения метода управление передается в тело метода Возвращается одно значение простого или
- 28. Создание ссылки и создание объекта – различные операции Используется оператор new, он возвращает ссылку на объект
- 29. Конструкторы Память для объекта выделяет оператор new Конструкторы предназначены для формирования начального состояния объекта Правила написания
- 30. Конструкторы Для конструкторов разрешено использование только модификаторов доступа При написании конструктор не имеет возвращаемого типа Оператор
- 31. Конструкторы Если в классе явно не описан ни один конструктор, автоматически создается т.н. конструктор по умолчанию,
- 32. class Body { public long idNum; public String name = "No Name"; public Body orbits =
- 33. Деструкторы? В ряде языков деструкторы выполняют действия, обратные действию конструкторов: освобождают память, занимаемую объектом, и «деинициализируют»
- 34. Автоматическая сборка мусора В случае нехватки памяти для создания очередного объекта виртуальная машина находит недостижимые объекты
- 35. Модификаторы доступа private Доступ только в контексте класса (package, default, none) Доступ для самого класса и
- 36. Блоки инициализации Если некоторые действия по инициализации должны выполняться в любом варианте создания объекта, удобнее использовать
- 37. Блоки инициализации class Body { public long idNum; public String name = "No Name"; public Body
- 38. Статическая инициализация Статический блок инициализации выполняет инициализацию контекста класса Вызов статического блока инициализации происходит в процессе
- 39. Понятие о пакетах Способ логической группировки классов Комплект ПО, который можно распространять независимо и применять вместе
- 40. Функциональность пакетов Позволяют группировать взаимосвязанные классы и интерфейсы в единое целое Способствуют созданию пространств имен, позволяющих
- 41. Способы реализации и доступ к пакетам Пакеты могут быть реализованы: в виде структуры каталогов с файлами
- 42. Понятие имени Имена задаются посредством идентификаторов, указывают на компоненты программы Пространства имен пакеты типы поля методы
- 43. Душераздирающий, но корректный код Пример зависимости имени от контекста package Reuse; class Reuse { Reuse Reuse
- 44. Понятие модуля компиляции Модуль компиляции хранится в .java файле и является единичной порцией входных данных для
- 45. Объявление пакета Первое выражение в модуле компиляции (например, для файла java/lang/Object.java) package java.lang; При отсутствии объявления
- 46. Объявление пакета Если файл модуля компиляции доступен JVM, то пакеты также доступны Если пакет доступен, то
- 47. Выражения импорта Доступ к типу из данного пакета – по простому имени типа Доступ к типу
- 48. Выражения импорта Попытка импорта пакета, недоступного на момент компиляции, вызовет ошибку Дублирование импорта игнорируется Нельзя импортировать
- 49. Выражения импорта Алгоритм компилятора при анализе типов: выражения, импортирующие типы другие объявленные типы выражения, импортирующие пакеты
- 50. Выражения импорта Импорт пакета не мешает объявлять новые типы или обращаться к имеющимся типам текущего пакета
- 51. Объявление верхнего уровня Область видимости типа – пакет Доступ к типу извне его пакета по составному
- 52. Объявление верхнего уровня В модуле компиляции может быть максимум один public тип Имя типа и имя
- 53. Правила именования Пакеты java.lang javax.swing ru.ssau.infokom com.sun.xml.internal.ws.protocol.xml Типы Student Cloneable Serializable ArrayIndexOutOfBoundException Поля value enabled distanceFromShop
- 54. Правила именования Методы getValue(), setValue(…) isEnabled(…) length() toString() Поля-константы PI SIZE_MIN, SIZE_MAX, SIZE_DEF Локальные переменные byte
- 55. Точка входа программы Метод Статический Доступный С параметрами-аргументами Без возвращаемого значения class Echo { public static
- 56. Комментарии Не влияют на итоговый бинарный код Используются для ввода пояснений Бывают двух видов Строчные, одна
- 57. Комментарии // Комментарий Символы после // и до конца текущей строки игнорируются /* Комментарий */ Все
- 58. Комментарии int bonus = 100500; // эм, комментарии? /* Особенный цикл, начинаться с единицы из-за особенностей
- 59. Комментарии // Текст /*…*/ будет частью строки s String s = "text/*just text*/"; // Ошибка, комментарий
- 60. Комментарии // еще один честный комментарий ниже /* начало комментария /* // /** завершение: */ //
- 61. Комментарии документирования (javadoc) Начинаются с /**, заканчиваются */ В строках начальные символы * и пробелы перед
- 62. Комментарии документирования (javadoc) /** * Вычисление модуля целого числа. * Этот метод возвращает * абсолютное значение
- 63. Комментарии документирования (javadoc) /** * Первое предложение - краткое описание метода. * * * if (condition==true)
- 64. Комментарии документирования (javadoc) Первое предложение – краткое описание метода. if (condition==true) { x = getWidth(); }
- 65. Спасибо за внимание!
- 67. Скачать презентацию