- •Лексика языка Java
- •План лекции
- •Кодировка
- •Исходный код
- •Исходный код
- •Лексемы
- •Идентификаторы
- •Служебные (ключевые) слова
- •Типы данных
- •Ссылочные типы
- •Примитивные типы
- •Литералы
- •Целочисленные литералы
- •Дробные литералы
- •Символьные литералы
- •Символьные литералы
- •Строковые литералы
- •Строковые литералы
- •Описание класса
- •Модификаторы объявления класса
- •Поля класса
- •Поля класса
- •Методы
- •Модификаторы методов
- •Модификаторы методов
- •Особенности методов
- •Особенности методов
- •Создание объектов
- •Конструкторы
- •Конструкторы
- •Конструкторы
- •Конструкторы
- •Деструкторы?
- •Автоматическая сборка мусора
- •Модификаторы доступа
- •Блоки инициализации
- •Блоки инициализации
- •Статическая инициализация
- •Понятие о пакетах
- •Функциональность пакетов
- •Способы реализации и доступ к пакетам
- •Понятие имени
- •Душераздирающий, но корректный код
- •Понятие модуля компиляции
- •Объявление пакета
- •Объявление пакета
- •Выражения импорта
- •Выражения импорта
- •Выражения импорта
- •Выражения импорта
- •Объявление верхнего уровня
- •Объявление верхнего уровня
- •Правила именования
- •Правила именования
- •Точка входа программы
- •Комментарии
- •Комментарии
- •Комментарии
- •Комментарии
- •Комментарии
- •Комментарии документирования (javadoc)
- •Комментарии документирования (javadoc)
- •Комментарии документирования (javadoc)
- •Комментарии документирования (javadoc)
- •Спасибо за внимание!
- •Дополнительные источники
Объявление верхнего уровня
package first;
class MyFirstClass {
}
interface MyFirstInterface {
}
Область видимости типа – пакет
Доступ к типу извне его пакета
по составному именичерез выражения импорта
Разграничение (модификаторы) доступа
51
Объявление верхнего уровня
В модуле компиляции может быть максимум один public тип
Имя типа и имя файла должны совпадать
Другие не-public типы модуля должны использоваться только внутри этого модуля
Как правило, один модуль компиляции содержит один тип
52
Правила именования
Пакеты
java.lang
javax.swing
ru.ssau.infokom
com.sun.xml.internal.ws.protocol.xml
Типы
Student
Cloneable
Serializable
ArrayIndexOutOfBoundException
Поля
value
enabled
distanceFromShop
53
Правила именования
Методы
getValue(), setValue(…)
isEnabled(…)
length()
toString()
Поля-константы
PI
SIZE_MIN, SIZE_MAX, SIZE_DEF
Локальные переменные
byte b; char c; int i,j,k; long l; double d;
Object o; String s;
Exception e
54
Точка входа программы
Метод |
С параметрами- |
Статический |
аргументами |
Доступный |
Без возвращаемого |
|
значения |
class Echo {
public static void main(String[] args) { for (int i = 0; i < args.length; i++)
System.out.println(args[i] + " "); System.out.println();
}
}
55
Комментарии
Не влияют на итоговый бинарный код
Используются для ввода пояснений
Бывают двух видов
Строчные, одна строка
Блочные, несколько строк
56
Комментарии
// Комментарий
Символы после // и до конца текущей строки игнорируются
/* Комментарий */
Все символы, заключенные между /* и */, игнорируются
/** Комментарий */
Комментарии документирования
57
Комментарии
int bonus = 100500; // эм, комментарии?
/*
Особенный цикл, начинаться с единицы
из-за особенностей алгоритма
*/
for (int i=1; i<10; i++) {
...
}
float s = 2*Math.PI/*getRadius()*/; // Закомментировано для отладки
58
Комментарии
//Текст /*…*/ будет частью строки s
String s = "text/*just text*/";
//Ошибка, комментарий разбил имя метода circle.get/*comment*/Radius();
//Комментарий может разделять вызовы функций: circle./*comment*/getRadius();
//Комментарий может заменять пробелы: int/*comment*/x=1;
59
Комментарии
// еще один честный комментарий ниже
/* начало комментария /* // /** завершение: */
// Ошибка компилятора на 7 строке
1./*
2.comment
3./*
4.more comments
5.*/
6.finish:
7.*/
60
