2-е изд., испр. и доп. — Казань: Школа, 2010. — 444 c.: ил. — ISBN
978-5-4233-0007-4.
Излагаются основные понятия и методика разработки
объектно-ориентированных программ на языках C++/CLI, C# и Java
(J#). Изложение сопровождается многочисленными примерами
законченных программ. Программы поясняются диаграммами языка UML.
Особое внимание акцентировано на наиболее сложных для понимания
делегатах, событиях, уведомлениях, потоках и их синхронизации.
Параллельное изложение схожих основных языковых конструкций
позволит лучше выявить не только близость и различие языков
C++/CLI, C# и Java, но и лучше понять особенности этих языков. Для
студентов и преподавателей вузов по направлению вычислительной
техники и информатики. Представляет интерес для всех,
знающих язык С и изучающих объектно-ориентированное программирование, а также для тех, кто, овладев языком С++, интересуется особенностями и отличиями программирования на языках C++/CLI, Java(J#) и C#. Предисловие
О языках С++, C++/CLI, Java, J# и C# 10
Основные понятия объектно-ориентированного программирования
Объекты
Классы
Объекты, классы и UML
Основные свойства объектно-ориентированного программирования
Библиотеки классов
Управляемый и неуправляемый код и данные
Виртуальная машина языка Java
Общеязыковая среда выполнения CLR платформы .NET
Управляемый и неуправляемый код и данные
Сборка мусора
Ссылочные типы и типы-значения
Метаданные
Библиотеки, пакеты и пространства имён
Некоторые особенности языков С++, C++/CLI и C#
0 типах данных
Консольный ввод и вывод
Объявление переменных
Операторы динамического распределения памяти new и delete
Массивы
Объявления структур и перечислений
Ссылки
Перегрузка функций
Объявление функций и передача аргументов по умолчанию
Передача аргументов функций в языках C++/CLI и C#
Классы
0пределениекласса
Подставляемые функции и оператор привязки языков С++ и C++/CLI
Некоторые замечания о классах
Объекты в объектах
Специальный вид функций класса - конструкторы и деструкторы
Статические функции класса
Наследование классов и интерфейсы
0б интерфейсах
Наследование неуправляемых классов в C++/CLI
Наследование управляемых классов в C++/CLI, C# и Java
Использование конструктора базового класса
Сокрытые переменные, функции и их использование
Интерфейсы
Определение интерфейса
Базовые интерфейсы
Упаковка и распаковка типов данных
Программа ввода-вывода информации
Постановка задачи
Диаграмма классов
Диаграмма последовательности
Диаграмма видов деятельности
Поэтапная разработка Inf-приложения на языке C++/CLI
Реализация Inf-приложения на языке C#
Управляемые данные и их использование
Свойства в языках C++/CLI, C# nJava
Делегаты языков C++/CLI и C#
События языков C++/CLI и C#
Уведомления и события в Java
Уведомления в Java
События в Java
Потоки и синхронизация их выполнения
Процессы
Потоки в C# и C++/CLI
Потоки в Java
Потоковый объект, выдающий событие
Поток получил событие из объекта
Синхронизация выполнения потоков
Операторы lock и synchronized
Связи между потоками
Связи между потоками в Java
Связи между потоками в С#
Связи между потоками в C++/CLI
Библиотека .NET Framework и библиотеки языка Java
Приложение
Классы, объекты и элементы приложения
Простейшие приложения
Сообщения Windows, собьггия и делегаты
Обработка событий мыши на языке C#
Обработка собьггий мыши на языке C++/CLI
Обработка событий мыши на языке Java с использованием предопределённого обработчика mouseDown
Связь собьггия с несколькими объектами на языке C#
Ещё раз о событиях и уведомлении в языке Java
Обработка собьггий элементов интерфейса пользователя в языке Java
Обработка событий мыши на языке Java, используя интерфейс MouseListener
Обработка событий мыши на языке Java, используя классы адаптеров
Обработка событий мыши на языке Java, используя внутренние классы адаптеров и анонимные классы
Обработка события закрытия окна
Графика
Графические объекты
Co6ытие Paint и его обработка
Управляющие элементы
Дочерние окна
Исключения
Разработка программы LorryEndWarehouse
Программа с точки зрения пользователя
Объектное представление программы
События, потоки и их синхронизация
Поэтапная разработка программы
Первый этап. Разработка класса Warehouse
Второй этап. Разработка классов ContrlRegion и Lorry
Третий этап. Разработкаприложения csLorryAndWarehouse
Четвертый этап. Удаление ресурса
Зачетные задачи
Ещё о важном в объектно-ориентированном программировании на С++, C# и J# (Java)
Виртуальные функции
Преобразование типов
Виртуальные функции
Виртуальные функции, используемые в книге
Абстрактные классы и функции
Абстрактные функции
Абстрактные классы
Нововведения в языке C#
Делегаты и события
Статические классы
Заключение
Список литературы
Приложения
cjLorryAndWarehouse -приложение на языке Java
csLorryAndWarehouse -приложение на языке C#
Использование сред разработки программ
Перечень примеров
Предметный указатель 431
знающих язык С и изучающих объектно-ориентированное программирование, а также для тех, кто, овладев языком С++, интересуется особенностями и отличиями программирования на языках C++/CLI, Java(J#) и C#. Предисловие
О языках С++, C++/CLI, Java, J# и C# 10
Основные понятия объектно-ориентированного программирования
Объекты
Классы
Объекты, классы и UML
Основные свойства объектно-ориентированного программирования
Библиотеки классов
Управляемый и неуправляемый код и данные
Виртуальная машина языка Java
Общеязыковая среда выполнения CLR платформы .NET
Управляемый и неуправляемый код и данные
Сборка мусора
Ссылочные типы и типы-значения
Метаданные
Библиотеки, пакеты и пространства имён
Некоторые особенности языков С++, C++/CLI и C#
0 типах данных
Консольный ввод и вывод
Объявление переменных
Операторы динамического распределения памяти new и delete
Массивы
Объявления структур и перечислений
Ссылки
Перегрузка функций
Объявление функций и передача аргументов по умолчанию
Передача аргументов функций в языках C++/CLI и C#
Классы
0пределениекласса
Подставляемые функции и оператор привязки языков С++ и C++/CLI
Некоторые замечания о классах
Объекты в объектах
Специальный вид функций класса - конструкторы и деструкторы
Статические функции класса
Наследование классов и интерфейсы
0б интерфейсах
Наследование неуправляемых классов в C++/CLI
Наследование управляемых классов в C++/CLI, C# и Java
Использование конструктора базового класса
Сокрытые переменные, функции и их использование
Интерфейсы
Определение интерфейса
Базовые интерфейсы
Упаковка и распаковка типов данных
Программа ввода-вывода информации
Постановка задачи
Диаграмма классов
Диаграмма последовательности
Диаграмма видов деятельности
Поэтапная разработка Inf-приложения на языке C++/CLI
Реализация Inf-приложения на языке C#
Управляемые данные и их использование
Свойства в языках C++/CLI, C# nJava
Делегаты языков C++/CLI и C#
События языков C++/CLI и C#
Уведомления и события в Java
Уведомления в Java
События в Java
Потоки и синхронизация их выполнения
Процессы
Потоки в C# и C++/CLI
Потоки в Java
Потоковый объект, выдающий событие
Поток получил событие из объекта
Синхронизация выполнения потоков
Операторы lock и synchronized
Связи между потоками
Связи между потоками в Java
Связи между потоками в С#
Связи между потоками в C++/CLI
Библиотека .NET Framework и библиотеки языка Java
Приложение
Классы, объекты и элементы приложения
Простейшие приложения
Сообщения Windows, собьггия и делегаты
Обработка событий мыши на языке C#
Обработка собьггий мыши на языке C++/CLI
Обработка событий мыши на языке Java с использованием предопределённого обработчика mouseDown
Связь собьггия с несколькими объектами на языке C#
Ещё раз о событиях и уведомлении в языке Java
Обработка собьггий элементов интерфейса пользователя в языке Java
Обработка событий мыши на языке Java, используя интерфейс MouseListener
Обработка событий мыши на языке Java, используя классы адаптеров
Обработка событий мыши на языке Java, используя внутренние классы адаптеров и анонимные классы
Обработка события закрытия окна
Графика
Графические объекты
Co6ытие Paint и его обработка
Управляющие элементы
Дочерние окна
Исключения
Разработка программы LorryEndWarehouse
Программа с точки зрения пользователя
Объектное представление программы
События, потоки и их синхронизация
Поэтапная разработка программы
Первый этап. Разработка класса Warehouse
Второй этап. Разработка классов ContrlRegion и Lorry
Третий этап. Разработкаприложения csLorryAndWarehouse
Четвертый этап. Удаление ресурса
Зачетные задачи
Ещё о важном в объектно-ориентированном программировании на С++, C# и J# (Java)
Виртуальные функции
Преобразование типов
Виртуальные функции
Виртуальные функции, используемые в книге
Абстрактные классы и функции
Абстрактные функции
Абстрактные классы
Нововведения в языке C#
Делегаты и события
Статические классы
Заключение
Список литературы
Приложения
cjLorryAndWarehouse -приложение на языке Java
csLorryAndWarehouse -приложение на языке C#
Использование сред разработки программ
Перечень примеров
Предметный указатель 431