Объектно-ориентированное программирование в Java

Материаловедение
Электропроводность твёрдых
диэлектриков
Пределы
Курс лекций по ТОЭ
и типовые задания
Информационные процессы
и технологии
Архитектура персонального компьютера
Операционная система Windows
Microsoft Word работа с документами
Microsoft Access СУБД
Microsoft Excel работа с электронными таблицами
Локальные сети Работа пользователя в сети
Работа в Интернет Электронная почта
Защита компьютерной информации
Алгоритмы и программирование Паскаль
Натуральные и комплексные
числа
Теория информационных
процессов
Эффективная организация обмена информации
Непрерывный или аналоговый сигналы
Дискретизированный или дискретно непрерывные сигналы
Дискретные по уровню или квантованные сигналы
Дискретные по уровню и по времени сигналы
Совокупность технических средств
Количество информации в дискретном сообщении
Энтропия
Свойства энтропии
Энтропия объединения нескольких источников
Условная энтропия и взаимная информация
Дискретные источники сообщений с памятью
Производительность источника дискретных сообщений
Пропускная способность дискретного канала
Задача согласования дискретного источника с дискретным каналом без шума
Кодирование
Теорема Шеннона для канала без шума
Второй способ доказательства прямой теоремы Шеннона
Цифровые сети для
передачи речи и данных
Задача согласования дискретного источника
Теорема Шеннона для дискретного канала с шумом
Методика построения помехоустойчивых кодов
Непрерывные сообщения. Квантование и дискретизация
АИМ - сигнал и его спектр
Математическая модель дискретизированного сигнала
Теорема Котельникова
Оценка ошибок дискретизации
Спектр реального сигнала
Интерполирующий фильтр
Информация в непрерывных сообщениях
Дифференциальная энтропия
Наибольшая дифференциальная энтропия
Энтропия и производительность
Пропускная способность непрерывного канала
Информационный подход
Оценка ошибок квантования
Дифференцирование и
интегральное исчисление
Уязвимость операционных
систем
Узлы компьютера БП
Анализ систем безопасности
Обьектовая концепция Delphi
Встроенные типы данных
Объектно-ориентированное
программирование
Классы-оболочки
графический интерфейс
Основные компоненты
Изображения и звук
Инженерная графика

  • Парадигмы программирования Вся полувековая история программирования компьютеров, а может быть, и история всей науки — это попытка совладать со сложностью окружающего мира. Задачи, встающие перед программистами, становятся все более громоздкими, информация, которую надо обработать, растет как снежный ком.
  • Принципы объектно-ориентированного программирования
    • Абстракция Описывая поведение какого-либо объекта, например автомобиля, мы строим его модель. Модель, как правило, не может описать объект полностью, реальные объекты слишком сложны. Приходится отбирать только те характеристики объекта, которые важны для решения поставленной перед нами задачи.
    • Иерархия объектов давно используете для их классификации. Особенно детально она проработана в биологии. Все знакомы с семействами, родами и видами
    • Ответственность В нашем примере рассматривается только взаимодействие в процессе кормления, описываемое методом eat() . В этом методе животное обращается к хозяину, умоляя его применить метод getFood() .
    • Модульность Этот принцип утверждает — каждый класс должен составлять отдельный модуль. Члены класса, к которым не планируется обращение извне, должны быть инкапсулированы.
  • Как описать класс и подкласс Самый основной, базовый и самый великий : принцип программирования принцип KISS — не нуждается в разъяснений : и переводе: "Keep It Simple, Stupid!"
  • Абстрактные методы и классы При описании класса Pet мы не можем задать в методе voice () никакой полезный алгоритм, поскольку у всех животных совершенно разные голоса
  • Окончательные члены и классы Пометив метод модификатором final , можно запретить его переопределение в подклассах. Это удобно в целях безопасности. Вы можете быть уверены, что метод выполняет те действия, которые вы задали.
  • Класс Object Если при описании класса мы не указываем никакое расширение, т. е. не пишем слово extends и имя класса за ним, как при описании класса Pet , то Java считает этот класс расширением класса object , и компилятор дописывает это за нас
  • Конструкторы класса Вы уже обратили внимание на то, что в операции new, определяющей экземпляры класса, повторяется имя класса со скобками. Это похоже на обращение к методу, но что за "метод", имя которого полностью совпадает с именем класса? Такой "метод" называется конструктором класса (class constructor). Его своет образие заключается не только в имени.
  • Операция new Пора подробнее описать операцию с одним операндом, обозначаемую словом new . Она применяется для выделения памяти массивам и объектам.
  • Статические члены класса Разные экземпляры одного класса имеют совершенно независимые друг от друга поля-, принимающие разные значения. Изменение поля в одном экземпляре никак не влияет на то же поле в другом экземпляре. В каждом экземпляре для таких полей выделяется своя ячейка памяти. Поэтому такие поля называются переменными экземпляра класса (instance variables) или переменными объекта.
  • Класс Complex Комплексные числа широко используются не только в математике. Они часто применяются в графических преобразованиях, в построении фракталов, не говоря уже о физике и технических дисциплинах. Но класс, описывающий комплексные числа, почему-то не включен в стандартную библиотеку Java.
  • Метод main() Всякая программа, оформленная как приложение (application), должна содержать метод с именем main . Он может быть один на все приложение или содержаться в некоторых классах этого приложения, а может находиться и в каждом классе.
  • Где видны переменные В языке Java нестатические переменные можно объявлять в любом месте кода между операторами. Статические переменные могут быть только полями класса, а значит, не могут объявляться внутри методов и блоков. Какова же область видимости (scope) переменных?
  • Вложенные классы В этой главе уже несколько раз упоминалось, что в теле класса можно сделать описание другого, вложенного (nested) класса. А во вложенном классе можно снова описать вложенный, внутренний (inner) класс и т. д.
  • Отношения "быть частью" и "являться" Теперь у нас появились две различные иерархии классов. Одну иерархию образует наследование классов, другую — вложенность классов.

Пакеты и интерфейсы

  • Пакет и подпакет В стандартную библиотеку Java API входят сотни классов. Каждый программист в ходе работы добавляет к ним десятки своих. Множество классов становится необозримым. Уже давно принять классы объединять в библиотеки. Но библиотеки классов, кроме стандартной, не являются частью языка.
  • Права доступа к членам класса Пришло время подробно разобрать различные ограничения доступа к полям и методам класса.
  • Размещение пакетов по файлам То обстоятельство, что class-файлы, содержащие байт-коды классов, должны быть размещены по соответствующим каталогам, накладывает свои особенности на процесс компиляции и выполнения программы.
  • Java-файлы Дело в том, что компилятор будет искать классы только в -одном пакете, именно, в том, что указан в первой строке файла. Для классов из другого пакета надо указывать полные имена.
  • Интерфейсы Это называется множественным наследованием (multiple inheritance). В множественном наследовании нет ничего плохого. Трудности возникают, если классы вис сами порождены от одного класса А, как показано на рис. 3.4* в. Это так называемое "ромбовидное" наследование.
  • Design patterns В математике давно выработаны общие методы решения типовых задач. Доказательство теоремы начинается со слов: "Проведем доказательство от противного" или: "Докажем это методом математической индукции", и вы сразу представляете себе схему доказательства, его путь становится вам понятен.

Встроенные типы данных, операции над ними

Классы-оболочки Классы-коллекции

Классы-утилиты графический интерфейс

Основные компоненты Размещение компонентов

Изображения и звук Обработка исключительных ситуаций

Информатика Помехоустойчивые коды и их основные параметры Цифровые сети для передачи речи и данных