
lection1.pptx
- Количество слайдов: 33
Программирование на Java Лекция 1. Введение в Java.
Сравнение языков программирования C++ и Java Переносимость на уровне исходного Переносимость на уровне байт-кода. Принцип: Write once compile Принцип: Write once run anywhere / anywhere (WOCA). everywhere (WORA / WORE). Разрабатывался для системного программирования. Возможно использование процедурного и объектноориентированного программирования. Явное управление памятью, поддержка указателей. Разрабатывался для прикладного программирования в неоднородных компьютерных сетях и программирования бытовых электронных устройств. Полностью объектноориентированный язык. Отсутствие указателей, не допускается прямое обращение к памяти.
Сравнение языков программирования C++ и Java Отсутствие контроля границ массивов. Программа сама управляет выделением и освобождением памяти. Поддержка множественного наследования. Отсутствует стандартный механизм документирования исходного кода. Поддержка оператора goto. Нестрогий контроль типов. Контроль границ массивов. Автоматическая сборка мусора. Множественное наследование реализовано с помощью интерфейсов. Документирование с помощью Javadoc. Отсутствие оператора goto. Поддержка меток в циклах. Строгий контроль типов.
Компиляция программ C++ *. c, *. cpp, *. h (файлы исходного кода) *. obj (объектные файлы) Исполняемый модуль Java *. java (файлы исходного кода) *. class *. jar (архив Jar)
Выполнение программ C++ Java Исполняемый модуль (имеет формат, поддерживаемый требуемой операционной системой, и содержит инструкции требуемой архитектуры процессора) Архив Jar или файл *. class (содержит платформеннонезависимый байт-код) Операционная система JVM (Java Virtual Machine) – Виртуальная машина Java. (преобразует байт-код в инструкции целевого процессора во время выполнения, Ji. T (Just in Time) –компиляция) Операционная система
Необходимое программное обеспечение • • JDK (Java Development Kit) – набор инструментов разработки на языке Java (включён в Mac OS X, для Windows требуется скачать с сайта http: //www. oracle. com/technetwork/javase/downlo ads/index. html) Интегрированная среда разработки (IDE, Integrated development environment).
IDE В настоящее время существует несколько свободно распространяемых сред разработки на Java: • Net. Beans (http: //netbeans. org/) • Eclipse (http: //www. eclipse. org/) • JDeveloper (http: //www. oracle. com/technetwork/developertools/jdev/overview/index. html) А также, коммерческие IDE, такие как: • Intelli. J IDEA (http: //www. jetbrains. com/idea/) • JBuilder (http: //www. embarcadero. com/products/jbuilder)
Создание проекта на Java в среде Net. Beans
Первая программа import java. io. *; public class Main { public static void main(String[] args) throws IOException { double a, b, c, d; Buffered. Reader in = new Buffered. Reader( new Input. Stream. Reader(System. in)); System. out. print("Введите коэффициент a: "); a = Double. parse. Double(in. read. Line()); System. out. print("Введите коэффициент b: "); b = Double. parse. Double(in. read. Line()); System. out. print("Введите коэффициент c: "); c = Double. parse. Double(in. read. Line()); if ((d = b * b - 4 * a * c) < 0) { d = 0. 5 * Math. sqrt(-d) / a; a = -0. 5 * b / a; System. out. printf("x 1 = %. 2 f - i%. 2 fnx 2 = %. 2 f + "i%. 2 fn", a, d); } else { d = 0. 5 * Math. sqrt(d) / a; a = -0. 5 * b / a; System. out. printf("x 1 = %. 2 fnx 2 = %. 2 fn", a - d, a + d); } } }
Целочисленные типы данных Тип long int short byte Оболочеч Ширина (в Область допустимых значений ный класс битах) Long 64 -9223372036854775808. . 9223372036854775807 Integer 32 -2147483648. . 2147483647 Short 16 -32768. . 32767 Byte 8 -128. . 127
Операторы для работы с целочисленными данными Оператор + * / % = ++ -+= -= *= /= %= Назначение Сложение Вычитание Умножение Целочисленное деление Остаток от деления Присваивание Инкремент Декремент Сложение с присваиванием Вычитание с присваиванием Умножение с присваиванием Целочисленное деление с присваиванием Остаток от деления с присваиванием Пример a+b a-b a*b a/b a%b a=b a++, ++a a--, --a a+=b a-=b a*=b a/=b a%=b
Вещественные типы Имя Оболочеч Ширина (в Область допустимых ный класс битах) значений по модулю double Double 64 4. 9 e-324. . 1. 8 e+308 float Float 32 1. 4 e-045. . 3. 4 e+038
Операторы для работы с вещественными типами Оператор + * / % = ++ -+= -= *= /= %= Назначение Сложение Вычитание Умножение Деление Остаток от деления Присваивание Инкремент Декремент Сложение с присваиванием Вычитание с присваиванием Умножение с присваиванием Деление с присваиванием Остаток от деления с Пример a+b a-b a*b a/b a%b a=b a++, ++a a--, --a a+=b a-=b a*=b a/=b a%=b
Символьный тип Имя char Оболочечный Ширина (в класс битах) Character 16 Область допустимых значений u 0000. . u. FFFF Примеры символьных констант Запись Непосредственно символ Значение символа в восьмеричной форме Значение символа в шестнадцатеричной форме Пример ‘a’ ‘141’ ‘u 0061’
Логический тип Имя Оболочечный Область допустимых значений класс boolean Boolean true, false Логические операторы Оператор && || ! Назначение Логическое ИЛИ Логическое НЕ Пример a&&b a||b !a
Операторы сравнения Оператор == != > < >= <= Назначение Равно Не равно Больше Меньше Больше или равно Меньше или равно Пример a==b a!=b a>b a=b a<=b
Комментарии • Однострочный комментарий открывается двумя прямыми слешами //. Всё, что стоит правее этих символов является комментарием и игнорируется компилятором. Пример: // Это комментарий • Многострочный комментарий заключается в скобки из символов /* и */. Всё что находится внутри этих скобок является комментарием и игнорируется компилятором. Пример: /* Это многострочный Комментарий */
Составной оператор представляет собой несколько операторов, заключённых в фигурные скобки {}. Этот оператор используется, если требуется последовательность нескольких операторов в конструкциях, предусматривающих использование только одного оператора, например, после оператора if. Пример: { Оператор1; Оператор2; }
Условный оператор if if( условие ) оператор1; else оператор2;
Редуцированная форма оператора if if( условие ) оператор1;
Оператор выбора switch( выражение ) { case значение 1: операторы; break; case значение 2: операторы; break; // и т. д. default: операторы; }
Оператор цикла for( блок инициализации; условие выполнения тела цикла; блок изменения счётчиков ) оператор;
Цикл с предусловием while( условие ) оператор;
Цикл с постусловием do-while do оператор; while( условие )
Операторы прерывания • continue – прерывание выполнение тела цикла и переход к следующей итерации. • break – выход из текущего цикла или оператора switch. • return – выход из текущей функции. Если функция возвращает какое-либо значение, после оператора return должно быть указано это значение. • System. exit(int n) – выход из программы с кодом завершения n. Выход считается нормальным, если n равно 0. В противном случае выход считается аварийным.
Консольный ввод-вывод • System. in – стандартный поток ввода. • System. out – стандартный поток вывода. • System. err – стандартный поток вывода сообщений об ошибках.
Вывод Для вывода информации в потоки System. out и System. err используются следующие методы: • print(<аргумент>) – выводит текстовое представление аргумента в поток вывода. • println(<аргумент>) – выводит текстовое представление аргумента в поток вывода и переводит курсор на новую строку. • println() – отправляет в поток вывода символ перевода строки. • printf(…) – функция полностью аналогична функции printf языка C.
Примеры: System. out. print(2. 65); System. out. println(a); System. out. println(“текстовая строка”); System. err. printf(“Ошибка %dn”, err_num);
Ввод Для ввода данных с текстовой консоли удобно использовать вспомогательные классы Input. Stream. Reader и Buffered. Reader. Класс Buffered. Reader буферизует ввод, позволяя вводить информацию построчно. Если требуется ввести числовые данные, то для преобразования введённого текста к числовому виду можно использовать оболочечные классы.
Примеры: // создание экземпляра класса Buffered. Reader на основе // стандартного потока ввода System. in Buffered. Reader in = new Buffered. Reader(new Input. Stream. Reader( System. in)); // ввод вещественного значения double a = Double. parse. Double(in. read. Line()); // ввод целочисленного значения int b = Integer. parse. Int(in. read. Line()); // ввод строки целиком String c = in. read. Line();