Содержание
-
Лекция 4. Простые типы данных и операторы.
-
Переменные
Любая переменная имеет три характеристики: имя тип значение Переменная может иметь инициализаторы: int a; int b = 3 + 2; int c = b + 2; int d = a = c; Ключевое слово final final double g = 9.81;
-
Целочисленные типы
-
Операции числовыми аргументами
операции сравнения (возвращают булево значение) , >= ==, != числовые операции (возвращают числовое значение) унарные операции + и – арифметические операции +, -, *, % деление / операции инкремента и декремента (в префиксной и постфиксной форме): ++ и -- операции битового сдвига >, >>> битовые операции ~, &, |, ^ оператор с условием condition ? true_value : false_value оператор приведения типов(type) value оператор конкатенации со строкой +
-
Особенности целых чисел
intx=-2147483648;// Наименьшее возможное типа int inty=-x; System.out.println(y);// Результат: -2147483648 x=300000; System.out.println(x *x);// -194.313.216 300.000 * 300.000 = 90.000.000.000 b 1.0100.1111.0100.0110.1011.0000.0100.0000.0000 i 0000.1011.1001.0100.1111.1011.1111.1111 +0000.0000.0000.0000.0000.0000.0000.0001 = 0000.1011.1001.0100.1111.1100.0000.0000 = -194.313.216
-
Числа с плавающей точкой
-
Overflow & underflow
Пример overflow: 1e20f * 1e20f = Infinity -1e200 * 1e200 = -Infinity Пример underflow: System.out.println( 1e-40f/1e10f); System.out.println(-1e-300/1e100); float f =1e-6f; System.out.println(f); f +=0.002f; System.out.println(f); f +=3; System.out.println(f); f +=4000; System.out.println(f); 0.0 -0.0 0000.000001 0000.002001 0003.002001 4003.002000
-
Операции над ссылочными значениями
обращение к полям и методам объекта (оператор точка) оператор instanceof (возвращает булевское значение) операции сравнения == и != (возвращают булевское значение) оператор приведения типов оператор с условием ? : оператор конкатенации со строкой +
-
Приведение типов
тождественное (identity); расширение примитивного типа (widening primitive); сужение примитивного типа (narrowing primitive); расширение объектного типа (widening reference); сужение объектного типа (narrowing reference); преобразование к строке (String); запрещенные преобразования (forbidden).
-
Расширение примитивных типов
byte short int long float double char boolean
-
Приведение ссылочных типов
Расширяющие преобразования: от класса B к классу A, если B наследуется от A(частный случай – преобразование от любого ссылочного типа к Object); от null-типа к любому объектному типу. ClassA a = classBесли classB instanceof ClassA Сужающие преобразования: от класса A к классу B, если B наследуется от A(важным частным случаем является сужение типа Object до любого другого ссылочного типа). ClassB b = (ClassB) classA еслиclassA instanceof ClassB сужение расширение ClassA родитель ClassB наследник наследует ≡ является
-
Объявление массивов
Одномерный массив, основанный на примитивном типе int: int a[]; int[] a; Многомерный массив: int a[][]; int[] a[]; int[][] a; int[] a, b[]; == int a[], b[][];
-
Создание экземпляра массива
int[] array =newint[5]; int[] predefined =newint[] {1,2,3}; Object[] objects ={null,"Hello"}; int[][] matrix ={{1,2},{3,4}}; char[]string; string=newchar[5]; // Каждый элемент многомерного массива - массив int[][] nonsquare =newint[3][]; nonsquare[0]=newint[3]; nonsquare[1]=newint[]{ 1, 2 }; nonsquare[2]=newint[1];
-
Поле length
Использование поля lengthпри работе с массивом: Point p[]=new Point[5]; for(int i =0; i
-
Блоки и локальные переменные
Объявление нескольких локальных переменных с одинаковыми именами в пределах видимости блока недопустимо: publicclass Test { public Test(){} publicstaticvoid main(String[] args){ Test t =new Test(); intx; { intx=0; System.out.println("x = "+ x); } for(inti=0; i
-
Локальные переменные и параметры методов перекрывают видимость полей класса: publicclass Test { staticintx=5; staticintargs=0; publicstaticvoid main(String[]args){ Test t =new Test(); intx=1; System.out.println("x = "+ x +", "+ args[0]); } }
-
Оператор if
Общая конструкция оператора: if (логическое выражение) выражение или блок 1 else выражение или блок 2 Пример: int x =5; if (x 4) { System.out.println("Больше 4"); } elseif(x ==5) System.out.println("Равно 5"); else System.out.println("Другое значение");
-
Оператор switch
Общая конструкция оператора: switch(int value) { case const1: выражение или блок case const2: выражение или блок case constn: выражение или блок default: выражение или блок } Работает с целыми типами меньше чем long, их объектными обертками и перечисляемыми типами.
-
Циклы
while (логическое условие продолжения) повторяющееся выражение или блок do повторяющееся выражение или блок While (логическое условие продолжения); for (выполнить до цикла; условиепродолжения; выполнить после каждого повторения) повторяющееся выражение или блок for (Тип_элемента имя_переменной : массив или коллекция) повторяющееся выражение или блок
-
Операторы break, continue
publicclass Test2 { publicstaticvoid main(String[] args){ int i =0; outer: for(;;){// бесконечный цикл for(; i
-
Литература
http://www.intuit.ru/department/pl/javapl/ Bruce Eckel, Thinking in Java, 3rd Edition
-
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.