尊敬的 微信汇率:1円 ≈ 0.046166 元 支付宝汇率:1円 ≈ 0.046257元 [退出登录]
SlideShare 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; 
}
Блок схема if else
Ключевое слово else
Ввод числа с клавиатуры
// создаём объект класса Scanner
Scanner sc = new Scanner(System.in); 
int i = 2;
System.out.print("Введите целое число: ");
// считывает целое число с потока ввода 
// и сохраняем в переменную
i = sc.nextInt(); 
// Выводим значение переменной
System.out.println(i);
Цепочка операторов if-else-if
if (condition) 
  statement;
else if (condition) 
  statement; 
else if (condition) 
  statement;
 . . . 
else statement;
Условные выражения 
оцениваются сверху вниз. Как 
только найдено условие, 
принимающее значение 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.
Оператор switch
switch (ВыражениеДляСравнения) {
case Совпадение1:
команда;
case Совпадение2:
команда;
case Совпадение3: команда;
default: оператор;
}
Оператор switch
Каждая секция case обычно
заканчивается командой break, которая
передаёт управление к концу
команды switch. Если не использовать
break выполнение кода продолжится.
Дублирование значений case не
допускается. Тип каждого значения
должен быть совместим с типом
выражения для поиска совпадений.
Оператор switch
Оператор switch
Оператор switch

More Related Content

What's hot

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
тема множество для загрузки 2013AliyaAringazinova
 
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 Javaolegol
 
Типы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотекиТипы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотеки
Ihor Porotikov
 
C++ осень 2013 лекция 6
C++ осень 2013 лекция 6C++ осень 2013 лекция 6
C++ осень 2013 лекция 6Technopark
 
Преобразования типов. Операторы ветвления
Преобразования типов. Операторы ветвленияПреобразования типов. Операторы ветвления
Преобразования типов. Операторы ветвления
Ihor Porotikov
 
элементы языка и типы данных
элементы языка и типы данныхэлементы языка и типы данных
элементы языка и типы данныхЕлена Ключева
 
Java. Массивы. Многомерные массивы.
Java. Массивы. Многомерные массивы.Java. Массивы. Многомерные массивы.
Java. Массивы. Многомерные массивы.
Unguryan Vitaliy
 
C++ осень 2012 лекция 5
C++ осень 2012 лекция 5C++ осень 2012 лекция 5
C++ осень 2012 лекция 5Technopark
 
01 - Знакомство с Java
01 - Знакомство с Java01 - Знакомство с Java
01 - Знакомство с Javaphearnot
 
Исключения и ошибки
Исключения и ошибкиИсключения и ошибки
Исключения и ошибки
Unguryan Vitaliy
 

What's hot (20)

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

Viewers also liked

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
 

Viewers also liked (14)

Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.Java. Интерфейс Map - ассоциативные массивы.
Java. Интерфейс Map - ассоциативные массивы.
 
Java. Наследование.
Java. Наследование.Java. Наследование.
Java. Наследование.
 
List - списки
List - списки List - списки
List - списки
 
Java. Вложенные классы и интерфейсы.
Java. Вложенные классы и интерфейсы.Java. Вложенные классы и интерфейсы.
Java. Вложенные классы и интерфейсы.
 
Алгоритмы поиска и сортировки
Алгоритмы  поиска и сортировкиАлгоритмы  поиска и сортировки
Алгоритмы поиска и сортировки
 
Java. Инкапсуляция.
Java. Инкапсуляция.Java. Инкапсуляция.
Java. Инкапсуляция.
 
Java. Сборщик мусора. Работа с памятью.
Java.  Сборщик мусора. Работа с памятью. Java.  Сборщик мусора. Работа с памятью.
Java. Сборщик мусора. Работа с памятью.
 
Uml
UmlUml
Uml
 
Java. Интерфейс Reference - типы ссылок
Java. Интерфейс Reference -  типы ссылокJava. Интерфейс Reference -  типы ссылок
Java. Интерфейс Reference - типы ссылок
 
Java. Циклы.
Java. Циклы.Java. Циклы.
Java. Циклы.
 
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
 
Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация Java. Конструкторы класса и инициализация
Java. Конструкторы класса и инициализация
 
Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.Java. Интерфейс Set - наборы (множества) и его реализации.
Java. Интерфейс Set - наборы (множества) и его реализации.
 
Java. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередьJava. Интерфейс Queue - очередь
Java. Интерфейс Queue - очередь
 

More from Unguryan Vitaliy

Модульное тестирование.
Модульное тестирование. Модульное тестирование.
Модульное тестирование.
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
JSP
JSPJSP
JDBC
JDBCJDBC
Сервлеты
СервлетыСервлеты
Сервлеты
Unguryan Vitaliy
 
Сетевое взаимодействие
Сетевое взаимодействиеСетевое взаимодействие
Сетевое взаимодействие
Unguryan Vitaliy
 
Введение в сетевые технологии
Введение в сетевые технологииВведение в сетевые технологии
Введение в сетевые технологии
Unguryan Vitaliy
 
XML
XMLXML

More from Unguryan Vitaliy (20)

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

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

  翻译: