- •2. Основные понятия объектно-ориентированного программирования 7
- •3. Управляемый и неуправляемый код и данные 17
- •3.3 Управляемый и неуправляемый код и данные 17
- •5. Классы 38
- •6. Наследование классов и интерфейсы 49
- •7. Программа ввода/вывода информации 62
- •8. Управляемые данные и их использование 76
- •Предисловие
- •2.1 Объекты
- •2.Основные понятия объектно-ориентированного программирования
- •2.2Классы
- •Пример 2.2.2. Создание и использование объектов.
- •2.3Объекты, классы и uml
- •2.4Основные свойства объектно-ориентированного программирования
- •Пример 2.4.1. Класс cColBall, наследуемый класс cBall.
- •Пример 2.4.2. Использование функций объектов.
- •2.5Библиотеки классов
- •3.Управляемый и неуправляемый код и данные
- •3.1Виртуальная машина языка Java
- •3.2Общеязыковая среда выполнения clr платформы .Net
- •3.3Управляемый и неуправляемый код и данные
- •3.4Сборщик мусора
- •3.5Ссылочные типы и типы-значения
- •3.6Метаданные
- •3.7Библиотеки, пакеты и пространства имён
- •4.1О типах данных
- •4.2Консольный ввод и вывод
- •Void main (void)
- •Import java.Io.*;
- •Int X; // Целочисленная переменная X
- •4.3Объявление переменных
- •4.4Операторы динамического распределения памяти new и delete
- •Int X; // Выделить память в стеке
- •Пример 4.4.2. Использование оператора new в языках Java и c#.
- •Import java.Io.*;
- •Int X; // Выделить память в стеке для переменной
- •Int X; // Выделить память в стеке для переменной
- •4.5 Массивы
- •Пример 4.5.2. Описание одномерных массивов на изыках Java и c#.
- •Пример 4.5.4. Создание массивов объектов на языке Java.
- •Import java.Io.*;
- •4.6Объявления структур и перечислений
- •4.7Ссылки
- •Пример 4.7.1. Использование ссылочной переменной.
- •Void main()
- •4.8Перегрузка функций
- •Пример 4.8.1. Перегруженные функции swap (int &, int &) и swap (bool &,bool &).
- •Void swap (int &a, int &b) // Целочисленные параметры
- •Void swap (bool &a, bool &b) // Булевские параметры
- •4.9Объявление функций и передача аргументов по умолчанию
- •Void swap (int &, int &);
- •Void swap (char 8t, char &);
- •Пример 4.9.1. Задание значений параметров функции по умолчанию.
- •Void main ( )
- •5.Классы
- •5.1Определение класса
- •Пример 5.1.1. Описание класса и создание его объектов.
- •Int X; // Закрытая переменная X
- •Void Show ( ) // Открытая функция
- •Int X; // Закрытая (по умолчанию) переменная X
- •Void Show ( ) // Открытая функция
- •Пример 5.2.1. Описание функций вне класса.
- •Int X; //Закрытая переменная х
- •Void Set(int m,char n); // 0бъявление функции Set
- •Void Show (); // Объявление функции Show()
- •5.3Некоторые замечания о классах
- •Пример 5.3.1. Области видимости.
- •Int GetK() {return k;} // Функция GetK() видна в файле, классе а и в
- •Int n; // Переменная n закрыта и видна только в классе а
- •Int GetM () {return n;} // Функция GetM() открыта и видна
- •5.4Объекты в объектах
- •Пример 5.4.1. Объект содержит объект другого класса.
- •Void Show ()
- •Void Show ()
- •5.5Специальный вид функций класса - конструкторы и деструкторы
- •Пример 5.5.1. Перегруженные конструкторы.
- •Int GetX() {return X;} // Возвратить значение закрытой переменной
- •Void ShowX () // Вывести значение переменной
- •5.6Статические функции класса
- •Пример 5.6.1. Статические функции.
- •Void f() {Console::WriteLine("f()");} // Обычная функция
- •Int main() // Главная статическая функция Main()
- •6.Наследование классов и интерфейсы
- •6.1Об интерфейсах
- •Пример 6.2.1. Программа, использующая порождение public.
- •Void Show ()
- •Void Show()
- •Int main() // Главная статическая функция
- •6.4Использование конструктора базового класса
- •Java и j#
- •Java и j#
- •Пример 6.4.1. Выполнение конструкторов.
- •Int X; // Закрытая переменная X
- •Int Get() {return X;} // Получить значение X
- •Int main() // Главная статическая функция main()
- •6.5Сокрытые переменные, функции и их использование
- •Пример 6.5.1. Сокрытые переменные и функции.
- •6.6Интерфейсы
- •Interface class имя-интерф [ : public имя-базов-интерф
- •Interface имя-интерф [ : имя-базов-интерф [, имя-базов-интерф ] ... ]
- •Interface имя-интерф [ extends имя-базов-интерф
- •Interface Ipe // Интерфейс, объявляющий свойство p и функцию Hallo
- •Int p {set; get;} //Объявить свойство
- •Void Hallo(); // Объявить функцию
- •6.6.1Определение интерфейса
- •6.6.2Базовые интерфейсы
- •6.7 Упаковка и распаковка типов данных
- •Int main() // Главная статическая функция main()
- •7.Программа ввода/вывода информации
- •7.1Постановка задачи
- •Диаграмма вариантов использования
- •7.2 Диаграмма классов
- •7.3Диаграмма последовательности
- •7.4Диаграмма видов деятельности
- •Пример 7.5.1. Реализация класса cComputer.
- •Пример 7.5.2. Реализация класса cShop.
- •Пример 7.5.3. Реализация класса cData.
- •Void main()
- •Пример 7.5.4. Реализация Inf-приложения.
- •Void main()
- •7.6Реализация Inf-приложения иа языке c# Пример 7.6.1. Реализация Inf-приложения иа языке c#.
- •Int cost; // Стоимость компьютера
- •Int year; // Год изготовления
- •Inf.Enter();
- •Inf.Enter();
- •Inf.Show();
- •8.Управляемые данные и их использование
- •Void set(тип value)
- •Пример 8.1.2. Свойства в Java.
- •Import java.Io.*;
- •Пример 8.2.1. Создание и использование делегата.
- •Void main() // Главная функция программы
- •Пример 8.2.2. Использование делегата как параметра функции.
- •Void r(void) {Console::WriteLine ("r");}
- •Void main () // Главная функция программы
- •Void имя-функции ( void );
- •Пример 8.3.1. Событие и делегат.
- •Void main ()
- •Vold имя-функции-активизации()
- •Пример 8.3.2. Использование события.
- •Void GenerateEv() // Функция-генератор события
- •Void main()
- •Void GenerateEv (String л str) // Функция- генератор события
- •Void main ( )
- •06BeKTfirst клaccaUseEvпoлyчилcoбытиe one
- •Interface iEv
- •IE,HandlerEv (); // Выполнить обработчик
- •Void GenerateEv ( ) // Сгенерировать событие
- •Void main (void)
- •V{ oid FireConnectEvent (object sender, SourceEventArgs e)
- •Void FireConnectEvent (object sender, EventArgs args)
- •8.4. Уведомления и события в Java
- •8.4.1. Уведомления в Java
- •Void notifyObservers () - уведомить всех обозревателей данного наблюдаемого
- •Void notifyObservers (Object obj) - уведомить всех обозревателей данного на-
- •Void update(Observable observable. Object obj) - эта функция данного объекта
- •Import java.Util.*;
- •II Два наблюдателя и один наблюдаемый объект
- •Importjava.Util.*;
- •Importjava.Utll,*;
- •Importjava.Util.*;
- •Int num; // Номер уведомляющего объекта
- •8.4.2. События в Java
- •Import java.Utii.*;
- •Void DatePerformed (DataDate dd); // Обработчик
- •Int n; // Номер объекта-приёмника
- •Int num; // Номер объекта приёмника
- •Import cJHappenListerner.*;
- •Importjava.Uti).*;
- •Void performedHappen (HappenData hD);
- •Import cJHappenListerner.*; | | Импортировать библиотеку
- •9. Потоки и синхронизация их выполнения
- •9.1. Процессы
- •9.3. Потоки в Java
- •Int num; // Номер потокового объекта
- •2. Поскольку объявленному в классе cThread потоковому объекту thr типа
- •9.4. Потоковый объект, выдающий событие
- •If (lllfe) // Если потоковый объект не функционирует,
- •ImportJava,util.*;
- •If (!life) // Если потоковый объект не функционирует,
- •9.5. Поток получил событие из объекта
- •If (!life)
- •If (received)
- •Importjava.Utll.*;
- •If (lllfe)
- •If (received)
- •9.6. Синхронизация выполнения потоков
- •9.6.1. Операторы lock и synchronized
- •Int num; // Номер объекта
- •9.6.2. Связи между потоками
- •9.6.2.1. Связи меяеду потоками в Java
- •If(waiting)
- •9.6.2.2. Связи между потоками в c#
- •If (I moving)
- •9.6.2.1.1 Наязыке Java, отличаясьтолько применением функций монитора
- •10. Библиотека .Net Framework и библиотеки
- •10.1. Приложение
- •10.2. Классы, объекты и элементы приложения
- •Visual Studio .Net как библиотеки .Net Framework, так и пакетов языка Java
- •10.3. Простейшие приложения
- •Import java.Awt.*;
- •Void main ( )
- •10.3.1.1. Оказывается, класс Form сам наследует множество других классов,
- •10.4. Сообщения Windows, события и делегаты
- •X0.4.1. Обработка событий мыши на языке c#
- •Void OurMouseDown (object sender, MouseEventArgs args);
- •Vold maln ()
- •10.4.3. Обработка событий мыши на языке Java с использо-
- •10.4.4. Связь события с несколькими объектами на языке c#
- •10.5. Ещё раз о событиях и уведомлении в языке Java
- •10.5.1. Обработка событий элементов интерфейса пользовате-
- •ItemListener, KeyListener, MouseListener, MouseMotionListener, TextListener
- •10.5.2. Обработка событий мыши на языке Java, используя
- •Importjava.Awt.Event.*;
- •Importjava.Awt.*;
- •Import java.Awt.Event.*;
- •Importjava.Awt.*;
- •Import java.Awt.Event.*;
- •10.5.3. Обработка событий мыши на языке Java, используя классы адап-
- •Importjava.Awt.*;
- •Importjava.Awt.Event.*;
- •Importjava.Awt.*;
- •Importjava.Awt.Event.*;
- •10.5.4. Обработка событий мыши на языке Java, используя внутренние
- •Import java.Awt.*;
- •Import java.Awt.Event.*;
- •Importjava.Awt.*;
- •Import java.Awt.Event.*;
- •10.5.5. Обработка события закрытия окна
- •Import java.Awt.*;
- •Import java.Awt.Event.*;
- •10.6. Графика
- •10.6.1. Графические объекты
- •15, 15, 60, 70); // Нарисовать эллипс
- •Vold maln ()
- •10.7. Событие Paint и его обработчик
- •Int len; // Текущая длина массива points
- •Void OurMouseDown (object sender, MouseEventArgs arg)
- •Invalidate ( ); // Перерисовать
- •Int len; // Текущая длина массива points
- •Import java.Awt.Event.*;
- •10.8. Управляющие элементы
- •1 «Button j 1
- •Import java.Awt,event.*;
- •Int n; // Индекс цвета
- •10.8.4,10.8.5 И 10.8.6, а также программа, поэтапно разрабатываемая в разде-
- •Invalidate ();
- •Importjava.Awt.*;
- •Import java.Awt.Event.*;
- •Importjava.Util.*;
- •10.9. Дочерние окна
- •Int n; // Индекс массива colors
- •IiTipOrt jav'a.Avvt. •)
- •Import java.Awt.Event.*;
- •Int n; // Индекс цвета
- •Virtual void OnPaint (PaintEventArgs л arg) override // Перерисовать область
- •10.10.3, В котором вызываются две функции.
- •Importjava.Awt.*;
- •Importjava.Awt.Event.*;
- •It); // Подписать обработчик
- •Void main ( )
- •11.1. Программа с точки зрения пользователя
- •11.2. Объектное представление программы
- •11.3. События, потоки и их синхронизация
- •11.4. Поэтапная разработка программы
- •11.4.1. Первый этап. Разработка класса Warehouse
- •4Cxrt()
- •Int partLoad; // Выгружаемая или загружаемая порция
- •If(full) return false; // Полный грузовик не загружать
- •Invalidate ();
- •Importjava.Awt.*;
- •Importjava,utll.*;
- •Void notifyObs (WarehouseEventArgs arg)
- •Int partLoad; // Получаемая или помещаемая порция груза
- •If (full) return false;
- •If(full) return false; // Полный грузовик не загружать
- •Void Change ( )
- •Invalidate ();
- •Importjava.Awt.*;
- •Importjava.Util.*;
- •Import cjWarehouse.*
- •11.4.2. Второй этап. Разработка классов ContrlRegion и Lorry
- •11.4.2.1, А сам класс представлен в примере 11.4.2.1. Класс ContrlRegion язы-
- •Importjava.Awt.Event.*;
- •Void Work ( ) // Выполнить работу
- •Int number;
- •Int number;
- •Int timePeriod;
- •Int y; // Координата y пути грузовика
- •Invalidate ();
- •11.4.3. Третий этап. Разработка приложения csLorryAndWarehouse
- •4IorryAndWa rho uses()
- •4Main()
- •Int y; // Координата y пути грузовика
- •Invalidate ( );
- •If(lorry.GetFull())
- •If(lorry.GetLeftRight()) g.SetColor(Color.Red);
- •Int numLorry; // Номер грузовика
- •Void But_Run (Object Ло, EventArgs ле)
- •Void main ( )
- •11.4.4. Четвертый этап. Удаление ресурса
- •Int number;
- •If(!lorry.Running)lorry.Run ( );
- •12. Зачетные задачи
- •12.1. Задание 1
- •Importjava.Awt.*;
- •Import Java.Awt.Event.*;
- •Importjava.Util.*;
- •12.2. Задание 2
- •Importjava.Awt.*;
- •Importjava.Awt.Event,*;
- •Importjava.Util.*;
- •Invalidate ( );
- •12.3. Задание 3
- •Importjava.Awt.*;
- •Import java.Awt.Event.*;
- •Importjava.Util.*;
- •If(bool) Start ();
- •If(lrunnlng)
- •Void BallFunc ()
- •Void ThrFunc ( )
- •Vold OnButAdd (object obj, EventArgs arg)
- •Void HandlerEv ( )
- •Invalidate ( );
- •12.4. Задание 4
- •If(reg.R.Contains(p) && !inRect)
- •If(!reg.R,Contains(p) && lnRect)
- •Void OnButAdd (object obj, EventArgs arg)
- •Void HandlerEv ( )
- •Invalidate ();
- •Importjava.Awt.*;
- •Importjava.Awt.Event.*;
- •Importjava.Utll.*;
- •Int w, int h, Color c, Wind wind)
- •If(reg.R.Contains(p) && !lnRect)
- •If(!reg.R.Contains(p) && inRect)
- •If(d.GetDel())
- •13. Ещё о важном в объектно-ориентирован-
- •13.1. Виртуальные функции
- •13.1.1. Преобразование типов
- •Void f ( ) {cout « "ca:: f" « endl;}
- •Void main ( )
- •Void f ()
- •Void main ( )
- •Vold f ( )
- •Vold Do (ca* pCa)
- •Void main ( )
- •13.1.2, Виртуальные функции
- •Virtual void f ( ) {Console::WriteLine ("a:: f");}
- •Void f ( ) {Console::WriteLine ("b:: f");}
- •Void f ( ) {Console::WrlteLlne ("c:: f");}
- •Vold f ( ) {Console::WrlteLlne("b:: f");}
- •Vold Do (a* pA)
- •Void main ()
- •13.1.3. Виртуальные функции, используемые в книге
- •13.2. Абстрактные классы и функции
- •13.2.1. Абстрактные функции
- •13.2.2. Абстрактные классы
- •Void f ( ) {Console::WriteLine ("b:: f");}
- •Vold f ( ) {Console::WriteLine ("d:: f");}
- •Vold main ( )
- •13.2. Нововведения в языке c#
- •13.2.1.Делегаты и события
- •Iorry.Run ( );
- •13.3.2. Статические классы
- •Int partLoad; // Выгружаемая или загружаемая порция
- •If(!full)
- •Invalidate ( );
- •Int number;
- •Int y; // Координата y пути грузовика
- •Iorry.Stop ();
- •If(llorry.Running)lorry.Run ( );
- •Invalidate ( );
- •1) Создать новый проект:
- •Value 28, 30
- •Value type 34
- •Visual Studio .Net и Edipse.
- •420111, Казань, Дзержинского, 3. Тел.: 292-24-76.
Value 28, 30
Value type 34
wait() 188, 195
Wait() 198
Warehouse 281
Width 232
WindowAdapter 224,229, 244
windowClosed() 220, 244
windowClosing() 220, 229
WindowEvent 220,244
WindowListener 221,224
WindowOpened 221
Write () 35
WriteLine () 16,35
абстрактный класс 379
абстрактная функция 379
актант 94
актёр 94
аргумент по умолчанию 56
базовый интерфейс 89
базовый класс 76, 79
байт-код 27, 28
библиотека классов 25, 32
ввод-вывод консольный 35
виртуальная машина 27
декомпозиция 14
делегат 114,385
дескриптор 30, 34, 40
деструктор 29, 69
диаграмма вариантов 19 , 93, 278
диаграмма видов деятельности 19, 97
диаграмма классов 19, 25, 94
диаграмма объектов 280
диаграмма последовательности 19,
96
диаграммы UML 19
доступ
- private 15, 60
- protected 15,60, 76
-public 15, 60
дочернее окно 206
издатель 126
инициализация массива 46
инкапсуляция 20
интерфейс 15, 75, 86
интерфейсный элемент 206
исключение 101,268
источник 126
кисть 235
класс 10, 15,60
класс абстрактный 379
класс-оболочка 34
класс статический 387
кнопка 246
комментарий 36
консольный в/в 35
конструктор 69, 80
куча неуправляемая 28, 34
куча управляемая 34
массив 45
метаданные 32
монитор 162,198, 203
мнэтекс 162
наблюдаемый объект 142
наследование 20,21,75,76,79
неуправляемый код 28
неуправляемая куча 28,34
неуправляемый тип 30
область видимости 65
область клиента 206
обозреватель 142
обработчик 122
обработчиксобытия 126
объект 13,60
объект потоковый 162
объект наблюдаемый 142
объявление переменных 39
объявления структур 53
объявление функций 56
окно 160
окно. Закрьггие окна на Java 229
оператор delete 40
оператор gcnew 40
оператор new 40
описание класса 60
оператор привязки 64
пакет 32
перегрузка функций 55
передача аргументов в функции 56,
57
перо 234
поведение объекгга 13,60
подписчик 126
подставляемая функция 64
полиморфизм 24
поток 160
- основной 160
- рабочий 160
порождение классов 75
поэтапная разработка 98
предопределённое событие 211
предопределённый делегат 211
преобразование типа 38,39
приёмник 126
прикладное окно 206
приложение 206
приостановка потока в Java 196
прокси 28,35
промежуточный язык 28
пространство имён 32
процесс 160
прямоугольник 232
редактор текстовый 246
ресурс 330
сборщик мусора 29,41
свойства 110
синхронизация потоков 188
событие 122,127,149,285
сокрытие переменных и функций 84
состояние объекта 13,60
списокпорождения 73
ссылки 18,29,54
ссылочный тип 29
статические функции 72
стекЗО
структура 53
таблица доступа 76
текстовый редактор 236
тип данных 34
тип-значение 29
тип ссылочный 34
точка231
уведомление 142,187
удаление ресурса 331
указатель 18,30,34,40
упаковкаданных 89
управляемые данные 110
управляемый код 28
управляемая куча 28,34,40
управляемый тип 30
управляемое расширение 28
управляющие элементы 206,246
форма 206
фрейм 206
функция абстрактная 379
функция виртуальная 366
функция перегруженная 55
функция подставляемая 64
функция потоковая 161
функция статическая 72
цвет 233
шрифт 236
элемент 206
экземпляр класса 13
В серии "Современная прикладная математика
информатика" вышли книги:
Моисеев B.C., Козар A.H. Основы теории применения управляемы
артиллерийских снарядов. - Казань: изд-во КВАКУ, 2004.
Рассмотрена теория применения управляемых артиллерийски
снарядов, даны модели и методы их оптимального планирования. Особс
внимание уделяется методам преодоления управляемыми артиллерийским
снарядами зон активной защиты целей и планированию одновременного удар
по цели несколькими управляемыми артиллерийскими снарядами.
Книга может быть полезна как для слушателей и курсантов высши
военных учебных заведений, так и для работников научно-исследовательски
институтов.
Медведев В.И. Программирование на С++, C++.NET и C#. - Казаш
Мастер Лайн, 2005.
Излагаются основные понятия и методика разработки объектн<
ориентированных программ на языках С++, C++.NET и C# с использование
библиотеки классов Framework .NET платформы. Особое внимание уделен
разработке Windows приложений из потоковых объектов и компонентов.
Монография предназначена для студентов вузов по направленш
вычислительная техника и информатика, а также для всех, владеющих языко
программирования С и желающих освоить .NET технологш
программирования.
Зайдуллин C.C., Моисеев B.C. Математические модели и метод|
управления территориально распределёнными системами. - Казаш
Мастер Лайн, 2005.
Рассмотрены теоретические основы управления сложным
территориально распределёнными организационно-техническими системам!
Решение задач анализа, синтеза и управления такими системами выполняете
на основе специальных прикладных информационных технологий.
Монография предназначена для широкого круга инженерж
технических работников, занимающихся вопросами разработк
территориально распределённых систем.
Медведев В.И. Разработка компонентов и контейнеров на C++.NET и G
- Казань: Мастер Лайн, 2005.
Углублённо рассмотрено построение компонентов, контейнеров
объединение компонентов в контейнере с предоставлением сервисных услу
на базе библиотеки классов .NET Framework.
Монография имеет практическую направленность и предназначена дл
всех, владеющих объектно-ориентированным программированием на языка
C++.NET и C# и желающих освоить программирование .NET компонентов.
Рахматуллин А.И., Моисеев B.C. Математические модели и методы
оптимизации нестационарных систем обслуживания. - Казань: РИЦ
«Школа», 2006.
Рассмотрены теоретические основы оптимизации и адаптивного
управления процессами обслуживания в сложных информационных и
организационно-технических системах. Применение разработанных
математических моделей, методов и алгоритмов иллюстрируется на
практических задачах оптимизации и адаптивного управления
функционированием систем обслуживания.
Монография предназначена для широкого круга инженерно-
технических работников, занимающихся вопросами исследования и
оптимизации нестационарных процессов в сложных системах различного
назначения.
Медведев В.И. .NET компоненты, контейнеры и удаленные объекты. -
Казань: РИЦ «Школа», 2006.
Книга посвящена компонентам - основным программным единицам
при построении Windows-приложений в .NET технологии. Кроме
компонентов и контейнеров, объединяющих компоненты в коллекции,
значительное внимание уделено удалённым объектам и событиям, а также
разработке использующих их распределённых приложений.
Для студентов и преподавателей вузов по направлению
вычислительной техники и информатики. Представляет интерес для всех,
знающих основы языков C++.NET и C# и желающих овладеть технологией
создания и использования .NET компонентов для распределённых Windows
приложений.
Козар A.H., Борзов Г.Б., Рахматуллин АИ., Сотников СВ. Информатика
ракетных войск и артиллерии. - Казань: «Отечество», 2006.
Работа посвящена применению современных программных оболочек
типа Delphy для создания информационных технологий управления для
создания информационных технологий управления действиями ракетных
войск и артиллерии тактического звена.
Габитов Р.И., Емалетдинова Л.Ю. Модели и методы разработки
автоматизированных систем организационного управления:
Монография. - Казань: РИЦ «Школа», 2007.
В монографии рассмотрены теоретические основы проектирования
унифицированного программного обеспечения автоматизированных систем
организационного управления технологическими процессами деятельности
специалистов, а также оптимизационные модели, методы и алгоритмы,
обеспечивающие эффективное функционирование проектируемой
распределенной системы.
Монография предназначена для широкого круга инженерн(
технических работников, занимающихся вопросами разработк
автоматизированных систем организационного управления.
Валеев М.Ф., Емалетдинова Л.Ю. Автоматизаци
организационного управления технологическими процессам
налогообложения граждан: Монография. - Казань: РИЦ «Школа», 2007.
В монографии рассмотрены теоретические основы проектировани
программного обеспечения автоматизированных систем организационног
управления технологическими процессами налогообложения граждан,
также предлагается методика краткосрочного прогнозирования доходо
граждан на основе автоматизированного построения моделей временны
рядов.
Монография предназначена для широкого круга инженернс
технических работников, занимающихся вопросами разработк
автоматизированных систем организационного упроавления.
Медведев В.И. Особенности объектно-ориентированног
программирования на C++/CLI, C# и Java. - Казань: РИЦ «Школа», 2008.
Параллельно излагаются основные понятия и методика разработк
объектно-ориентированных программ на языках C++/CLI, C# и Java (J#
выявляющие не только близость и различие этих языков, но позволяющи
лучше понять их особенности. Используются среды разработки програм)
