- •Лекция 1. Вступление в Java. Средства разработки программ. План
- •Лекция 2. Структуры и типы данных в Java. План
- •Лекция 3. Классы и методы в Java. Операция финализации в Java. План
- •Лекция 4. Апплеты в Java. План
- •Лекция 5. Модель обработки событий Java1.0. Реализация графического интерфейса в Java. План
- •Лекция 7. Безопасность в Java. План
- •Принципы многопоточного программирования. Состояния потоков.
- •Создание потока.
- •Синхронизация потоков.
- •Лекция 6. Многопоточное программирование в Java. План
- •Принципы многопоточного программирования. Состояния потоков.
- •Создание потока.
- •Синхронизация потоков.
Лекция 2. Структуры и типы данных в Java. План
Типы данных, переменные и массивы.
Область видимости и время жизни переменных.
Массивы в Java. Работа с массивами.
Преобразование типов в Java.
1.
Язык Java – строго типизированный язык, в котором действуют следующие правила:
каждая переменная имеет тип;
каждый тип строго определен;
все присваивания проверяются на совместимость типов.
В Java определены 8 типов в 4 группах:
целочисленные: byte, short, int, long;
числа с плавающей запятой: float, double;
символы: char;
логические: boolean.
Все переменные в Java должны быть объявлены до их использования:
<тип> <идентификатор> [= <значение>, <идентификатор> = <значение>]
Пример: int a,b,c;
int d=3, e, c=7;
char x=’c’;
В Java разрешается динамическая инициализация переменных:
double a=3,b=4;
double c=Math.sqrt(a*a+b*b);
2.
Java позволяет объявлять переменные внутри любого блока. Блок начинается с { и заканчивается }. Блок определяет область видимости. Как только встретилась {, открывается новая область видимости.
Переменные, которые объявлены внутри области видимости, не доступны извне.
Области видимости могут быть вложенными. Объекты из внешней области видимости видны во внутренней, но не наоборот.
Пример:
public static void main (String args[]){
int x=10;
if (x==10) {
int y=20;
System.out.println(“x и y”+x+“ ”+y);
x=y*2;
}
y=100; //ошибка
System.out.println(“x=”+1);
}
Время жизни переменной ограничено их областью видимости.
3.
Массивы в Java выделяют следующие:
одномерные;
многомерные.
Объявление одномерного массива:
<тип> <имя_переменной> [];
Пример: int a[];
Объявленный массив не существует. Чтобы связать массив a с реальными данными, необходимо использовать оператор new для выделения памяти.
Конструкция будет следующего вида:
<имя_массива> = new <тип>[<размер>];
Пример:
a = new int [3];
или int a[] = new int[3];
Заполнение массива:
a[0] = 1;
a[1] = 2; …
Можно объявлять массив с одновременной инициализацией:
int a[] = {1,2,3};
Объявление многомерного массива в Java:
int a[][] = new int [3][2];
Память под объявленный массив в Java можно выделить вручную:
a[0] = new int[2];
и для всех остальных элементов массива точно также.
Получаем нерегулярный массив:
0
1 2
3 4 5
Поведение таких массивов не совпадает с поведением стандартных массивов.
Инициализация многомерного массива:
int a[][] = {{1,2,3},
{4,5,6}}
4.
Когда значение одного типа присваивается переменной другого типа, то возможно автоматическое их преобразование, если удовлетворяется два условия:
два типа совместимы;
тип назначения больше исходного типа (расширяющее преобразование).
Но может быть и другая ситуация. Для преобразования между двумя несовместимыми типами необходима операция приведения, т.е. преобразование типов в явном виде:
(<тип_назначения>)<значение_исходного_типа>;
Пример: int a;
byte b;
b =(byte)a; (Это сужающее преобразование)
Если значение с плавающей точкой присваивается переменной целого типа, происходит усечение и дробная часть числа отбрасывается.
В вычислениях типы byte, short приводятся к int, int – к long, long – float, float – double.
Пример: byte b = 50;
b = b*2;
b = (byte)b*2; (ошибка)
b = b + 'x'; (+ ASCII-код) string → int
