Добавил:
ПОИТ 2016-2020 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пацей 4 сем / Лекции / СТПI_2_ООП

.pdf
Скачиваний:
70
Добавлен:
29.04.2018
Размер:
15.18 Mб
Скачать

Классы, интерфейсы, наследование, полиморфизм, коллекции и т.д.

определяет внешний

доступный из других

(enclosing) класс, Состав класса

пакетов

[public] [final] [abstract] class ИмяКласса {

{} // логические блоки

//внутренние классы

//поля

private // закрытые public // открытые

наследование по умолчанию только от Object

// дружественные (по умолчанию) protected // защищенные

// конструкторы

public // открытые

//дружественные (по умолчанию) protected // защищенные

private // закрытые // методы

public // открытые

...

Ограничение доступа

private —только членам данного класса;

по умолчанию (package-private) —

классам, находящимся в том же пакете;

protected —подклассам, находящимся в

томже пакете/в другом пакете;

public —для всех классов в этом и других пакетах.

Переменные класса, экземпляра и константы

[cпецификатор] Тип имя;

/ класс доступен из других пакетов public class Bill {

private int id;

// переменная экземпляра класса

static int bonus; // переменная класса

public final int MIN_TAX = 8 + (int)

(Math.random() * 5);

// константа экземпляра класса public final static int P_TAX = 6;

// константа класса

}

Конструкторы и деструкторы

public Bill() { //

super(); // вызывается автоматически /* если класс будет объявлен вообще без конструктора, то компилятор предоставит его именно в таком виде */

}

ссылкаthis - аналогично

Методы

Только внутри классов

[доступ] [static] [abstract] [final] [synchronized] [native] [<параметризация>]

ВозвращаемыйТип имяМетода (список параметров)

[throws список исключений]

Статические методы и поля

Как в С#

Модификатор final

переменные - константы методы - нельзя замещать в подклассах

классы - нельзя создавать подклассы

public class Bill {

public final int P_VAX =11; // константа класса

{

// P_VAX =10; // логический блок

}

public Bill() { //

// P_VAX = 9; // конструктор, знач по умолчанию

// получить не может

}

Абстрактные методы

в абстрактных классах или интерфейсах

public abstract class AbstractAction {

private Long account; public AbstractAction () { }

public abstract void doPayment(double amountPayment public void setAccount(Long account) {

this.account = account;

} }

Соседние файлы в папке Лекции