В Java объект создаётся оператором new: он выделяет память и вызывает конструктор класса. Это основа ООП и частая тема в интерактивных уроках и тренировка задач Java: как правильно создать экземпляр, передать аргументы, сохранить ссылку в переменную и затем вызвать методы. Важно различать класс (шаблон) и объект (экземпляр), а также понимать, что переменная хранит ссылку. На странице будут задания и тесты: создание объектов, выбор конструктора, обращение к полям/методам и простая визуализация «ссылка → объект».
- Пример:
Car c = new Car(); c.drive();
- Модуль 1: Первая программа и структура
- Модуль 2: Переменные и типы данных
- Объявление и инициализация переменных.
- Примитивы: целые числа (int, long, byte, short).
- Примитивы: дробные числа (double, float).
- Примитивы: логический тип (boolean).
- Примитивы: символьный тип (char).
- String — основы работы со строками.
- Приведение типов (Casting): расширение и сужение.
- Область видимости переменных (Scope).
- Модуль 3: Операторы
- Модуль 4: Управляющие конструкции
- Модуль 5: Массивы и Строки (Advanced)
- Создание и заполнение массива.
- Доступ к элементам по индексу.
- Свойство length и перебор массива.
- Цикл for-each для массивов.
- Многомерные массивы.
- Методы String: length, charAt, isEmpty.
- Манипуляции: substring, concat, replace.
- Сравнение строк: equals vs ==.
- Разделение строк (split) и trim.
- StringBuilder (изменяемые строки).
- Модуль 6: Методы
- Модуль 7: Классы и Объекты (ООП Часть 1)
- Модуль 8: Капсуляция и Модификаторы
- Модуль 9: Наследование и Полиморфизм (ООП Часть 2)
- Модуль 10: Обработка исключений
- Модуль 11: Коллекции и Дженерики
- Модуль 12: Функциональный стиль (Java 8+)
- Модуль 13: Полезные стандарты
1. Базовое создание объекта
Дополните фрагмент программы на 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();
}
}2. Создание объекта с аргументами конструктора
В этом задании вы потренируетесь создавать объект с помощью конструктора с параметрами. Дополните код класса 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. Исправить создание без 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; }}4. Собрать последовательность: объявление → new → вызов
Из предложенных строк соберите корректную Java-программу, которая создаёт объект Map
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<>(); }}5. Ссылка и 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. Термины: класс, объект, конструктор, ссылка
В этом задании по Java в левой колонке перечислены базовые термины, связанные с созданием объектов с помощью оператора new, а в правой — их краткие определения. Сопоставьте каждый термин из левой колонки с соответствующим описанием из правой. Все элементы используются, лишних вариантов нет, но порядок в колонках перемешан.
7. Отметить места создания объектов
Внимательно посмотрите на фрагмент кода на 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. Выбрать правильный конструктор
Дополните фрагмент 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);
}
}