Технологии программирования. Типы данных Java. Операции. Операторы. Массивы. Структура класса
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Технологии программирования
Лекция 2
О.А.Мирзеабасов
Отделение ИКС ИАТЭ НИЯУ МИФИ
Весна 2021
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
1 / 19
Содержание
1
Операции
2
Операторы
3
Массивы
4
Классы
5
Аннотации
6
NetBeans
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
2 / 19
Типы данных Java
Типы данных
примитивные
ссылочные
массивы
числовые
boolean
целые
byte
int
перечисления
вещественные
char
short
классы
интерфейсы
float
double
long
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
3 / 19
Операции
Операции
Типы операций
постфиксные
унарные
мультипликативные
аддитивные
сдвига
отношения
сравнения
побитовое И
побитовое искл. ИЛИ
побитовое ИЛИ
логическое И
логическое ИЛИ
тернарный
присваивания
expr++ expr-++expr --expr +expr -expr ~ !
* / %
+ << >> >>>
< > <= >= instanceof
== !=
&
^
|
&&
||
? :
= += -= *= /= %= &= ^= |= <<= >>= >>>=
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
4 / 19
Операции
Операции: примеры
int i=100;
int j=-10;
System.out.println(""+(i>>2));
System.out.println(""+(j>>2));
// >>> беззнаковый сдвиг вправо
System.out.println(""+(i>>>2));
System.out.println(""+(j>>>2));
System.out.println(""+(10 % 3));
// 25
// -3
// 25
// 1073741821
// 1
String s="A string";
if(s instanceof String)
System.out.println("Object is String");
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
5 / 19
Операторы
Операторы
операторы описания переменных и объектов
операторы присваивания
условный оператор if
операторы цикла while, do-while, for
оператор ветвления switch
операторы перехода break, continue, return
блок (группа операторов) {}
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
6 / 19
Операторы
Операторы: примеры
Описания, присваивания,
условный оператор
int x,y,z=1;
String s;
String q="example";
if(z>0){
x=0; y=10;
}
else if(z==0){
x=1;y=1;z=1;
}
else {
y=0;x=10;z+=5;
}
Циклы
while(z<10){
++z;
}
for(int i=0;i<10;++i){
System.out.println("i="+i);
}
int k=-10;
do {
++k;
} while(k<0);
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
7 / 19
Операторы
Операторы: примеры
Оператор ветвления
Random r=new Random();
k=r.nextInt(5);
switch(k){
case 0: case 1: System.out.println("<2");
break;
case 2: case 3: System.out.println("<4");
break;
default: System.out.println("4 or 5");
}
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
8 / 19
Массивы
Массивы
базовые типы данных
объявление
double [ ] x ;
int [ ] iy ;
определение
x = new double [ 3 ] ;
i y = new i n t [ 1 0 0 ] ;
инициализация
f o r ( i n t i =0; i <100;++ i ) {
i y [ i ]= i ;
}
x [0] = 1.0; x [1]=2.0; x [3]=1.5;
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
9 / 19
Массивы
Массивы
продолжение
double [ ] y = new double [ 1 0 ] ;
i n t [ ] a ={1 , 1 , 2 , 3 , 5 , 8 } ;
Произвольные типы данных:
T [ ] t = new T [ 1 0 ] ;
t [ 0 ] . someMethod ( ) ; // e r r o r : n u l l
f o r ( i n t i =0; i <10;++ i ) {
t [ i ] = new T ( ) ;
}
t [ 0 ] . someMethod ( ) ; // ok
Любой массив — объект:
double [ ] y = new double [ 1 0 ] ;
i n t l e n=y . l e n g t h ;
System . o u t . p r i n t l n ( " L e n g t h="+l e n ) ;
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
10 / 19
Классы
Структура класса
Тело класса может содержать объявления полей, конструкторов и
методов. Переменные, встречающиеся в теле класса, могут быть трех
типов: поля класса, локальные переменные, аргументы методов.
p u b l i c c l a s s Demo {
s t a t i c f i n a l double PI = 3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 ;
private int f i e l d ;
p u b l i c Demo( i n t f i e l d ) {
this . f i e l d = f i e l d ;
}
public int g e t F i e l d (){
i n t l o c f i e l d =10;
return f i e l d ∗ l o c f i e l d ;
}
}
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
11 / 19
Классы
Описание полей и методов класса
поле класса
необязательные модификаторы;
тип данных;
имя поля.
Пример:
public String name;
необязательные модификаторы;
тип возвращаемого значения;
имя метода;
список параметров в круглых скобках;
тело метода в фигурных скобках.
Примеры:
private int countSquare(int x){return x*x;}
public int multiply(int x,int y){return x*y;}
метод класса
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
12 / 19
Классы
Модификатор final
Модификатор final:
переменная с модификатором final является константой,
значение должно задаваться при её определении; последующие
изменения значения невозможны;
метод с модификатором final не наследуется в
классах-наследниках;
указание final при определении класса запрещает наследование
от него.
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
13 / 19
Классы
Модификатор static
Модификатор static позволяет обращаться к полям и методам
класса без создания экземпляра (объекта) класса.
переменная (поле класса) с модификатором static принадлежит
классу, для работы с такой переменной не требуется создавать
объект
метод с модификатором static можно вызвать как метод класса
(по имени класса); такой метод может изменять только
статические поля класса.
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
14 / 19
Классы
Пакеты
Пакеты служат для:
более удобного поиска и использования типов данных;
предупреждения конфликта имен;
контроля доступа.
package ru.obninsk.iate.tprg;
public class Vector { /* тело класса */ }
использование полного имени типа данных
ru.obninsk.iate.tprg.Vector a = new
ru.obninsk.iate.tprg.Vector();
импорт типа данных
import ru.obninsk.iate.tprg.Vector;
Vector a = new Vector();
импорт всего пакета
import ru.obninsk.iate.tprg.*;
Vector a = new Vector();
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
15 / 19
Классы
Модификаторы доступа
Java использует четыре области видимости: класс, пакет,
классы-наследники, все остальные классы. В таблице указывается
доступность элемента класса (поля или метода) в зависимости от
модификатора доступа.
public
protected
без модификатора
private
class
+
+
+
+
package
+
+
+
–
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
subclass
+
+
–
–
world
+
–
–
–
Весна 2021
16 / 19
Аннотации
Аннотации
Аннотации — вид метаданных, предоставляющих дополнительную
информацию о программном коде. При этом сами аннотации частью
программы не являются.
информация для компилятора;
дополнительные действия при компиляции или развертывании
приложения — например, генерация XML-файлов;
информация времени исполнения.
Аннотация указывается в тексте идентификатором, перед которым
ставится символ @:
@Override
void mySuperMethod() { ... }
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
17 / 19
Аннотации
Некоторые примеры аннотаций
@Deprecated — элемент, который помечен этой аннотацией, не
следует использовать в новых разработках; рекомендуется
оставлять комментарий перед элементом с объяснением причин и
тегом @deprecated.
@Override — аннотация указывает компилятору, что элемент
переопределяет соответствующий элемент в родительском классе.
@SuppressWarnings — подавляет вывод некоторых
предупреждений ("deprecation"и "unchecked"), генерируемых
компилятором
@SuppressWarnings("deprecation")
void useDeprecatedMethod(){
obj.deprecatedMethod();
}
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
18 / 19
NetBeans
NetBeans
Структура каталогов
demo
build
результаты компиляции
dist
jar-файл
nbproject
служебный каталог NetBeans
src
исходные коды проекта
test
классы для тестирования
build.xml
ant-сценарий сборки проекта
О.А.Мирзеабасов (Отделение ИКС) Технологии программирования
Весна 2021
19 / 19