Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Java / Лекции / lection1

.pdf
Скачиваний:
70
Добавлен:
15.03.2015
Размер:
769.48 Кб
Скачать

Лекция 1. Введение в Java.

 

 

Содержание

 

 

Лекция 1. Введение в Java..........................................................................................................................

 

1

1.1. Отличия Java от C++.....................................................................................................................

 

1

1.2.

Необходимое программное обеспечение. Установка.............................................................

2

1.3.

Интерфейс NetBeans. Первая программа..................................................................................

 

3

1.4.

Типы данных................................................................................................................................

 

8

1.5.

Основные конструкции языка..................................................................................................

10

1.6.

Консольный ввод-вывод...........................................................................................................

13

1.1.ОтличияJava отC++.

 

 

 

Таблица 1.1. Сравнение языков программирования C++ и Java.

 

C++

Java

 

Переносимость на уровне исходного кода.

Переносимость на уровне байт-кода. Принцип:

 

Принцип: Write once compile anywhere (WOCA).

Write once run anywhere / everywhere (WORA /

 

 

 

WORE).

 

Разрабатывался для системного

Разрабатывался для прикладного

 

программирования.

программирования в неоднородных

 

 

 

компьютерных сетях и программирования

 

 

 

бытовых электронных устройств.

 

Возможно использование процедурного и

Полностью объектно-ориентированный язык.

 

объектно-ориентированного

 

 

программирования.

 

 

Явное управление памятью, поддержка

Отсутствие указателей, не допускается прямое

 

указателей.

обращение к памяти.

 

Отсутствие контроля границ массивов.

Контроль границ массивов.

 

Программа сама управляет выделением и

Автоматическая сборка мусора.

 

освобождением памяти.

 

 

Поддержка множественного наследования.

Множественное наследование реализовано с

 

 

 

помощью интерфейсов.

 

Отсутствует стандартный механизм

Документирование с помощью Javadoc.

 

документирования исходного кода.

 

 

Поддержка оператора goto.

Отсутствие оператора goto. Поддержка меток в

 

 

циклах.

 

Нестрогий контроль типов.

Строгий контроль типов.

 

Исходный код программ на Java хранится в файлах с расширением *.java. Во время компиляции каждый файл *.java преобразуется в соответствующий файл с расширением *.class. В отличие от C++, в Java исходный код компилируется не в набор инструкций конкретного процессора, а в платформенно-независимый байт-код (инструкции абстрактного Java-процессора). Несколько файлов *.class, а также необходимые ресурсы (например html-файлы, изображения, звуковые файлы) для удобства могут быть объединены в один архив *.jar. Файлы *.class или *.jar могут быть запущены под управлением виртуальной машины Java (JVM, Java Virtual Machine), которая

преобразует байт-код в инструкции того процессора, на котором они выполняются. Таким

образом, достигается переносимость скомпилированных приложений Java на любую

процессорную архитектуру. Достаточно, чтобы для этой архитектуры существовала Java-машина.

 

 

 

Таблица 1.2. Компиляция программ.

*.c, *.cpp, *.h

*.obj

 

Исполняемый

C++

 

 

модуль

(файлы исходного кода)

(объектные файлы)

 

*.java

*.class

 

*.jar

Java

 

 

 

(файлы исходного кода)

 

 

(архив Jar)

 

 

 

Таблица 1.3. Выполнение программ.

C++

 

 

Java

Исполняемый модуль

 

Архив Jar или файл *.class

(имеет формат, поддерживаемый

 

(содержит платформенно-

требуемой операционной системой, и

 

независимый байт-код)

содержит инструкции требуемой

 

 

 

архитектуры процессора)

 

 

 

JVM (Java Virtual Machine) –

Виртуальная машина Java. Операционная система

(преобразует байт-код в инструкции целевого процессора во время выполнения, JiT (Just in Time) –

компиляция)

Операционная система

1.2.Необходимоепрограммноеобеспечение.Установка.

Для программирования на Java требуется:

JDK (Java Development Kit) – набор инструментов разработки на языке Java (включён в Mac OS X, для Windows требуется скачать с сайта http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Интегрированная среда разработки (IDE, Integrated development environment).

Внастоящее время существует несколько свободно распространяемых сред разработки на Java:

NetBeans (http://netbeans.org/)

Eclipse (http://www.eclipse.org/)

JDeveloper (http://www.oracle.com/technetwork/developer-tools/jdev/overview/index.html)

Атакже, коммерческие IDE, такие как:

IntelliJ IDEA (http://www.jetbrains.com/idea/)

JBuilder (http://www.embarcadero.com/products/jbuilder)

1.3.Интерфейс NetBeans.Перваяпрограмма.

Создание проекта на Java в среде NetBeans.

1.В меню File выберите пункт New Project. В появившемся окне выберите в списке Categories пункт Java, а в списке Projects – Java Application. Нажмите кнопку Next.

2.В пункте Project Name введите название Вашего проекта. Если отмечен пункт Create Main Class, будет автоматически создан главный класс проекта. Нажмите кнопку Finish.

3.Во вкладке Projects появится структура созданного проекта.

4.Если был создан главный класс проекта, он будет автоматически открыт в редакторе.

5.Можно добавить в проект другие классы, выбрав в меню File пункт New File. В списке

Categories выберите Java, а в списке File Types – Java Class. Нажмите кнопку Next.

6. В пункте Class Name введите имя класса. Нажмите кнопку Finish.

Запуск программ в среде NetBeans (на примере программы вычисления корней квадратного уравнения).

1.Создайте проект с главным классом Main. Введите в редакторе текст программы вычисления корней квадратного уравнения (листинг 1.1).

2.В меню Run выберите пункт Run Main Project. В нижней части окна среды появится текстовая консоль, которая отображает вывод программы и позволяет вводить данные.

3.В случае успешного завершения программы в консоль будет выведено сообщение BUILD SUCCESSFUL.

Листинг 1.1. Первая программа (нахождение корней квадратного уравнения).

import java.io.*; public class Main {

public static void main(String[] args) throws IOException { double a, b, c, d;

BufferedReader in = new BufferedReader( new InputStreamReader(System.in));

System.out.print("Введите коэффициент a: "); a = Double.parseDouble(in.readLine()); System.out.print("Введите коэффициент b: "); b = Double.parseDouble(in.readLine()); System.out.print("Введите коэффициент c: ");

c = Double.parseDouble(in.readLine()); if ((d = b * b - 4 * a * c) < 0) {

d = 0.5 * Math.sqrt(-d) / a; a = -0.5 * b / a;

System.out.printf("x1 = %.2f - i%.2f\nx2 = %.2f + " +

"i%.2f\n", a, d, a, d);

} else {

d = 0.5 * Math.sqrt(d) / a; a = -0.5 * b / a;

System.out.printf("x1 = %.2f\nx2 = %.2f\n", a - d, a + d);

}

}

}

1.4.Типы данных.

Типы данных в java делятся на примитивные и объектные. Примитивные типы строго определены в соответствие с синтаксисом языка Java. Все объектные типы являются наследниками класса Object, пользователь может создать любое количество собственных объектных типов. Каждому примитивному типу данных для удобства поставлен в соответствие объектный тип. Такие типы называются оболочечными классами.

 

 

 

 

 

 

 

 

 

Таблица 1.4. Целочисленные типы данных.

 

 

 

 

 

 

 

 

 

 

 

 

 

Тип

 

Оболочечный

Ширина (в

Область допустимых значений

 

 

класс

битах)

 

 

 

 

 

long

 

Long

64

 

 

-9223372036854775808 .. 9223372036854775807

int

 

Integer

32

 

 

-2147483648 .. 2147483647

short

 

Short

16

 

 

-32768 .. 32767

 

 

 

byte

 

Byte

8

 

 

 

-128 .. 127

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.5. Примеры целочисленных констант.

Представление

 

 

 

 

Типы byte, short и int

 

 

Тип long

Десятичное представление

 

 

 

 

349

 

 

 

 

349L

Восьмеричное представление

 

 

 

 

0567

 

 

 

 

0567L

Шестнадцатеричное представление

0x4d5a

 

 

 

 

0x4d5aL

 

 

 

 

 

 

 

Таблица 1.6. Операторы для работы с целочисленными данными.

 

 

 

 

 

 

 

 

 

 

Оператор

 

 

 

 

Назначение

 

 

 

Пример

+

 

 

 

 

 

Сложение

 

 

 

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

 

 

 

 

 

 

присваиванием

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.7. Вещественные типы.

Имя

Оболочечный

 

Ширина (в битах)

Область допустимых значений по модулю

 

 

класс

 

 

 

 

 

 

 

 

 

 

double

Double

 

64

 

 

4.9e-324 .. 1.8e+308

float

Float

 

32

 

 

1.4e-045 .. 3.4e+038

 

 

 

 

 

 

 

 

 

Таблица 1.8. Примеры вещественных констант.

 

 

 

 

 

 

 

 

 

Запись

 

 

 

 

Тип double

 

 

Тип float

Стандартная

 

 

23.657

 

 

23.657f

Научная

 

 

 

 

3.1415e-13

 

 

3.1415e-13f

 

 

 

 

 

 

 

Таблица 1.9. Операторы для работы с вещественными типами.

 

 

 

 

 

 

 

 

 

 

Оператор

 

 

 

 

Назначение

 

 

 

Пример

+

 

 

 

 

 

Сложение

 

 

 

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

 

 

 

 

присваиванием

 

 

 

 

 

Символьный тип в Java имеет ширину 16 бит и представляет собой символ в двухбайтной

кодировке Unicode.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.10. Символьный тип.

 

 

 

 

 

 

 

 

 

Имя

Оболочечный класс

 

Ширина (в битах)

Область допустимых значений

char

Character

 

16

 

 

\u0000 .. \uFFFF

 

 

 

 

 

 

 

Таблица 1.11. Примеры символьных констант.

Запись

 

 

 

 

 

Пример

 

 

 

Непосредственно символ

 

 

 

‘a’

 

 

 

Значение символа в восьмеричной форме

 

‘\141’

 

 

 

Значение символа в шестнадцатеричной форме

 

‘\u0061’

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.12. Логический тип.

 

 

 

 

 

 

 

Имя

 

Оболочечный класс

 

Область допустимых значений

boolean

 

Boolean

 

true, false

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 1.13. Логические операторы.

Оператор

 

 

Назначение

 

 

 

Пример

&&

 

 

 

Логическое И

 

 

 

a&&b

||

 

 

 

Логическое ИЛИ

 

a||b

!

 

 

 

Логическое НЕ

 

 

 

!a

 

 

 

 

 

 

 

 

 

Таблица 1.14. Операторы сравнения.

Оператор

 

 

Назначение

 

 

 

Пример

==

 

 

 

Равно

 

 

 

a==b

!=

 

 

 

Не равно

 

 

 

a!=b

>

 

 

 

Больше

 

 

 

a>b

<

 

 

 

Меньше

 

 

 

a<b

>=

 

 

 

Больше или равно

 

a>=b

<=

 

 

 

Меньше или равно

 

a<=b

Все остальные типы являются объектными. Переменная объектного типа содержит ссылку на объект или значение null, если она не связана ни с каким объектом.

1.5.Основные конструкции языка.

Комментарии.

Однострочный комментарий открывается двумя прямыми слешами //. Всё, что стоит правее этих символов является комментарием и игнорируется компилятором. Пример:

// Это комментарий

Многострочный комментарий заключается в скобки из символов /* и */. Всё что находится внутри этих скобок является комментарием и игнорируется компилятором.

Пример:

/* Это многострочный Комментарий */

Составной оператор.

Составной оператор представляет собой несколько операторов, заключённых в фигурные скобки {}. Этот оператор используется, если требуется последовательность нескольких операторов в конструкциях, предусматривающих использование только одного оператора, например, после оператора if.

Пример:

{

Оператор1; Оператор2;

}

Условный оператор if.

if( условие )

else оператор1;

 

 

 

 

 

 

 

Да

 

оператор2;

 

 

 

 

 

 

условие

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

оператор2

 

 

 

оператор1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Условие – любое выражение, возвращающее тип boolean. В случае, если условие истинно, выполняется оператор1, если условие ложно, выполняется оператор2.

Также используется редуцированная форма оператора if. В этой форме, если условие равно true выполняется оператор1, в противном случае никаких действий не выполняется.

Соседние файлы в папке Лекции