Понятие Класса и Объекта

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

Тренажер по Java

Класс в Java описывает «шаблон» (поля + методы), а объект — конкретный экземпляр этого класса в памяти. Через объекты мы храним состояние и вызываем поведение: obj.field, obj.method(). Создание обычно делается через new, а данные задаются через поля или конструктор.

В этих уроках и заданиях (тренировка Java онлайн) разберём, как устроены классы, как создавать объекты и чем отличаются ссылки на объекты от примитивов.

Список тем

1. Собери минимальный класс и создание объекта

id: 40474_co_01_build_min_class

Из предложенных строк соберите минимальный корректный Java-класс с полем `price` и создание его объекта в методе `main`. Программа должна создавать объект класса `Product` и выводить значение его поля `price` в консоль. Некоторые строки являются лишними и не должны входить в итоговое решение.

Перетяните в правильном порядке строки из одного блока в другой
public class Product {
    int price = 1500;
    public static void main(String[] args) {
        Product product = new Product();
        System.out.println(product.price);
        Product p = new Product();
        System.out.println(price);
    public void printPrice() {
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

2. Заполни пропуски: new и доступ к членам

id: 40474_co_02_replace_new_and_access

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

Заполните пропуски
class Book {
    String title;
    int year;
}

public class Main {
    public static void main(String[] args) {
        Book myBook = input1S Book input2S;
        myBook input3S title = "Java Fundamentals";
        myBook input4S year = 2023;
        System.out.println("Book: " + myBook.title + ", Year: " + myBook.year);
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

3. Отметь выражения, которые создают объект

id: 40474_co_03_click_target_object_refs

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

Кликните по всем фрагментам, которые подходят под условие задания.

Рассмотрите следующий код:

public class Example { public static void main(String[] args) { // Объявление переменных {{String message~|~t1}}; {{List items~|~t2}}; // Создание объектов message = {{"Hello"~|~t3}}; items = {{new ArrayList<>()~|~t4}}; {{Scanner scanner~|~t5}} = {{new Scanner(System.in)~|~t6}}; // Использование объектов {{items.add("Java")~|~t7}}; {{System.out.println(message)~|~t8}}; // Еще одно создание объекта {{Date now~|~t9}} = {{new Date()~|~t10}}; // Присваивание ссылки {{List copy~|~t11}} = items; } }
Сообщения
Проверить
Показать подсказку

4. Предсказать вывод: значения полей объекта

id: 40474_co_04_predict_fields_default

Проанализируйте приведённый код на Java, в котором создаётся объект класса Person без явной инициализации полей. Определите, какие значения будут выведены на экран при выполнении программы. Обратите внимание на значения по умолчанию для полей различных типов.

Выберите правильный вариант ответа
public class Person {
    String name;
    int age;
    double height;
    boolean isStudent;
    
    public static void main(String[] args) {
        Person p = new Person();
        System.out.println("Name: " + p.name);
        System.out.println("Age: " + p.age);
        System.out.println("Height: " + p.height);
        System.out.println("Is student: " + p.isStudent);
    }
}
Сообщения
Проверить
Показать подсказку

5. Исправь ошибку обращения к нестатическому члену

id: 40474_co_05_error_static_vs_instance

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

Найдите ошибку и исправьте
public class Student {
    String name = "Алексей";
 
    public static void main(String[] args) {
        System.out.println("Имя студента: " + name);
    }
}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

6. Разложи элементы по категориям: класс vs объект

id: 40474_co_06_sort_class_parts

Перед вами список утверждений и фрагментов, связанных с основами объектно-ориентированного программирования в Java. Ваша задача — распределить каждый элемент по одной из трёх категорий: «Класс», «Объект» или «Ссылка/переменная-ссылка». Обратите внимание, что класс является шаблоном для создания объектов, объект — конкретным экземпляром в памяти, а ссылка — переменной, хранящей адрес объекта. Каждый элемент должен быть помещён только в одну категорию.

Перетяните элементы в соответствующие блоки
Класс
Объект
Ссылка/переменная-ссылка
Описание полей и методов
Экземпляр в памяти
Создаётся через new
Может быть много объектов одного класса
Хранит адрес объекта в памяти
Определяется ключевым словом class
Конкретная сущность, созданная по шаблону класса
Может иметь значение null
Шаблон для создания объектов
Может быть присвоена другой ссылке
Сообщения
Проверить
Показать подсказку

7. Разметь части: класс, поле, метод, объект

id: 40474_co_07_highlight_members

В этом задании представлен короткий фрагмент кода на Java. Разметьте выделенные части кода, выбрав для каждой подходящий тип из предложенных: имя класса, поле, метод, создание объекта или вызов метода. Это упражнение поможет закрепить понимание основных элементов объектно-ориентированного программирования, таких как структура класса и взаимодействие с объектами.

Кликните по каждому выделенному фрагменту и выберите для него подходящий тип из списка под текстом.
public class {{Car~|~t1}} {
    String {{model~|~t2}};
    void {{startEngine~|~t3}}() {
        System.out.println(\"Engine started\");
    }
    public static void main(String[] args) {
        Car myCar = {{new Car()~|~t4}};
        {{myCar.startEngine()~|~t5}};
    }
}
Вызов метода
Поле
Имя класса
Создание объекта
Метод
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру