Программирование на языке Java.ppt
- Количество слайдов: 40
Программирование на языке Java Байт-код C++ код Компилятор для Windows Int main { int var 1; int var; … Компилятор для Linux Java код Компилятор для Mac. OS 011000111 100110001 001001110 Class Hello. World { public static … Java компилятор 011000111 100110001 001001110 Машинный код (платформонезависимый) Машинный код (платформозависимый) Windows Linux Mac. OS Java-интерпретатор для Windows для Linux для Mac. OS
Программирование на языке Java Этапы разработки программы My. Programm. java Исходный текст программы сохраняется на жестком диске в файле с расширением *. java Java-компилятор Далее вызывается компилятор, при этом указываем для него название файла с кодом нашей программы. Компилятор проверяет код программы на наличие синтаксических ошибок. My. Programm. class Если компилятор не обнаружил ошибок, то создается новый файл с промежуточным кодом (байт-кодом), который имеет расширение *. class. Javaинтерпретатор Для того, чтобы выполнить программу, вызывается интерпретатор Java и указывается ему название файла *. class.
Программирование на языке Java Версии Java, JDK, J 2 SDK SE, Java. Script, Java. Beans, Enterprise Java. Beans (J 2 EE) Java – полноценный язык программирования, который имеет множество версий. В 1993 году появилась версия JDK 1. 0 (Java Development Kit), затем – 1. 02, 1. 1 и так до версии 1. 1. 8. После этого фирма Sun назвала следующую версию не JDK 1. 2, а J 2 SDK SE Version 1. 2. В настоящий момент существует версия J 2 SDK SE Version 1. 5. (Enterprise) Java. Beans отличается от «обычного» Java расширенной поддержкой механизмов и конструкций, необходимых при разработке профессиональных программ для коммерческих приложений. Java. Script – не является полноценным языком программирования и представляет собой скриптовый язык для написания небольших программ, которые используются совместно с описанными в формате HTML страницами.
Программирование на языке Java Установка JDK Все инструменты, необходимые для создания программ на языке Java включены в так называемый Java Development Kit (JDK), который свободно можно скачать с сайта Java: http: //java. sun. com, где он имеет название J 2 SDK Standard Edition. См. раздаточный материал.
Программирование на языке Java Этапы разработки программы (практика) 1. Создается, с помощью текстового редактора, новый файл с текстом исходного кода программы, например: // программа Hello. World import java. lang. *; public class Hello. World { public static void main (String[] args) { System. out. println (“Hello World!”); } } 2. Сохраняется файл с исходным кодом программы под именем Hello. World. java 3. Открывается окно консоли 4. Компилируется исходный текст программы javac Hello. World. java Hello. World. class 5. Выполнение программы java Hello. World
Программирование на языке Java Комментарии используются программистом для создания текста с пояснениями или напоминаниями непосредственно в исходном тексте программы. В языке Java существует два вида записи комментариев: // программа Hello. World - однострочные комментарии; /* Это пример комментария, который занимает несколько строк */ - многострочные комментарии.
Программирование на языке Java Инструкция import java. lang. *; с помощью такой команды импортируются все классы из данного пакета. Для обеспечения использования существующив в JDK классов служит инструкция import. Существующие в JDK классы располагаются не все вместе, а разбиты на отдельные пакеты. Таким образом, полное имя класса состоит из названия пакета и названия класса, например java. lang. System. out имя пакета имя класса Наиболее часто употребляемые пакеты: • java. lang: здесь собраны элементарные классы общего назначения, которые напрямую или косвенно используются другими классами Java. Импорт данного пакета осуществляется автоматически; • java. io: полезные классы для осуществления ввода/вывода данных в файл; • java. swing и java. awt: содержит классы для работы с диалоговыми окнами и для создания графического пользовательского интерфейса.
Программирование на языке Java Классы, переменные и методы В языке Java логически близкие данные и выполняемые над этими данными операции объединяются в классы. При этом включенные в класс данные получают обозначение переменные, а операции называются методами Программа управления двигателем public class Motor { float temperature; //Температура int rpm; //Число оборотов public void start() { //Инструкции для метода ЗАПУСК } public void stop() { //Инструкции для метода СТОП } public void inc_rpm() { //Инструкции для метода УВЕЛИЧЕТЬ ЧИСЛО ОБОРОТОВ } }
Программирование на языке Java Константы и переменные Константы // пример использования констант import java. lang. *; public class Use. The. Constants { public static void main (String[] args) { //строковая константа System. out. println (“Это строковая константа”); //численная константа System. out. println (3. 1415); //знаковая константа System. out. println (‘C’); } } Переменные Если данные можно оперативно модифицировать, то такие данные называются переменными. При программировании на Java мы оперируем не мебелью с выдвижными ящиками, а пространством оперативной памятью amount. Rabbit
Программирование на языке Java Объявление переменных Каждое объявление переменной состоит из указания типа переменной, за которым следует выбранное имя. int i. Var; - объявление целого числа long i. Var; float i. Var; double i. Var; - объявление числа c плавающей точкой Для каждой объявленной переменной компилятор резервирует пространство памяти. 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1, 3 = 0, 13*10^1 Используя таблицу ASCII кодов, определяем, что букве С соответствует число 67 = 01000011
Программирование на языке Java Типы данных Тип данных Диапазон значений boolean Логическое значение: true (верно) или false (ложно) char Отдельные символы: ‘a’, ‘!’, ‘n’ int Целое число: от -2147483648 до 2147483647 long Целое число: от -9223372036854775808 до 9223372036854775808 float Число с плавающей точкой: от -3. 40 е+38 до +3. 40 е+38 double Число с плавающей точкой: от -1. 79 е+308 до +1. 79 е+308
Программирование на языке Java Присваивание значений переменным //Демонстрационная программа “Variable. Assignment” public class Variable. Assignment { public static void main (String[] args) { int i. Num; double d. Num; int i. Num = 124; String c. Str; double d. Num = 3. 1415; i. Num = 124; String c. Str = “This is a string. ”; d. Num = 3. 1415; c. Str = “This is a string. ”; System. out. println(i. Num); System. out. println(d. Num); System. out. println(c. Str); } } int i. Num 1, i. Num 2; i. Num 1 =11; i. Num 1 = i. Num 1*3; i. Num 2 = i. Num 1;
Программирование на языке Java Арифметические операции Оператор Значение Пример = Присваивание var = 3; + Сложение var = 3 + 4; // var = 7; - Вычитание var = 3 - 4; // var = -1; - Изменение знака var = -4; // var = -4; * Умножение var = 3 * 4; // var = 12; / Деление var = 3 / 4; var = 3. 0/4. 0 // var = 0; // var = 0. 75; % Модуль (остаток целочисленного деления) var = 3 % 4; // var = 3;
Программирование на языке Java Вычисление математических формул celsius = (fahrenheit – 32) * 5 / 9 //Преобразование Фаренгейт-Цельсий public class Fahrenheit { public static void main (String[] args) { double fahrenheit; double celsius; fahrenheit = 20; celsius = (fahrenheit – 32) * 5. 0 / 9. 0; System. out. println(fahrenheit + “Grad Fahrenheit”); System. out. println(celsius + “Grad Celsius”); } }
Программирование на языке Java Математические функции Для выполнения сложных математических вычислений в пакете java. lang имеется класс Math, который содержит полезные так называемые статические методы. Метод Описание Math. acos(x) Арккосинус х Math. asin(x) Арксинус х Math. atan(x) Арктангенс х Math. cos(x) Косинус х Math. sin(x) Синус х Math. tan(x) Тангенс х Math. abs(x) Модуль (абсолютное значение) х Math. pow(x, y) Возводит число x в степень y Math. sqrt(x) Квадратный корень из х
Программирование на языке Java Соответствие и преобразование типов Math. sqrt () передается параметр типа double d. Num = 0. 575; double result 1, result 2, result 3; result 1 = Math. sqrt (3. 14); result 2 = Math. sqrt (2. 0); result 3 = Math. sqrt (d. Num); result 1 = Math. sqrt (2); //Это верно? int long, float double int или long float или double result; result = Math. sqrt (0. 54); правильно! long result; result = Math. sqrt (0. 54); неправильно! long result; result = (long) Math. sqrt (0. 54); правильно!
Программирование на языке Java Использование тригонометрических методов Задание: Необходимо вычислить высоту здания используя следующие данные Angle(Radian) = Angle(Grad)*(2 /3600). h = distance * tan a 250 18 м. public class House. Height { public static void main (String[] args) { double angle = 25. 0; // угол (в градусах) double distance = 18. 0; // расстояние до здания double height; angle = angle * 2 * 3. 14159 / 360; height = distance * Math. tan (angle); System. out. println (“Height house is “+height+” m “); } }
Программирование на языке Java Другие операции с числами Комбинированные операции присваивания int var = 12; var = var * 3; // или можно писать var = 3 * var Существует короткая запись такой операции с использованием комбинированного оператора *=: int var = 12; var *= 3; Комбинированные операторы существуют для всех арифметических операторов Инкрементирование и декрементирование В программировании очень часто используются операции увеличения или уменьшения значения на единицу. Для этих целей в Java существует два специальных оператора: ++ и -var++; или ++var увеличивает значение переменной var на 1. var--; или --var уменьшает значение переменной var на 1.
Программирование на языке Java Ввод и вывод данных Вывод данных в консольном приложении • вывод строки или численной константы: System. out. println (“Hello World”); System. out. println (245); • вывод строковой или численной переменной: int var = 245; String text = “Hello World”; System. out. println (text); System. out. println (var); • вывод произвольного сочетания переменных и констант: System. out. println (“number = ”+ var); Ввод данных в консольном приложении Здесь необходимы специальные классы и механизмы пакета java. io. Buffered. Reader b. Reader = new Buffered. Reader (new Input. Stream. Reader (System. in)); Переменная b. Reader имеет тип класса Buffered. Reader, из которого мы используем только метод read. Line(), необходимый для получения введенной пользователем с клавиатуры строки: String c. Str; c. Str = b. Reader. read. Line();
Программирование на языке Java Преобразование строк в числа int i. Num = Integer. parse. Int (c. Str); float f. Num = Float. parse. Float (c. Str); double d. Num = Double. parse. Double (c. Str); //Преобразование Фаренгейт-Цельсий import java. io. *; public class Fahrenheit { public static void main (String[] args) throws IOException { double fahrenheit; double celsius; System. out. print (“Temperature in Fahrenheit: ”); //связь с клавиатурой Buffered. Reader b. Reader = new Buffered. Reader (new Input. Stream. Reader (System. in)); String c. Str = b. Reader. read. Line (); fahrenheit = Double. parse. Double (c. Str); celsius = (fahrenheit – 32) * 5. 0 / 9. 0; System. out. println(fahrenheit + “Grad Fahrenheit”); System. out. println(celsius + “Grad Celsius”); } }
Программирование на языке Java Ограничение числа знаков после запятой В языке Java для этих целей имеется класс Number. Format, который входит в состав пакета java. text. //Преобразование Фаренгейт-Цельсий import java. io. *; import java. text. *; public class Fahrenheit { public static void main (String[] args) throws IOException { double fahrenheit; double celsius; System. out. print (“Temperature in Fahrenheit: ”); //связь с клавиатурой Buffered. Reader b. Reader = new Buffered. Reader (new Input. Stream. Reader (System. in)); String c. Str = b. Reader. read. Line (); fahrenheit = Double. parse. Double (c. Str); celsius = (fahrenheit – 32) * 5. 0 / 9. 0; Number. Format nf=Number. Format. get. Instance (); nf. set. Maximum. Fraction. Digits (2); System. out. println(nf. format (fahrenheit) + “Grad Fahrenheit”); System. out. println(nf. format (celsius) + “Grad Celsius”); } }
Программирование на языке Java Использование диалоговых окон //Преобразование Фаренгейт-Цельсий import java. io. *; import java. text. *; import javax. swing. JOption. Pane; public class Fahrenheit 1 { public static void main (String[] args) throws IOException { double fahrenheit; double celsius; String c. Str = JOption. Pane. show. Input. Dialog (“Введите температуру по шкале Фаренгейта”); fahrenheit = Double. parse. Double (c. Str); celsius = (fahrenheit – 32) * 5. 0 / 9. 0; Number. Format nf=Number. Format. get. Instance (); nf. set. Maximum. Fraction. Digits (2); JOption. Pane. show. Message. Dialog (null, “Температура по шкале Цельсия равна ” + nf. format(celsius), “Ответ: ”, JOption. Pane. PLAIN_MESSAGE); System. exit (0); } }
Программирование на языке Java Операторы сравнения для чисел Оператор Значение Пример == равенство i == 4 != неравенство i != 4 < меньше i<j > больше i>j <= меньше или равно i <=5 >= больше или равно i >=3 Операторы сравнения для строк Лексикографическое сравнение String name = “Vincent”; int result; result = name. compare. To (“Wolfgang”); result = name. compare. To (“Dirk”); result = name. compare. To (“Vincent”); Проверка на равенство String name 1 = “Иван”; String name 2 = “Петр”; boolean result = name 1. equals(name 2); // result < 0 // result > 0 // result = 0
Программирование на языке Java Условный оператор if Пожалуй, наиболее распространенной конструкцией в Java, как и в любом другом структурном языке программирования, является оператор условного перехода. В общем случае конструкция выглядит так: if (логическое выражение) выражение или блок 1 else выражение или блок 2 Операторы if-else могут каскадироваться. String test = "smb"; if( test. equals ("value 1") {. . . } else if (test. equals ("value 2") {. . . } else if (test. equals ("value 3") {. . . } else {. . . }
Программирование на языке Java Условный оператор if Заключительная конструкция else относится к самому последнему условию if и будет выполнена только в том случае, если ни одно из вышеперечисленных условий не будет истинным. Если хотя бы одно из условий выполнено, то все последующие выполняться не будут. Например: int x = 5; if( x < 4) { System. out. println("Меньше 4"); } else if (x > 4) { System. out. println("Больше 4"); } else if (x == 5) { System. out. println("Равно 5"); } else { System. out. println("Другое значение"); } Предложение "Равно 5" в данном случае напечатано не будет.
Программирование на языке Java Оператор switch() удобно использовать в случае необходимости множественного выбора. Выбор осуществляется на основе целочисленного значения. Структура оператора: switch(int value) { case const 1: выражение или блок case const 2: выражение или блок case constn: выражение или блок default: выражение или блок } Причем, фраза default не является обязательной.
Программирование на языке Java Оператор switch // операции с векторами import java. io. *; public class Vector { public static void main (String[] args) throws IOException { System. out. println(); System. out. println(“Set vector System. out. println(“Composition of vectors System. out. println(“Scalar product System. out. println(“Vector product System. out. println(“End of program } <1>”); <2>”); <3>”); <4>”); <0>”); System. out. print(“Input menu number: ”); Buffered. Reader t = new Buffered. Reader ( new Input. Stream. Reader (System. in)); String s. Input = t. read. Line (); int choice = Integer. parse. Int (s. Input); switch (choice) { case 0: System. out. println(“Program is complited”); break; . . . default: System. out. println (“Input error!”); break; } }
Программирование на языке Java Циклы с использованием for (Initialization; Condition; Modification) { Instruction (s); } • Initialization (инициализация): этот код выполняется один раз в самом начале исполнения данной инструкции; • Condition (условие): цикл и связанные с ним инструкции выполняются до тех пор, пока верно (истинно) данное условие. Если условие не выполняется (ложно), повторение цикла прекращается; • Modification (изменение, модификация): данная команда выполняется после очередного выполнения цикла и перед проверкой выполнения условия Condition. Пример выполнения цикла: int loop; int sum = 0; for (loop = 1; loop <= 5; ++loop) { sum += loop; } Sustem. out. println (“Сумма первых “ + (loop – 1) + “ чисел равна: “ + sum);
Программирование на языке Java Циклы (продолжение) Циклы с использованием while Initialization; for (Condition) { Instruction(s); Modification; } Пример использования цикла while // вычисление квадратов чисел с помощью цикла while import java. io. *; public class While. Cycle { public static void main (String[ ] args) throws IOException { double input. Var = 1; Buffered. Reader t = new Buffered. Reader ( new Input. Stream. Reader (System. in)); String input. String; while (input. Var != 0) { System. out. print ( “Input number (0 = end programm): “); input. String = t. read. Line(); input. Var = Integer. parse. Int (input. String); Sustem. out. println (“Square “ + input. Var + “ is “ + (input. Var * input. Var)); } } }
Программирование на языке Java Инструкция break // вычисление квадратов чисел с помощью цикла while import java. io. *; public class Break. Demo { public static void main (String[ ] args) throws IOException { double input. Var = 1; Buffered. Reader t = new Buffered. Reader ( new Input. Stream. Reader (System. in)); String input. String; while (true) // бесконечный цикл { System. out. print ( “Input number (0 = end programm): “); input. String = t. read. Line(); input. Var = Integer. parse. Int (input. String); if (input. Var = = 0) break; Sustem. out. println (“Square “ + input. Var + “ is “ + (input. Var * input. Var)); } } }
Программирование на языке Java Методы Определение метода 1. Придумаем для метода имя greeting () 2. Обозначим тип возвращаемой переменной: void greeting () 3. Если необходимо обеспечить вызов метода даже при отсутствии экземпляра данного класса, то необходимо использовать ключевое слово static: static void greeting () 4. Добавим после имени метода блок инструкций: static void greeting () { } 5. Добавим код, который будет выполняться при вызове метода: static void greeting () { System. out. println (“Hello, Programmer!”); }
Программирование на языке Java Методы (продолжение) Вызов метода // программа с методом Greeting public class Greeting { public static void main (String[ ] args) { greeting(); } static void greeting() { System. out. println (“Hello, Programmer!”); } } Передача параметров в методы В определение метода добавим параметр типа String: static void greeting (String name) { System. out. println (“Hello, Programmer!”); } Этот параметр мы будем использовать в блоке инструкций: static void greeting (String name) { System. out. println (“Hello ” + name + “!”); }
Программирование на языке Java Возвращаемые методом значения static int square (int value) { int result; result = value * value; return result; } Использование нескольких операторов return boolean demo() { … if (Condition) { … return true; } else { … return false; } }
Программирование на языке Java Программные модули и методы //Преобразование Фаренгейт-Цельсий import java. io. *; import java. text. *; public class Fahrenheit { static double Celsius (double fahrenheit) { double celsius = (fahrenheit – 32) * 5. 0 / 9. 0; return celsius; } public static void main (String[] args) throws IOException { double fahrenheit; double celsius; System. out. print (“Temperature in Fahrenheit: ”); //связь с клавиатурой Buffered. Reader b. Reader = new Buffered. Reader (new Input. Stream. Reader (System. in)); String c. Str = b. Reader. read. Line (); fahrenheit = Double. parse. Double (c. Str); celsius = Celsius (fahrenheit); Number. Format nf=Number. Format. get. Instance (); nf. set. Maximum. Fraction. Digits (2); System. out. println(nf. format (fahrenheit) + “Grad Fahrenheit”); System. out. println(nf. format (celsius) + “Grad Celsius”); } }
Программирование на языке Java ООП. Классы Объединение (или инкапсуляция) данных и методов в одном классе является основным принципом ООП. Класс – это абстрактное описание группы объектов, обладающих общими признаками. // программа для операции с векторами public class Vector. Operations { public static void main (String[ ] args) { Vector v 1 = new Vector(); Vector v 2 = new Vector(); v 1. x = 10; v 1. y = 30; v 2. x = 12. 5; v 2. y = -1. 5; v 1. add(v 2); v 1. output (); } } class Vector { // переменные экземпляра класса double x; double y; // конструктор класса Vector() { x = 0; y = 0; } // методы класса void add (Vector v) { x += v. x; y += v. y; } void output () { System. out. println (“ (“ + x + “, ” + y + “)”); } }
Программирование на языке Java Подробнее о конструкторе // программа для операции с векторами public class Vector. Operations { public static void main (String[ ] args) { Vector v 1 = new Vector(10, 30); Vector v 2 = new Vector(); v 1. add(v 2); v 1. output (); } } class Vector { // переменные экземпляра класса double x; double y; // конструктор класса Vector() { x = 0; y = 0; } Vector (double x_start, double y_start) { x = x_start; y = y_start; } // методы класса void add (Vector v) { x += v. x; y += v. y; } void output () { System. out. println (“ (“ + x + “, ” + y + “)”); } }
Программирование на языке Java Спецификатор доступа В каждом объектно-ориентированном языке программирования имеются так называемые спецификаторы доступа, то есть специальные ключевые слова, которые позволяют устанавливать, кто и к каким методам и переменным класса имеет доступ. Понятие доступ может обозначать два различных вида доступа: доступ снаружи и изнутри: • изнутри обозначает доступ из пределов декларированного класса • снаружи означает доступ из-за пределов данного класса, доступ снаружи – доступ к переменным или методам класса с помощью экземпляра класса. Внутренний доступ разрешен всегда, однако с внешним доступом все обстоит иначе. В этом случае создатель класса может с помощью спецификатора доступа указать права доступа к элементам класса. Существует следующие категории для спецификатора доступа: • public: переменные доступны для обращения как в данном классе, так и во всех производных классах, а также доступны для внешнего обращения к ним; • protected: разрешен доступ в пределах самого класса и в производных классах из того же пакета; • private: доступ разрешен только в пределах данного класса; • методы и переменные, для которых спецификатор доступа не указывается в явном виде, имеют стандартную область видимости (в пределах пакета).
Программирование на языке Java Работа с файлами Потоки. Весь ввод и вывод в Java-программах – ввод с клавиатуры, вывод на экран, работа с файлами или с любым другим устройством – основывается на понятии потока. Потоки служат для описания передачи данных от какого-либо источника к какому-либо пункту назначения. Клавиатура Файл Память Входящий поток П Р О Г Р А М М А Монитор Исходящий поток Модель потока Файл Память
Программирование на языке Java Запись в файлы Запись в файл производится в четыре этапа: 1. Подключение пакета java. io. 2. Создание объекта Stream, который связывается с нужным файлом. 3. Запись в файл. 4. Закрытие потока вывода в файл. // запись в файл import java. io. *; public class File. Output { public static void main (String [ ] args) throws IOException { File. Writer file. Stream = new File. Writer (“test. txt”); Print. Writer output = new Print. Writer (file. Stream); // для тестирования запишем различные данные в файл String text 1 = “This is simple text”; int var 1 = 1000; String text 2 = “Thus is sequel text”; double var 2 = 555. 111; output. println (text 1); output. println (var 1); output. println (text 2); output. println (var 2); output. close(); } }
Программирование на языке Java Чтение из файла Операция чтения из файла во многом похожа на операцию записи в файл: 1. Подключение пакета java. io. 2. Создание объекта Stream, который связывается с нужным файлом. 3. Чтение из файла. 4. Закрытие потока ввода из файла. // чтение из файла import java. io. *; public class File. Input { public static void main (String [ ] args) throws IOException { File. Reader file. Stream = new File. Reader (“File. Input. java”); Buffered. Reader input. Var = new Buffered. Reader (file. Stream); String string. Var; while (true) { string. Var = input. Var. read. Line (); if (string. Var = = nul) break; System. out. println (“Reading: “ + string. Var); } input. Var. close(); } }
Программирование на языке Java.ppt