Создание объекта (new)

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

Тренажер по Java

В Java объект создаётся оператором new: он выделяет память и вызывает конструктор класса. Это основа ООП и частая тема в интерактивных уроках и тренировка задач Java: как правильно создать экземпляр, передать аргументы, сохранить ссылку в переменную и затем вызвать методы. Важно различать класс (шаблон) и объект (экземпляр), а также понимать, что переменная хранит ссылку. На странице будут задания и тесты: создание объектов, выбор конструктора, обращение к полям/методам и простая визуализация «ссылка → объект».

  • Пример: Car c = new Car(); c.drive();
Список тем

1. Базовое создание объекта

id: 40476_new_01_replace_basic

Дополните фрагмент программы на Java так, чтобы в методе main создавался объект класса Car и вызывался его метод start. Заполните пропуски так, чтобы был использован правильный оператор создания объекта ссылочного типа, корректное имя класса, круглые скобки вызова конструктора без параметров и символ доступа к методу у созданного объекта. После исправления код должен успешно компилироваться и выводить сообщение о запуске машины.

Заполните пропуски
class Car {
    void start() {
        System.out.println("Машина заведена");
    }
}

public class Main {
    public static void main(String[] args) {
        Car myCar = input1S input2S input3S;
        myCar input4S start();
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Создание объекта с аргументами конструктора

id: 40476_new_02_replace_constructor_args

В этом задании вы потренируетесь создавать объект с помощью конструктора с параметрами. Дополните код класса Rectangle: укажите корректные типы параметров в сигнатуре конструктора и значения аргументов при создании объекта через new в методе main. Программа должна успешно компилироваться и при запуске выводить правильную площадь прямоугольника.

Заполните пропуски
class Rectangle {
    int width;
    int height;

    public Rectangle(input1S width, input2S height) {
        this.width = width;
        this.height = height;
    }

    public static void main(String[] args) {
        Rectangle rect = new Rectangle(input3S, input4S); // ширина 5, высота 10
        System.out.println("Площадь: " + (rect.width * rect.height));
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

3. Исправить создание без new / неверный конструктор

id: 40476_new_03_error_missing_new

В этом фрагменте Java-кода допущены ошибки при создании объекта и объявлении конструктора класса Point. Из-за этих ошибок код не компилируется и объект точки не создаётся корректно. Найдите строки с ошибками и исправьте их так, чтобы объект Point создавался, конструктор был объявлен правильно, а программа успешно выводила координаты точки на экран.

Найдите ошибку и исправьте
public class Main {
    public static void main(String[] args) {
        Point p = Point(10, 20);
        System.out.println("Point: " + p.x + ", " + p.y);
    }
}
class Point {
    int x, y;
    public void Point(int x, int y) { this.x = x; this.y = y; }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

4. Собрать последовательность: объявление → new → вызов

id: 40476_new_04_build_from_parts_object_flow

Из предложенных строк соберите корректную Java-программу, которая создаёт объект Map product с помощью оператора new, записывает в него цену товара и выводит эту цену в консоль. Проследите за тем, чтобы сначала шли объявление класса и метода main, затем создание объекта и вызовы методов put и get, а лишние строки с неверным типом переменной не попадали в окончательное решение.

Перетяните в правильном порядке строки из одного блока в другой
public class Main {
    public static void main(String[] args) {
        java.util.Map<String, Object> product = new java.util.HashMap<>();
        product.put("price", 1500);
        Object price = product.get("price");
        System.out.println(price);
        java.util.List<String> product = new java.util.ArrayList<>();
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

5. Ссылка и null: что произойдёт/что выведет

id: 40476_new_05_predict_reference_null

Проанализируйте фрагмент кода на Java, в котором ссылочная переменная сначала указывает на null, затем ей присваивается новый объект с помощью оператора new. Обратите внимание на сравнение ссылки с null перед созданием объекта и после него. Выберите вариант, который точно соответствует тому, что будет выведено в консоль при выполнении программы.

Выберите правильный вариант ответа
public class Main {
    static class User {
    }

    public static void main(String[] args) {
        User u = null;
        System.out.println(u == null);
        u = new User();
        System.out.println(u == null);
    }
}
Сообщения
Проверить
Показать подсказку

6. Термины: класс, объект, конструктор, ссылка

id: 40476_new_06_compare_terms

В этом задании по Java в левой колонке перечислены базовые термины, связанные с созданием объектов с помощью оператора new, а в правой — их краткие определения. Сопоставьте каждый термин из левой колонки с соответствующим описанием из правой. Все элементы используются, лишних вариантов нет, но порядок в колонках перемешан.

Сопоставьте строки в правой(нижней) части с соответствующими строками в левой(верхней) по порядковому номеру
Класс
Объект (экземпляр класса)
Конструктор
Ссылка на объект
Оператор new
Выражение вида new MyClass()
Языковая конструкция, которая выделяет память под объект и запускает конструктор.
Переменная, в которой хранится указание на объект в памяти, а не сам объект целиком.
Описывает структуру и поведение объектов: какие поля и методы у них есть.
Конкретное создание объекта в коде: сочетание оператора выделения памяти и вызова конструктора класса.
Конкретный экземпляр, созданный по описанию класса и хранящий собственные значения полей.
Специальный метод класса, который вызывается при создании объекта и инициализирует его.
Сообщения
Проверить
Показать подсказку

7. Отметить места создания объектов

id: 40476_new_07_click_target_new_parts

Внимательно посмотрите на фрагмент кода на Java. В нём есть несколько строк, где создаются новые объекты с помощью оператора new, а также обычные объявления переменных и вызовы методов. Выделите только те фрагменты кода, которые представляют собой выражения создания объекта с использованием new, и не выбирайте остальные части кода.

Кликните по всем фрагментам, которые подходят под условие задания.
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class UserDemo {
    public static void main(String[] args) {
        User user1 = {{new User("Alice", 25)~|~t1}};
        User user2 = {{createUser("Bob", 30)~|~t2}};
        Scanner scanner = {{new Scanner(System.in)~|~t3}};
        List<User> users = {{new ArrayList<>()~|~t4}};
        {{users.add(user1)~|~t5}};
        {{users.add(user2)~|~t6}};
        {{printSummary(users)~|~t7}};
    }
}
Сообщения
Проверить
Показать подсказку

8. Выбрать правильный конструктор

id: 40476_new_08_select_fill_constructor_choice

Дополните фрагмент Java-кода, выбрав из выпадающих списков корректную сигнатуру перегруженного конструктора и правильные вызовы new. Ваша задача — сделать так, чтобы класс Person создавал объекты с нужными полями без ошибок компиляции, а объект p1 создавался через конструктор с одним параметром, а p2 — через конструктор с двумя параметрами.

Нужно правильно расставить в пропуски предложенные варианты
class Person {
    String name;
    int age;

    Person(String name) {
        this.name = name;
        this.age = 0;
    }

    input1S {
        this.name = name;
        this.age = age;
    }
}

public class Main {
    public static void main(String[] args) {
        Person p1 = input2S;
        Person p2 = input3S;
        System.out.println(p1.name + " " + p1.age);
        System.out.println(p2.name + " " + p2.age);
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку
НайтиКурс.Ру