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