lk_oop-j_9-07.ppt
- Количество слайдов: 31
Лекция № 9 по дисциплине «Объектно-ориентированное программирование» на тему: Обзор технологии Java
Тенденции изучения языков программирования в университетах (данные Gartner) 55% 22% Java вместо Pascal (55%) Java вместо C++ (22%) While 22 per cent of the universities Gartner surveyed said they were going to abandon C++ for Java, a majority (55 per cent) said they were going to phase out Pascal in favour of Java. Source: Gartner
История языка Java. "Зеленый" проект. Sun Microsystems Патрик Ноутон - 1990 Green Project -1991 Oak (создатель - James Gosling) Oak переименовывается в Java – 1995
Выход в Internet Hot. Java (броузер П. Ноутона) - 1994 Первая презентация – 1995 JDK 1. 0 a 2 – март 1995 Корпорация Netscape стала первым коммерческим клиентом Java - 1995
Характеристики языка Java платформо-независимый интерпретируемый безопасный многопоточный высокоэффективный объектно-ориентированный
Пакеты Java Sun Microsystems предложила набор утилит для разработчика Java Developer's Kit (JDK). Набор содержит классы, интерфейсы, позволяющие быстро начать работу с языком Java Позднее JDK был переименован в SDK Software Developer's Kit. SDK 1. 3 – 2001 г. , SDK 1. 4 – 2002 г. SDK 1. 2 и выше носят название Java 2
Пакеты Java (продолжение) Начиная с версии SDK 1. 2, выделяются 3 пакета: Java 2 Platform Standart Edition (основные классы); Java 2 Platform Enterprise Edition (EJB); Java 2 Platform Micro Edition (классы, предназначенные для программирования бытовой техники и мобильных телефонов)
Пакет JDK предоставлен Sun для свободного использования. Пакет включает компоненты, образующие Java-среду: компилятор, интерпретатор, Appletviwer. JDK – минимально необходимый набор средств, нужных для работы с Java.
Типы программ Java апплеты (applets) Web-компоненты сервлеты серверные страницы JSP компоненты EJB Web-сервисы автономные приложения
Java Community Process (JCP) http: //www. jcp. org Исполнительный комитет по выработке рекомендаций и управлению развитием платформ технологии Java J 2 SE/EE – Sun Microsystems + 15 компаний (Intel, IBM, Oracle, Borland, Apple, SAP, Apache, Fujitsu, HP, Google и др. ) J 2 ME – Sun Microsystems + 15 компаний (Nokia, Siemens, Motorola, Samsung и др. )
Состав JDK
Основные пакеты J 2 SE java. applet java. awt java. io java. lang java. net java. nio java. security java. sql java. util javax. swing
Визуальные оболочки JBuilder 7. 0 (Borland) Visual Age 4. x (IBM) Visual Cafe 4. х (Win Gane) Net Beans Developer Eclipse
Среда разработки Eclipse open-source подсветка синтаксиса в редакторе http: //www. eclipse. org компиляция кода отладчик исходного кода файловый менеджер и менеджер проектов средства автоматической генерации кода поддержка тестирования с помощью JUnit возможность расширения (plugins)
Виртуальная машина Java Исходный код (*. java) Байт-код (*. class) Виртуальная машина Java Windows Linux Mac. OS Free. BSD
Функции виртуальной машины Java интерпретация байт-кода проверка ограничений безопасности при выполнении байт-кода автоматическая "сборка мусора" (garbage collection) обеспечение многопоточного выполнения
Сравнение Java и C++ Синтаксис языка Java максимально приближен к синтаксису С++. Управление памятью, сборка мусора Сборка мусора в фоновом режиме Встроенная синхронизация потоков
Свойства, присутствующие в С, C++ и удаленные из Java Конструкция typedef, препроцессор Struct, union Автономные функции Множественное наследование Goto Перегрузка операторов Указатели
Первая Java-программа public class Vanya { public static void main (String args[ ]) { System. out. println( "Hello Vanya !"); } }
Две группы типов данных в языке Java Базовые типы Ссылочные типы: массивы, классы и интерфейсы. Базовые типы: ü boolean ü byte ü short ü int ü long ü char ü float ü double
Преобразование типов Пример. int i=5; double d=7. 00; i=d; i=(int)d; Если в операции участвуют числа разного типа и длины, то необходимо выполнить преобразование типов.
Виды преобразования типов Существует два различных вида преобразований: а) явные (преднамеренно изменяется тип некоторой переменной); б) неявные преобразования, выполняющиеся, когда в выражении имеются величины различных типов, которые можно конвертировать. В языке Java неявные преобразования числовых типов выполняются только тогда, когда они не приводят к потере точности.
Неявные преобразования типов Для унарных операций (++, - - и др. ) операнды типа byte или short преобразуются в int, а другие типы остаются без изменений. Для бинарных операций: если в вычислениях участвуют только целые операнды, то когда один из них имеет тип long, другой тоже преобразуется в long; в противном случае оба операнда конвертируются в int. Правило неявного преобразования: не должно быть уменьшения длины типа.
Объявления массивов int a[]; // ссылка на массив Объявление массива и инициализация его элементов. int fib[ ]= {1, 1, 2, 3, 5}; Резервирование места для массива и определение его размера. int [] IQ = new int[500];
Работа с математическими функциями Стандартные математические функции в Java - методы специального объекта Math. Пример. int i=0; long[] rez; rez = new long[4]; double f[]={4. 5, 2. 01, 1. 99, 2. 6}; for(i=0; i<4; i++) { rez[i]=Math. round(f[i]); System. out. println(rez[i]); }
Объявление класса в языке Java имеет вид: модификаторы class Имя. Класса extends Имя. Супер. Класса implements Имя. Интерфейса Возможные модификаторы: public, final или friendly. Классы public доступны для всех объектов и классов. Классы public должны храниться в файлах с именем <Имя. Класса>. java Классы friendly Класс может расширяться и использоваться другими классами, однако он доступен только для объектов, находящихся в том же самом пакете. Классы final не могут иметь подклассов
Объявление метода в языке Java имеет вид: спецификатор_доступа модификатор возвращаемое_значение имя_метода (параметры) throws список_исключений Пример: public void init() Спецификаторы доступа метода: public Метод доступен для всех классов protected К protected-методам могут обращаться любые классы, находящиеся в том же самом пакете
Спецификаторы доступа метода friendly friendiy-методы доступны только из текущего класса и любых классов, порожденных от него private-метод доступен только методам того же класса
Модификаторы метода определяют свойства метода - его видимость и способы взаимодействия с подклассами. static Статические методы используются всеми объектами. Для вызова такого метода не нужен объект. abstract Абстрактные методы объявляются, но не реализуются в данном классе. Тело метода должно быть описано в подклассах текущего класса.
Модификаторы метода (продолжение) final Никакой подкласс текущего класса не сможет переопределить данный метод. synchronized Ключевое слово synchronized позволяет защитить данные, которые могут быть разрушены в том случае, если два метода пытаются одновременно обратиться к одним и тем же данным.
Пример метода public synchronized boolean Empty(int x, int y) { if (board[x][y] == 0) return true; return false; }
lk_oop-j_9-07.ppt