Охрана труда:
нормативно-правовые основы и особенности организации
Обучение по оказанию первой помощи пострадавшим
Аккредитация Минтруда (№ 10348)
Подготовьтесь к внеочередной проверке знаний по охране труда и оказанию первой помощи.
Допуск сотрудника к работе без обучения или нарушение порядка его проведения
грозит организации штрафом до 130 000 ₽ (ч. 3 статьи 5.27.1 КоАП РФ).

Свидетельство о регистрации
СМИ: ЭЛ № ФС 77-58841
от 28.07.2014

Почему стоит размещать разработки у нас?
  • Бесплатное свидетельство – подтверждайте авторство без лишних затрат.
  • Доверие профессионалов – нас выбирают тысячи педагогов и экспертов.
  • Подходит для аттестации – дополнительные баллы и документальное подтверждение вашей работы.
Свидетельство о публикации
в СМИ
свидетельство о публикации в СМИ
Дождитесь публикации материала и скачайте свидетельство о публикации в СМИ бесплатно.
Диплом за инновационную
профессиональную
деятельность
Диплом за инновационную профессиональную деятельность
Опубликует не менее 15 материалов в методической библиотеке портала и скачайте документ бесплатно.
12.05.2025

Преобразование ссылочных типов; преобразование к строке; преобразование примитивных типов к обертке и наоборот в Java

Барабанщикова Анастасия Евгеньевна
Педагог дополнительного образования
Преобразование ссылочных типов; преобразование к строке; преобразование примитивных типов к обертке и наоборот.
Цель занятия: Сформировать у обучающихся понимание механизмов преобразования типов данных в Java (ссылочных, примитивных и строковых), а также умение применять эти знания на практике при разработке программ.
Задачи занятия:
1. Образовательная:
• Изучить правила преобразования ссылочных типов (upcasting, downcasting).
• Разобрать способы преобразования данных к строковому типу (String.valueOf(), toString()).
• Понять принципы автоупаковки и распаковки (int ↔ Integer, double ↔ Double и т. д.).
• Закрепить материал через написание кода (например, простой игры или конвертера).
2. Развивающая:
• Развить логическое мышление при выборе оптимального способа преобразования.
• Научиться анализировать и исправлять типичные ошибки.
3. Воспитательная:
• Сформировать внимательность при работе с разными типами данных.
• Поощрять командную работу (если практика проводится в группах).

Содержимое разработки

Г.Северобайкальск МАОУ ДО «ДДТ «Эврика»

Педагог дополнительного образования

программирование на языке Java

Барабанщикова Анастасия Евгеньевна

Технологическая карта занятия

по теме

«Преобразование ссылочных типов; преобразование к строке; преобразование примитивных типов к обертке и наоборот»

ТЕХНОЛОГИЧЕСКАЯ КАРТА ЗАНЯТИЯ

Педагог дополнительного образования: Барабанщикова Анастасия Евгеньевна

Направление:программирование на языке Java

Возраст участников занятия: 11-15 лет

Тема занятия:Преобразование ссылочных типов; преобразование к строке; преобразование примитивных типов к обертке и наоборот

Тип занятия:

Комбинированное занятие (повторение пройденного материала + изучение нового материала).

Форма организации познавательной деятельности:групповая

Цель занятия:Сформировать у обучающихся понимание механизмов преобразования типов данных в Java (ссылочных, примитивных и строковых), а также умение применять эти знания на практике при разработке программ.

Задачи занятия:

  1. Образовательная:

  • Изучить правила преобразования ссылочных типов (upcasting, downcasting).

  • Разобрать способы преобразования данных к строковому типу (String.valueOf()toString()).

  • Понять принципы автоупаковки и распаковки (int ↔ Integerdouble ↔ Double и т. д.).

  • Закрепить материал через написание кода (например, простой игры или конвертера).

  1. Развивающая:

  • Развить логическое мышление при выборе оптимального способа преобразования.

  • Научиться анализировать и исправлять типичные ошибки.

  1. Воспитательная:

  • Сформировать внимательность при работе с разными типами данных.

  • Поощрять командную работу (если практика проводится в группах).

Оборудование и материалы:

  • Компьютеры с установленной средой разработки Greenfoot.

План занятия:

Этап занятия

Время

Задачи этапа

Деятельность педагога

Деятельность обучающихся

Результат

1. Мотивационный этап

15 мин

Пробудить интерес к теме, показать практическую значимость преобразований типов в программировании.

Приводит примеры из реальных проектов (например, обработка ввода пользователя, работа с API). Задает наводящие вопросы: "Почему иногда числа воспринимаются как текст?""Как Java обрабатывает разные типы данных?".

Отвечают на вопросы, высказывают предположения. Формулируют цели занятия.

Обучающиеся замотивированы, понимают важность темы.

2. Актуализация знаний

25 мин

Вспомнить основные типы данных в Java (примитивы и ссылочные), их различия.

Организует блиц-опрос: "Какие примитивные типы знаете?""Чем String отличается от int?". Проводит мини-тест (устно или через Kahoot).

Отвечают на вопросы, выполняют задания на сопоставление типов.

Актуализированы знания о типах данных.

3. Изучение нового материала

60 мин

Объяснить: 1) преобразование ссылочных типов (upcasting/downcasting), 2) преобразование к строке (String.valueOf, toString), 3) автоупаковку/распаковку (Integer ↔ int).

Объясняет теорию с примерами кода. Демонстрирует ошибки (ClassCastException, NullPointerException). Использует презентацию и IDE для наглядности.

Записывают ключевые моменты, задают вопросы. Выполняют мини-задания (например, "Какой результат вызова ((Object) 5).toString()?").

Integer num =5;//автоупаковка int → Integer

String result = num.toString();//вызовметодаобёртки

// Результат: "5" (строка)

Обучающиеся понимают принципы преобразования типов.

4. Практическая работа

80 мин

Закрепить знания на практике через разработку мини-игры (например, "Угадай число" или конвертер валют).

Раздает задания: 1) Преобразовать ввод пользователя (String) в число, 2) Сравнить числа разных типов, 3) Использовать обертки для генерации случайных чисел. Консультирует, проверяет код.

Пишут код в группах/индивидуально. Тестируют решения, исправляют ошибки.

Созданы рабочие программы, демонстрирующие преобразование типов.

5. Закрепление материала

30 мин

Проверить усвоение темы, разобрать типичные ошибки.

Организует разбор кода: вызывает учащихся показать свои решения, обсуждает альтернативные подходы. Задает контрольные вопросы (*"Почему '5' + 3 = '53'?"*).

Представляют свои решения, анализируют код других. Выполняют задания на скорость (например, "Преобразуйте double в Integer").

Уверенное применение изученных преобразований.

6. Рефлексия

10 мин

Подвести итоги, оценить активность, получить обратную связь.

Просит учащихся ответить: "Что было сложным?""Где пригодятся эти знания?". Дает домашнее задание (написать парсер CSV с преобразованием типов).

Оценивают свою работу, делятся впечатлениями.

Осознание достигнутых результатов, план дальнейшей работы.

1. Преобразование ссылочных типов (Upcasting / Downcasting)

Upcasting (восходящее преобразование)

  • Это приведение подкласса к родительскому типу (например, Cat → Animal).

  • Происходит автоматически, так как подкласс наследует все свойства родителя.

  • Безопасно, потому что родительский класс "шире".

Пример:

classAnimal{}

classCatextendsAnimal{}

publicclassMain{

publicstaticvoidmain(String[] args){

Cat cat =newCat();

Animal animal = cat;// Upcasting (автоматически)

}

}

Downcasting (нисходящее преобразование)

  • Это приведение родительского типа к подклассу (например, Animal → Cat).

  • Требует явного указания типа и проверки через instanceof.

  • Может вызвать ClassCastException, если объект не является экземпляром целевого класса.

Пример:

Animal animal =newCat();

if(animalinstanceofCat){

Cat cat =(Cat) animal;// Downcasting (требуетпроверки)

System.out.println("Успешное преобразование!");

}

Shape1

2. Преобразование к строке (String.valueOf() и toString())

Метод toString()

  • Определен в классе Object (можно переопределять).

  • Если не переопределен, выводит имя_класса@хэш_код.

  • Пример:

Integer num = 10;

String str = num.toString();// "10"

Метод String.valueOf()

  • Статический метод класса String.

  • Работает даже с null (вернет "null", а не NullPointerException).

  • Пример:

int number = 5;

String str1 =String.valueOf(number);// "5"

Object obj =null;

String str2 =String.valueOf(obj);// "null" (безошибки)

Разница:

  • toString() требует ненулевой объект, иначе — исключение.

  • String.valueOf() безопаснее и работает с примитивами.

Shape2

3. Автоупаковка и распаковка (Autoboxing / Unboxing)

Автоупаковка (Autoboxing)

  • Примитив → Обертка (например, int → Integer).

  • Происходит автоматически.

Пример:

int primitive = 7;

Integer wrapper = primitive;// Автоупаковка

Распаковка (Unboxing)

  • Обертка → Примитив (например, Integer → int).

  • Если обертка null, выбросит NullPointerException.

Пример:

Integer wrapper =10;

int primitive = wrapper;// Распаковка

Где применяется?

  1. Коллекции (хранят только объекты):

java

Copy

Download

List<Integer> list =newArrayList<>();

list.add(5);// Автоупаковка int → Integer

  1. Арифметические операции:

Integer a =10;

a++;// Распаковка → операция → упаковка

Осторожно с null!

Integer wrapper =null;

int num = wrapper;// NullPointerException!

Shape3

Итоговая таблица

Концепция

Описание

Пример

Upcasting

Подкласс → Родитель (автоматически)

Animal animal = new Cat();

Downcasting

Родитель → Подкласс (требует проверки)

if (animal instanceof Cat) { ... }

toString()

Преобразует объект в строку (может вызвать NPE)

num.toString()

String.valueOf()

Безопасное преобразование (работает с null и примитивами)

String.valueOf(123)

Автоупаковка

int → Integerdouble → Double (автоматически)

Integer wrapper = 5;

Распаковка

Integer → int (может вызвать NPE)

int num = wrapper;

Эти механизмы критически важны для работы с типами в Java, особенно в коллекциях, методах с полиморфизмом и при обработке пользовательского ввода.

Код для всех трех заданий с подробными комментариями:

1. Преобразование ввода пользователя (String) в число

import java.util.Scanner;

public class StringToNumber {

public static void main(String[] args) {

// Создаем Scanner для чтения ввода пользователя

Scanner scanner = new Scanner(System.in);

// Запрашиваем у пользователя ввод числа

System.out.print("Введите число: ");

String userInput = scanner.nextLine();

try {

// Преобразуемстрокувцелоечисло

int number = Integer.parseInt(userInput);

System.out.println("Вы ввели число: " + number);

// Преобразуем строку в число с плавающей точкой

double doubleNumber = Double.parseDouble(userInput);

System.out.println("Числосплавающейточкой: " + doubleNumber);

} catch (NumberFormatException e) {

// Обрабатываем случай, если ввод не является числом

System.out.println("Ошибка! Введенное значение не является числом.");

}

// Закрываем Scanner

scanner.close();

}

}

2.Сравнениечиселразныхтипов

public class CompareDifferentTypes {

public static void main(String[] args) {

// Создаем числа разных типов

int intValue = 10;

double doubleValue = 10.0;

Integer wrappedInt = 10;

// Сравнение int и double (автоматическое приведение типов)

if (intValue == doubleValue) {

System.out.println("int " + intValue + " равен double " + doubleValue);

}

// Сравнение int и Integer (автораспаковка)

if (intValue == wrappedInt) {

System.out.println("int " + intValue + " равен Integer " + wrappedInt);

}

// Сравнение через equals() требует одинаковых типов

if (wrappedInt.equals(intValue)) { // Работает благодаря автораспаковке

System.out.println("Integer.equals()с int работает");

}

// Пример, когда сравнение может быть проблемным

Double wrappedDouble = 10.0;

if (wrappedInt.equals(wrappedDouble)) { // false - разныетипы

System.out.println("Это не выведется");

} else {

System.out.println("Integer и Double неравнычерез equals()");

}

}

}

3. Использование оберток для генерации случайных чисел

import java.util.Random;

public class WrapperRandom {

public static void main(String[] args) {

// Создаем генератор случайных чисел

Random random = new Random();

// Генерация случайных чисел с использованием оберток

// Генерация Integer

Integer randomInt = random.nextInt(100); // 0-99

System.out.println("Случайное Integer: " + randomInt);

// Генерация Double

Double randomDouble = random.nextDouble() * 100; // 0.0-99.99

System.out.println("Случайное Double: " + randomDouble);

// Генерация Boolean

Boolean randomBoolean = random.nextBoolean();

System.out.println("Случайное Boolean: " + randomBoolean);

// Пример использования в арифметических операциях

Integer a = random.nextInt(10);

Integer b = random.nextInt(10);

Integer sum = a + b; // Автораспаковка, сложение, автоупаковка

System.out.println(a + " + " + b + " = " + sum);

// Пример с автоупаковкой/распаковкой

int primitiveSum = a + b; // Автораспаковка a и b

System.out.println("Суммакакпримитив: " + primitiveSum);

}

}

Ключевые моменты в коде:

  1. Безопасное преобразование строки:

    • Использование try-catch для обработки некорректного ввода

    • Методы parseInt() и parseDouble() класса-обертки

  2. Сравнение разных типов:

    • Автоматическое приведение примитивов (int → double)

    • Автораспаковка при сравнении примитива и обертки

    • Особенности работы equals() с разными типами оберток

  3. Генерация случайных чисел:

    • Использование методов nextInt()nextDouble()nextBoolean()

    • Демонстрация автоупаковки/распаковки в арифметических операциях

    • Работа с обертками как с примитивами благодаря автоматическим преобразованиям

Каждая программа демонстрирует важные аспекты работы с преобразованиями типов в Java, которые были рассмотрены в теоретической части занятия.

11

Адрес публикации: https://www.prodlenka.org/metodicheskie-razrabotki/609730-preobrazovanie-ssylochnyh-tipov-preobrazovani

Свидетельство участника экспертной комиссии
Рецензия на методическую разработку
Опубликуйте материал и закажите рецензию на методическую разработку.
Также вас может заинтересовать
Свидетельство участника экспертной комиссии
Свидетельство участника экспертной комиссии
Оставляйте комментарии к работам коллег и получите документ
БЕСПЛАТНО!
У вас недостаточно прав для добавления комментариев.

Чтобы оставлять комментарии, вам необходимо авторизоваться на сайте. Если у вас еще нет учетной записи на нашем сайте, предлагаем зарегистрироваться. Это займет не более 5 минут.

 

Для скачивания материалов с сайта необходимо авторизоваться на сайте (войти под своим логином и паролем)

Если Вы не регистрировались ранее, Вы можете зарегистрироваться.
После авторизации/регистрации на сайте Вы сможете скачивать необходимый в работе материал.

Рекомендуем Вам курсы повышения квалификации и переподготовки