|
|
|
@ -1,59 +1,58 @@
@@ -1,59 +1,58 @@
|
|
|
|
|
# Определение класса |
|
|
|
|
Класс - пользоватльский тип данных (структура и поведение) |
|
|
|
|
Простейшее определение: |
|
|
|
|
class A{} |
|
|
|
|
Класс - пользоватльский тип данных (структура и поведение) |
|
|
|
|
Простейшее определение: |
|
|
|
|
class A{} |
|
|
|
|
|
|
|
|
|
спецификатор class Name extends имя_суперкласса implements список_интерфейсов { |
|
|
|
|
члены класса - поля / атрибуты класса (данные) --> экземплярные/статические |
|
|
|
|
спецификаторы / модификаторы доступа |
|
|
|
|
------------ |
|
|
|
|
переменные |
|
|
|
|
методы |
|
|
|
|
конструкторы |
|
|
|
|
------------ |
|
|
|
|
модификатор_доступа спецификатор тип имя = инициализирующее выражение; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
[спецификатор] class [Name] extends [имя_суперкласса] implements [список_интерфейсов] { |
|
|
|
|
члены класса - поля / атрибуты класса (данные) --> экземплярные/статические |
|
|
|
|
спецификаторы / модификаторы доступа |
|
|
|
|
------------ |
|
|
|
|
переменные |
|
|
|
|
методы |
|
|
|
|
конструкторы |
|
|
|
|
------------ |
|
|
|
|
модификатор_доступа спецификатор тип имя = инициализирующее выражение; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# Определение метода |
|
|
|
|
модификатор_доступа спецификаторы тип_возвращаемого_значения имя_метода (список_формальных_параметров) throws список_исключений { |
|
|
|
|
//тело метода |
|
|
|
|
} |
|
|
|
|
модификатор_доступа спецификаторы тип_возвращаемого_значения имя_метода (список_формальных_параметров) throws список_исключений { |
|
|
|
|
//тело метода |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# Определение конструктора |
|
|
|
|
модификатор_доступа имя_конструктора(список_параметров) throws список исключений { |
|
|
|
|
тело конструктора |
|
|
|
|
} |
|
|
|
|
имя конструктора всегда совпадает с именем класса, пишется с заглавной буквы |
|
|
|
|
модификатор_доступа имя_конструктора(список_параметров) throws список исключений { |
|
|
|
|
тело конструктора |
|
|
|
|
} |
|
|
|
|
имя конструктора всегда совпадает с именем класса, пишется с заглавной буквы |
|
|
|
|
|
|
|
|
|
# Спецификатор доступа |
|
|
|
|
public - глобальная область, видит вся программа |
|
|
|
|
protected - видимость внутри пакета, а также наследникам |
|
|
|
|
private - видимость внутри класса (объект видит поля других объектов этого класса) |
|
|
|
|
default - видимость внутри пакета |
|
|
|
|
local - видимость внутри фигурных скобок |
|
|
|
|
public - глобальная область, видит вся программа |
|
|
|
|
protected - видимость внутри пакета, а также наследникам |
|
|
|
|
private - видимость внутри класса (объект видит поля других объектов этого класса) |
|
|
|
|
default - видимость внутри пакета |
|
|
|
|
local - видимость внутри фигурных скобок |
|
|
|
|
|
|
|
|
|
package - именованная группа пользовательских типов (каталог) |
|
|
|
|
Область видисости класса может быть: public, default |
|
|
|
|
package - именованная группа пользовательских типов (каталог) |
|
|
|
|
Область видисости класса может быть: public, default |
|
|
|
|
|
|
|
|
|
всегда объявляем минимальный необходимый уровень доступа. |
|
|
|
|
всегда объявляем минимальный необходимый уровень доступа. |
|
|
|
|
|
|
|
|
|
# Создание объекта |
|
|
|
|
new - специальная операция |
|
|
|
|
- выделение области памяти |
|
|
|
|
- инициализация (new дает ссылку на новый объект) |
|
|
|
|
new - специальная операция |
|
|
|
|
- выделение области памяти |
|
|
|
|
- инициализация (new дает ссылку на новый объект) |
|
|
|
|
|
|
|
|
|
Способы создания экземпляра класса: |
|
|
|
|
* new A(список_аргументов) |
|
|
|
|
* this A(список_аргументов) |
|
|
|
|
Способы создания экземпляра класса: |
|
|
|
|
* new A(список_аргументов) |
|
|
|
|
* this A(список_аргументов) |
|
|
|
|
|
|
|
|
|
## При вызове конструктора |
|
|
|
|
- выполняются статические поля и области класса |
|
|
|
|
- выполняются экземплярные поля класса |
|
|
|
|
- вызывается конструктор родительского класса |
|
|
|
|
- вызывается конструктор класса |
|
|
|
|
- выполняются статические поля и области класса |
|
|
|
|
- выполняются экземплярные поля класса |
|
|
|
|
- вызывается конструктор родительского класса |
|
|
|
|
- вызывается конструктор класса |
|
|
|
|
|
|
|
|
|
Конструктор класса вызывается в последнюю очередь!!! |
|
|
|
|
Конструктор класса вызывается в последнюю очередь!!! |
|
|
|
|
|
|
|
|
|
## Перегрузка методов и конструкторов |
|
|
|
|
При перегрузке конструктора ключевыми моментами оказываются: |
|
|
|
|