ݺߣ

ݺߣShare a Scribd company logo
Преобразование типов данных
Виталий Унгурян
unguryan@itstep.org
Преобразование типов
В java различают
явное и неявное
преобразование типов
данных.
Преобразование типов
Неявное преобразование типов
данных выполняет компилятор,
а явное преобразование данных
выполняет сам программист.
Неявное преобразование
Неявное преобразование –
это автоматическое
расширение
(widening) или повышение
одного типа до другого
(promotion).
Неявное преобразование типов
Неявное преобразование
типов выполняется в случае если
выполняются условия:
• Оба типа совместимы;
• Длина целевого типа больше или
равна длине исходного типа.
Неявное преобразование типов
Таблица неявного преобразования
типов
Сплошные линии обозначают преобразования,
выполняемые без потери данных. Штриховые линии говорят о
том, что при преобразовании может произойти потеря точности.
Преобразование типов
Явное преобразование сужение
(narrowing) , сжатие типа
int b = 3;
short a = (short) b;
Правила явного преобразования
В выражениях типы всех
значений byte, short, char повыша
ются до типа int, если один из
операндов int
Если один операнд имеет тип long,
то тип всего выражения
повышается до long.
Правила явного преобразования
Если один операнд имеет тип float,
то тип всего выражения
повышается до float.
Если один операнд имеет
тип double, то тип всего выражения
повышается до double.
Таблица преобразований
Буква Y означает расширяющее преобразование, которое выполняется
автоматически. Буква С означает сужающее преобразование, требующее
явного приведения. Наконец, Y* означает автоматическое расширяющее
преобразование, в процессе которого значение может потерять
некоторые из наименее значимых разрядов.
Ошибки сжатия типов
byte b = 50;
b = b * 2;
Type mismatch:
cannot convert from int to byte
Исправленный текст :
byte b = 50;
b = (byte) (b * 2);
boolean b = true;
int a = (int) b;
Ошибки сжатия типов
Важно помнить!
Java, в отличие от других языков, не
генерирует ошибок
при переполнении (overflow)
или потере значения (underflow)
при преобразовании типов, поэтому
контроль за корректностью
преобразований полностью ложится на
программиста.
Операторы ветвления
Оператор ветвления if
Оператор if позволяет вашей
программе в зависимости от
условий выполнить оператор или
группу операторов, основываясь
на значении булевой
переменной или
выражения.
Оператор if
Оператор if является основным
оператором выбора в Java и
позволяет выборочно изменять ход
выполнения программы - и это
одно из основных отличий между
программированием и простым
вычислением.
Операторif
Ключевоесловоelse
if(условие)оператор;//еслиусловие
истинно,товыполняетсяпервый
операторelseоператор;//еслиусловие
ложно,товыполняетсяоператорпосле
else.
if(условие){
оператор1;оператор2;
}else{
оператор1;оператор2;
}
Блоксхемаifelse
Ключевоесловоelse
Вводчисласклавиатуры
//создаёмобъектклассаScanner
Scannersc=newScanner(System.in);
inti=2;
System.out.print("Введитецелоечисло:");
//считываетцелоечислоспотокаввода
//исохраняемвпеременную
i=sc.nextInt();
//Выводимзначениепеременной
System.out.println(i);
Цепочка операторов if-else-if
if(condition)
statement;
elseif(condition)
statement;
elseif(condition)
statement;
...
elsestatement;
Условныевыражения
оцениваютсясверхувниз.Как
тольконайденоусловие,
принимающеезначениеtrue,
выполняетсяассоциированный
сэтимусловиемоператор,а
остальнаячастьцепочки
пропускается.Еслиниодноиз
условийнепринимает
значениеtrue,товыполняется
последнийоператорelse,
которыйможнорассматривать
какоператорпоумолчанию.
Блоккода
if (age>18)buyCount++;
System.out.print("Продано");
if (age>18){
buyCount++;
System.out.print("Продано");
}
Операторы,заключенныевфигурныескобки,
считаютсязаоднуоперацию,иназываются
составнымоператором.
Оператормножественноговыбораswitch
Операторswitch (переключатель)
применяетсякизвестномучислу
возможныхситуаций.
Можноиспользоватьпростые
типыbyte,short,char,int.
Также можно использовать Enum и String
(начиная с JDK7), а также объекты классов-
оберток, Character, Byte, Short, Integer.
Java. Логические операторы, операторы ветвления.
Оператор switch
switch (ВыражениеДляСравнения) {
case Совпадение1:
команда;
case Совпадение2:
команда;
case Совпадение3: команда;
default: оператор;
}
Оператор switch
Каждая секция case обычно
заканчивается командой break, которая
передаёт управление к концу
команды switch. Если не использовать
break выполнение кода продолжится.
Дублирование значений case не
допускается. Тип каждого значения
должен быть совместим с типом
выражения для поиска совпадений.
Оператор switch
Оператор switch
Оператор switch

More Related Content

What's hot (20)

Java. Методы
Java. Методы Java. Методы
Java. Методы
Unguryan Vitaliy
Stream API
Stream APIStream API
Stream API
Unguryan Vitaliy
Глава1: Обзор технологии Java
Глава1: Обзор технологии JavaГлава1: Обзор технологии Java
Глава1: Обзор технологии Java
metaform
Java - основы языка
Java - основы языкаJava - основы языка
Java - основы языка
Леонид Ставила
Java. Generic - шаблонные типы.
Java.  Generic - шаблонные типы.Java.  Generic - шаблонные типы.
Java. Generic - шаблонные типы.
Unguryan Vitaliy
тема множество для загрузки 2013
тема множество для загрузки 2013тема множество для загрузки 2013
тема множество для загрузки 2013
AliyaAringazinova
Discovering Lambdas in Java 8
Discovering Lambdas in Java 8Discovering Lambdas in Java 8
Discovering Lambdas in Java 8
Stfalcon Meetups
Java. Строки. Класс String.
Java. Строки. Класс String.Java. Строки. Класс String.
Java. Строки. Класс String.
Unguryan Vitaliy
Java. Введение в коллекции. Классы обертки. Перечисленияю
Java. Введение в коллекции. Классы обертки.  ПеречисленияюJava. Введение в коллекции. Классы обертки.  Перечисленияю
Java. Введение в коллекции. Классы обертки. Перечисленияю
Unguryan Vitaliy
Msu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing JavaMsu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing Java
olegol
Типы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотекиТипы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотеки
Ihor Porotikov
C++ осень 2013 лекция 6
C++ осень 2013 лекция 6C++ осень 2013 лекция 6
C++ осень 2013 лекция 6
Technopark
Преобразования типов. Операторы ветвления
Преобразования типов. Операторы ветвленияПреобразования типов. Операторы ветвления
Преобразования типов. Операторы ветвления
Ihor Porotikov
элементы языка и типы данных
элементы языка и типы данныхэлементы языка и типы данных
элементы языка и типы данных
Елена Ключева
Java. Массивы. Многомерные массивы.
Java. Массивы. Многомерные массивы.Java. Массивы. Многомерные массивы.
Java. Массивы. Многомерные массивы.
Unguryan Vitaliy
C++ осень 2012 лекция 5
C++ осень 2012 лекция 5C++ осень 2012 лекция 5
C++ осень 2012 лекция 5
Technopark
01 - Знакомство с Java
01 - Знакомство с Java01 - Знакомство с Java
01 - Знакомство с Java
phearnot
Исключения и ошибки
Исключения и ошибкиИсключения и ошибки
Исключения и ошибки
Unguryan Vitaliy
Глава1: Обзор технологии Java
Глава1: Обзор технологии JavaГлава1: Обзор технологии Java
Глава1: Обзор технологии Java
metaform
Java. Generic - шаблонные типы.
Java.  Generic - шаблонные типы.Java.  Generic - шаблонные типы.
Java. Generic - шаблонные типы.
Unguryan Vitaliy
тема множество для загрузки 2013
тема множество для загрузки 2013тема множество для загрузки 2013
тема множество для загрузки 2013
AliyaAringazinova
Java. Строки. Класс String.
Java. Строки. Класс String.Java. Строки. Класс String.
Java. Строки. Класс String.
Unguryan Vitaliy
Java. Введение в коллекции. Классы обертки. Перечисленияю
Java. Введение в коллекции. Классы обертки.  ПеречисленияюJava. Введение в коллекции. Классы обертки.  Перечисленияю
Java. Введение в коллекции. Классы обертки. Перечисленияю
Unguryan Vitaliy
Msu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing JavaMsu.Center.Lectures.J01 Introducing Java
Msu.Center.Lectures.J01 Introducing Java
olegol
Типы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотекиТипы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотеки
Ihor Porotikov
C++ осень 2013 лекция 6
C++ осень 2013 лекция 6C++ осень 2013 лекция 6
C++ осень 2013 лекция 6
Technopark
Преобразования типов. Операторы ветвления
Преобразования типов. Операторы ветвленияПреобразования типов. Операторы ветвления
Преобразования типов. Операторы ветвления
Ihor Porotikov
элементы языка и типы данных
элементы языка и типы данныхэлементы языка и типы данных
элементы языка и типы данных
Елена Ключева
Java. Массивы. Многомерные массивы.
Java. Массивы. Многомерные массивы.Java. Массивы. Многомерные массивы.
Java. Массивы. Многомерные массивы.
Unguryan Vitaliy
C++ осень 2012 лекция 5
C++ осень 2012 лекция 5C++ осень 2012 лекция 5
C++ осень 2012 лекция 5
Technopark
01 - Знакомство с Java
01 - Знакомство с Java01 - Знакомство с Java
01 - Знакомство с Java
phearnot
Исключения и ошибки
Исключения и ошибкиИсключения и ошибки
Исключения и ошибки
Unguryan Vitaliy

Viewers also liked (14)

Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.
Unguryan Vitaliy
Java. Наследование.
Java. Наследование.Java. Наследование.
Java. Наследование.
Unguryan Vitaliy
List - списки
List - списки List - списки
List - списки
Unguryan Vitaliy
Java. Вложенные классы и интерфейсы.
Java. Вложенные классы и интерфейсы.Java. Вложенные классы и интерфейсы.
Java. Вложенные классы и интерфейсы.
Unguryan Vitaliy
Алгоритмы поиска и сортировки
Алгоритмы  поиска и сортировкиАлгоритмы  поиска и сортировки
Алгоритмы поиска и сортировки
Unguryan Vitaliy
Java. Инкапсуляция.
Java. Инкапсуляция.Java. Инкапсуляция.
Java. Инкапсуляция.
Unguryan Vitaliy
Java. Сборщик мусора. Работа с памятью.
Java.  Сборщик мусора. Работа с памятью. Java.  Сборщик мусора. Работа с памятью.
Java. Сборщик мусора. Работа с памятью.
Unguryan Vitaliy
Java. Интерфейс Reference - типы ссылок
Java. Интерфейс Reference -  типы ссылокJava. Интерфейс Reference -  типы ссылок
Java. Интерфейс Reference - типы ссылок
Unguryan Vitaliy
Java. Циклы.
Java. Циклы.Java. Циклы.
Java. Циклы.
Unguryan Vitaliy
An Introduction to JVM Internals and Garbage Collection in Java
An Introduction to JVM Internals and Garbage Collection in JavaAn Introduction to JVM Internals and Garbage Collection in Java
An Introduction to JVM Internals and Garbage Collection in Java
Abhishek Asthana
Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация
Unguryan Vitaliy
Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.
Unguryan Vitaliy
Java. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередьJava. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередь
Unguryan Vitaliy
Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.
Unguryan Vitaliy
Java. Вложенные классы и интерфейсы.
Java. Вложенные классы и интерфейсы.Java. Вложенные классы и интерфейсы.
Java. Вложенные классы и интерфейсы.
Unguryan Vitaliy
Алгоритмы поиска и сортировки
Алгоритмы  поиска и сортировкиАлгоритмы  поиска и сортировки
Алгоритмы поиска и сортировки
Unguryan Vitaliy
Java. Сборщик мусора. Работа с памятью.
Java.  Сборщик мусора. Работа с памятью. Java.  Сборщик мусора. Работа с памятью.
Java. Сборщик мусора. Работа с памятью.
Unguryan Vitaliy
Java. Интерфейс Reference - типы ссылок
Java. Интерфейс Reference -  типы ссылокJava. Интерфейс Reference -  типы ссылок
Java. Интерфейс Reference - типы ссылок
Unguryan Vitaliy
An Introduction to JVM Internals and Garbage Collection in Java
An Introduction to JVM Internals and Garbage Collection in JavaAn Introduction to JVM Internals and Garbage Collection in Java
An Introduction to JVM Internals and Garbage Collection in Java
Abhishek Asthana
Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация
Unguryan Vitaliy
Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.
Unguryan Vitaliy
Java. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередьJava. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередь
Unguryan Vitaliy

More from Unguryan Vitaliy (20)

Модульное тестирование.
Модульное тестирование. Модульное тестирование.
Модульное тестирование.
Unguryan Vitaliy
Архитектурный шаблон MVC
Архитектурный шаблон MVCАрхитектурный шаблон MVC
Архитектурный шаблон MVC
Unguryan Vitaliy
Работа в команде, управление программными проектами
Работа в команде, управление программными проектамиРабота в команде, управление программными проектами
Работа в команде, управление программными проектами
Unguryan Vitaliy
Системы контроля версий
Системы контроля версийСистемы контроля версий
Системы контроля версий
Unguryan Vitaliy
Принципы SOLID
Принципы SOLIDПринципы SOLID
Принципы SOLID
Unguryan Vitaliy
Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.
Unguryan Vitaliy
Введение в язык программирования «Java»
Введение в язык программирования «Java»Введение в язык программирования «Java»
Введение в язык программирования «Java»
Unguryan Vitaliy
Шаблоны проектирования GoF
Шаблоны проектирования GoFШаблоны проектирования GoF
Шаблоны проектирования GoF
Unguryan Vitaliy
Ввведение в java
Ввведение в javaВвведение в java
Ввведение в java
Unguryan Vitaliy
Введение в hibernate
Введение в hibernateВведение в hibernate
Введение в hibernate
Unguryan Vitaliy
Spring AOP
Spring AOPSpring AOP
Spring AOP
Unguryan Vitaliy
Введение в Spring
Введение в SpringВведение в Spring
Введение в Spring
Unguryan Vitaliy
Cookies, session и другое в JSP
Cookies, session и другое в JSPCookies, session и другое в JSP
Cookies, session и другое в JSP
Unguryan Vitaliy
JSTL
JSTLJSTL
JSTL
Unguryan Vitaliy
JSP
JSPJSP
JSP
Unguryan Vitaliy
JDBC
JDBCJDBC
JDBC
Unguryan Vitaliy
Сервлеты
СервлетыСервлеты
Сервлеты
Unguryan Vitaliy
Сетевое взаимодействие
Сетевое взаимодействиеСетевое взаимодействие
Сетевое взаимодействие
Unguryan Vitaliy
Введение в сетевые технологии
Введение в сетевые технологииВведение в сетевые технологии
Введение в сетевые технологии
Unguryan Vitaliy
XML
XMLXML
XML
Unguryan Vitaliy
Модульное тестирование.
Модульное тестирование. Модульное тестирование.
Модульное тестирование.
Unguryan Vitaliy
Архитектурный шаблон MVC
Архитектурный шаблон MVCАрхитектурный шаблон MVC
Архитектурный шаблон MVC
Unguryan Vitaliy
Работа в команде, управление программными проектами
Работа в команде, управление программными проектамиРабота в команде, управление программными проектами
Работа в команде, управление программными проектами
Unguryan Vitaliy
Системы контроля версий
Системы контроля версийСистемы контроля версий
Системы контроля версий
Unguryan Vitaliy
Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.Парадигма объектно-ориентированного программирования.
Парадигма объектно-ориентированного программирования.
Unguryan Vitaliy
Введение в язык программирования «Java»
Введение в язык программирования «Java»Введение в язык программирования «Java»
Введение в язык программирования «Java»
Unguryan Vitaliy
Шаблоны проектирования GoF
Шаблоны проектирования GoFШаблоны проектирования GoF
Шаблоны проектирования GoF
Unguryan Vitaliy
Cookies, session и другое в JSP
Cookies, session и другое в JSPCookies, session и другое в JSP
Cookies, session и другое в JSP
Unguryan Vitaliy
Сетевое взаимодействие
Сетевое взаимодействиеСетевое взаимодействие
Сетевое взаимодействие
Unguryan Vitaliy
Введение в сетевые технологии
Введение в сетевые технологииВведение в сетевые технологии
Введение в сетевые технологии
Unguryan Vitaliy

Java. Логические операторы, операторы ветвления.