- •«Объектно-ориентированное программирование (Java, Oracle jDeveloper)»
- •Архитектура и основные концепции Java.
- •Особенности языка Java и его предназначение.
- •Структура пакета Java 2 sdk.
- •Стандартные типы данных. Приведение типов.
- •Операторы ветвления и циклы.
- •Массивы, их особенности в Java.
- •Принципы объектно-ориентированного программирования.
- •Классы. Инкапсуляция.
- •Статические поля и методы.
- •Способы инициализации полей данных.
- •Композиция классов. //объект в объекте
- •Пакеты – стандартные и пользовательские.
- •Стандартные библиотеки Java.
- •Наследование.
- •Наследование и пакеты.
- •Интерфейсы. // Implements
- •Исключительные ситуации, их классификация и различия.
- •Способы компоновки интерфейса пользователя. // layouts
- •Назначение многопоточных приложений. //веб
Стандартные библиотеки Java.
java.lang |
Contains classes that are fundamentals to Java (String, Math classes etc.) and all of these are available in your program automatically. You don’t need the import statement to include them. |
java.io |
Contains classes supporting input/output operations |
java.awt |
Contains classes that support Java’s graphical user interface (GUI). It enables you to create window-based applications, menus, dialogs etc. |
java.awt.event |
Contains classes that support event handling |
java.awt.image |
Contains classes that support image processing |
java.applet |
Contains classes that enable you to write applets – programs that are embedded in a Web page |
java.util |
Contains classes that support a range of standard operations for managing collections of data, accessing date and time information, analyzing strings, etc. |
java.net |
Contains classes that support networking operations |
And so and so on….. |
|
Наследование.
extends
В конструкторе класса-потомка слово super можно не указывать, если в базовом классе есть конструктор без параметров или нет никакого (поскольку такой конструктор создаётся автоматически). В остальных случаях ключевое слово super должно присутствовать и обязательно идти первым в теле конструктора.
Конструктор класса-потомка первым делом должен вызывать конструктор класса-родителя. Если этот вызов не написан явно через super, то по умолчанию будет вызваться конструктор без параметров. Если такого конструктора нет – будет ошибка.
Пример: есть класс Animal c атрибутом ID — уникальным идентификационным номером. От этого класса наследуют классы Bird и Horse, оба они имеют унаследованный атрибут с уникальным значением. Теперь создаем класс Pegasus, который унаследован от классов Bird и Horse.
Этот новый класс имеет два уникальных идентификатора - проблема бриллианта. Если мы нарисуем граф наследования, он будет выглядеть как ромб-бриллиант. Такая схема множественного наследования будет работать до тех пор, пока мы не попытаемся получить идентификатор класса Pegasus: в этом случае мы не будем знать точно, который из них нам нужен.
Полиморфизм. Динамическое связывание.
Тот факт, что переменная объекта может относиться к нескольким типам фактических называется полиморфизмом. (Способность к объектам разных классов связаны по наследству к разному реагируют на тот же вызов функции-члена). Автоматический выбор подходящего метода во время выполнения называется динамическое связывание.
Запрещение наследования.
final
Абстрактные классы. // abstract
Иерархия наследования. Универсальный класс Object, его методы.
toString() |
Возвращает строку, которая описывает объект текущего объекта. Это будет имя класса, после «@» и шестнадцатеричное представление объекта. Этот метод вызывается автоматически, когда вы объединяете объекты с использованием строковых переменных +. |
getClass() |
возвращает объект типа класса, который идентифицирует класс текущего объекта. |
equals() |
Сравнивает текущий объект с объектом ссылается переменная объекта передается в качестве аргумента. Она возвращает верно, только если оба объекта являются одинаковыми. (А не только равных - они должны быть того же объекта) Так оно и определяет, действительно ли два объекта, один и тот же область памяти. |
hashCode() |
вычисляет значение хэш-код объекта и возвращает его как тип Int. Может быть обсужден после изучения хэш-таблиц. |
notify() |
Просыпается поток, связанный с текущим объектом. |
notifyAll() |
росыпается все потоки, связанные с текущим объекто |
wait() |
вызывает поток ждать изменений в текущий объект. |
Protected methods (java.lang.Object):
clone() |
Создает объект, который является копией текущего объекта независимо от типа. |
finalize() |
вызывается при уничтожении объекта. Вызвается сборщиком мусора перед тем, как объект будет уничтожен. В силу того, что Java освобождает нас от необходимости самим следить за освобождением памяти, занимаемой объектами, необходимость в таких методах обычно возникает лишь тогда, когда надо освободить какие-то внешние ресурсы, например, закрыть открытый файл |
