шпаргалки
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
3.8 KiB

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