§ 22 Предпочитайте статические поля классов - другим.

Презентация:



Advertisements
Похожие презентации
Встроенные классы в Java Макаревич Л. Г.. Разновидности встроенных классов Вложенные (Nested) классы Внутренние (Inner) классы Локальные классы Анонимные.
Advertisements

1 © Luxoft Training 2012 Java: расширенные вопросы Модуль #8.
1 Java 6. ИНТЕРФЕЙСЫ И ВНУТРЕННИЕ КЛАССЫ. 2 Интерфейсы Не являются классами Ни один из объявленных методов не может быть реализован внутри интерфейса.
Лекция 3 Принципы объектно- ориентированного программирования.
1 Java 6. ИНТЕРФЕЙСЫ И ВНУТРЕННИЕ КЛАССЫ. 2 Интерфейсы Не являются классами Ни один из объявленных методов не может быть реализован внутри интерфейса.
Лекция 2: Описание класса 1. Поля 2. Методы 3. Конструкторы.
СОБЫТИЯ Лекция 1. Взаимодействие объектов 2 Взаимодействие между объектами A и B можно организовать двумя способами. 1.Объект A вызывает метод объекта.
Дружественные функции Дружественные функции – это функции, объявленные вне класса, но имеющие доступ к закрытым и защищенным полям данного класса Дружественная.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
ОБЪЕКТНО- ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ (ООП) 1.
Инкапсуляция полей и констант в языке C# (1) Поле: - инициализация факультативна, однако запрещен доступ к полям и методам того же типа; - поля структуры.
Перегрузка операторов x = a + b результат 1-й операнд2-й операнд оператор По количеству операндов операторы делятся на: унарные (один операнд) бинарные.
Java. Part 2. Спецификаторы доступа public private protected не указан – доступ в пределах пакета Могут использоваться перед классами, методами, полями.
EXtreme Programming XP Тема 3. XP Пусть есть некоторая информационная система для банков. В качестве основной валюты для расчетов используется доллар,
Статические поля класса Статические поля хранят данные, общие для всех элементов класса. Статическое поле существует в единственном экземпляре для всех.
Лекция 8. Введение в ООП. Часть 1 Красс Александр СПбГУ ИТМО, 2008.
Классы в С#. Перечисления С# Перечисление задает конечное множество возможных значений, которые могут получать объекты класса перечисление. [атрибуты][модификаторы]
ДЕЛЕГАТЫ Лекция 7 1. Зачем нужны делегаты 2 И данные, и код располагаются в памяти компьютера по определенным адресам. Передача адресов данных в C# происходит.
Наследование и полиморфизм. «Быть» или «Иметь» а так же «Точно» или «Как получится»
Преобразования типов В языке C/C++ имеется несколько операций преобразования типов. Они используются в случае, если переменная одного типа должна рассматриваться.
Транксрипт:

§ 22 Предпочитайте статические поля классов - другим

Nested (вложенный) класс, служит только для потребностей внешнего класса. Если это не так, он должен быть внешним –статический –обыкновенный –анонимный –локальный Последние 3 также называются inner (внутренними) классами

Типичное использование не статического внутреннего класса – это адаптер Если ваш внутренний класс не связан с внешним – всегда объявляйте его статическим.

// Типичный пример использования открытого // статического класса-члена public class Calculator { public static abstract class Operation{ private final String name; Operation(String name) { this.name = name; } public String toString() { return this.name; } // Выполняет арифметическую операцию, представленную // данной константой abstract double eval(double х, double у); // Дважды вложенные анонимные классы public static final Operation PLUS = new Operation("+"){ double eval(double х, double у) { return х + у; } }; public static final Operation MINUS = new Operation("-") { double eval(double х, double у) {геturn х - у; } }; public static final Operation TIMES = new Operation("*"){ double eval(double х, double у) {, return х * у; } }; public static final Operation DIVIDE = new Operat1on("/"){ double eval(double х, double у) { return х / у; } }; } // Возвращает результат указанной операции public double calculate(double х, Operation ор, double у) { геturn op.eval(x, у); }