Вопросы по объектам и классам Java
При программировании с использованием объектно-ориентированного подхода одними из самых главных понятий являются понятия класса и объекта (экземпляр класса).
Категория вопросов по объектам и классам в java покрывает следующие вопросы:
- Класс (class)
- Экземпляр класса (объект/instance), инстанциирование объектов
- Поля (fields) и методы (methods) класса, конструкторы (constructors) класса
- Статические методы
- Ссылки на объекты (references)
- Импорт пакетов (статический импорт не рассмотрен)
На что обратить внимание
При ответе на вопросы данного раздела необходимо обратить внимание на ссылки - где ссылки (references) теряются при присвоении, а где ссылка на объект остается.
Также необходимо следить за модификаторами методов (methods) и учитывать видимость статических (static) и нестатических (non-static) методов между собой.
Распространенными являются вопросы о классе String и его экземплярах. Не следует забывать, что String является неизменяемым (immutable), а также все, что с этим связано.
Пример вопросов по объектам и классам в java
Рассмотрим несколько примеров по классам и объектам в java:
Пример 1
Перечислите все валидные сигнатуры конструкторов класса Clazz:
- Clazz(String name)
- Clazz Clazz(String name)
- int Clazz(String name)
- void Clazz(String name)
- Clazz(name)
- Clazz()
Конструктор класса это тоже метод, но у него нет возвращаемого значения (даже того типа, что и класс). Также у конструктора должен присутствовать список формальных параметров или же параметры должны отсутствовать вообще.
Таким образом нам подходят 2 ответа: Clazz(String name) и Clazz().
Пример 2
Скомпилируется ли следующий код, если оба класса будут объявлены в файле Test.java?
//Test.java
public class Car{
public String myCar = "Ferrari" ;
}
public class Test{
public static void main(String ... args){
Car myCar = new Car();
System.out.println(myCar.myCar);
}
}
Код не скомпилируется из-за класса Car. Только один из классов в файле может быть объявлен как public.