Содержание
- 2. Пакеты и интерфейсы Пакет (package) - это некий контейнер, который используется для того, чтобы изолировать имена
- 3. Если объявить класс, как принадлежащий определенному пакету, например, package java.awt.image; то и исходный код этого класса
- 4. Если, например, написан класс Myclass.java и помещен в пакет test, тогда, после компиляции, этот класс можно
- 5. Рассмотрим пример: package р1; public class Protection { int n = 1; private int n_pri =
- 6. Кроме оператора import можно использовать также cтатический импорт. Для того чтобы получить доступ к статическим членам
- 7. Интерфейсы Интерфейсы Java созданы для поддержки динамического выбора методов во время выполнения программы. Интерфейсы похожи на
- 8. В объявлении интерфейса используется ключевое слово interface. В интерфейсе можно также объявлять константы. Т.о. определение интерфейса
- 9. interface Callback { void callback(int param); } Интерфейсы допускают расширение. Рассмотрим пример: interface FloorWax{ double f();
- 10. Java 8 позволяет добавлять неабстрактные реализации методов в интерфейс, используя ключевое слово default. Пример: interface A{
- 11. default методы можно и переопределять interface A{ void g(); default void f(){ System.out.println("Method f"); } }
- 12. interface A{ void f(int a); } interface B extends A{ default void f(int a){} } class
- 13. Однако следующий код вызовет ошибку компиляции interface A{ void g(); default void f(){ System.out.println("Method f_A"); }
- 14. Выше написанный код можно переписать следующим образом: interface A{ void g(); default void f(){ System.out.println("Method f_A");
- 15. Также в интерфейсах можно определять статические методы: interface A{ void f(int a); static void g(){ System.out.println("Hello");
- 16. Реализация интерфейса Реализация интерфейса осуществляется при помощи ключевого слова implements. Таким образом, класс реализующий интерфейс будет
- 17. Метод callback интерфейса, определенного ранее, вызывается через переменную - ссылку на интерфейс: class TestIface { public
- 18. Конфликты имен Если два метода отличаются только типом возбуждаемых исключений, метод класса реализующего интерфейс обязан соответствовать
- 19. interface X { void setup() throws SomeException; } interface Y { void setup(); } class Z
- 20. Лямбда выражения Синтаксис лямбда выражения имеет вид: параметры->{тело функции}. Типы параметров можно опускать. Рассмотрим примеры. Пример:
- 21. interface MyInterface{ public void func(int a); } public class JavaApplication106 { public static void f(MyInterface m){
- 22. Данный код эквивалентен следующему коду: interface MyInterface{ public void func(int a); } class Impl implements MyInterface{
- 23. Однако следующий код вызовет ошибку компиляции: interface MyInterface{ public void func(int a); public void g(); }
- 24. Лямбда функция может принимать несколько параметров: interface MyInterface{ public int func(int a,int b); } public class
- 25. Лямбда функции можно использовать для реализации функциональных интерфейсов: class A { int a; public int getA(){
- 26. Замыкания в лямбда выражениях. В лямбда выражениях можно использовать переменные из объемлющей области видимости: class A
- 27. Ссылки на методы. Ссылки на нестатические методы. Рассмотрим пример: class A { int a; public int
- 28. public class Main { static int b=100; public static void main(String[] args) { int c=30; B
- 29. Ссылки на статические методы. Рассмотрим пример такой ссылки: class A { int a; public int getA(){
- 30. public class JavaApplication106 { static int b=100; public static void main(String[] args) { int c=30; MyInterface
- 31. Ссылка на метод экземпляра из произвольного объекта определенного типа. Рассмотрим пример: String[] stringArray = { "Barbara",
- 32. interface MyInterface{ public A func(); } class A{ int x; public A(){ this.x=100; } public int
- 33. ОПЕРАТОРЫ И ВЫРАЖЕНИЯ Все программы на языке Java написаны в Unicode - 16-разрядном наборе символов. Первые
- 34. Символы Некоторые служебные символы в Java: \n переход на новую строку (\u000A) \t табуляция (\u0009) \\
- 35. Объявления переменных В объявлении указывается тип, уровень доступа и другие атрибуты идентификатора. Объявление состоит из трех
- 36. Массивы Работа с массивами в Java аналогично С++. Элементы массива могут иметь примитивный тип или являться
- 37. Можно создавать массивы классов. Рассмотрим пример: сlass A{ …… public A(int a, int b){….} ……………….. }
- 38. В Java можно использовать многомерные массивы: float[][] mat = new float[4][4]; ………………………………. for (int y =
- 39. Инициализация массивов Чтобы инициализировать массив, следует задать значения его элементов в фигурных скобках после его объявления.
- 40. Тип выражения У каждого выражения имеется определенный тип. Он задается типом компонентов выражения и семантикой операторов.
- 41. Явное преобразование типов В Java возможны явные преобразования типов. Рассмотрим пример: double d=5.6; long l=(double) d;
- 42. Преобразования типов влияют на перегрузку методов. Рассмотрим пример. Пусть имеется иерархия классов: допустим имеется несколько перегруженных
- 43. Рассмотрим вызовы: f(dessertRef,sconeRef); //вызывается void f(Dessert d, Scone s); f(chocolateCakeRef, dessertRef); //вызывается void f(Cake c, Dessert
- 45. Скачать презентацию