Что именно происходит при создании объекта? (Java)
- Вызывается конструктор, который будет вызывать метод super родительского класса (по умолчанию для класса объектов, поэтому новый класс будет иметь доступ ко всем членам класса объекта). )
- Распределение памяти
- Поля инициализируются (по заданному значению или, если не задано, то по умолчанию)
- будет выполнен код блока остатка конструктора
Таким образом, единственное отличие здесь:
Const c1 = new Const();
Здесь число будет инициализировано значением int по умолчанию, равным 0 , а имя будет инициализировано null , которое является значением по умолчанию для String
Const c2 = new Const(5, "Jerry");
Вместо этого здесь будет 5 и соответственно Джерри
При использовании new Const () конструктор будет будет вызван, и класс будет загружен в основную память.
public Const() {
//implicit super
super()
}
Ключевое слово super в java - это ссылочная переменная, которая используется для ссылки на объекты родительского класса, который по умолчанию является классом Object. Ключевое слово «super» вошло в картину с понятием Наследования.
Так что теперь у него есть доступ ко всем членам класса Object, т.е. toString, равняется:
, поскольку вы можете получить доступ
c1.toString() or c1.equals(obj)
Когда и как именно создаются переменные экземпляра и методы для объекта (какой неявный код добавляется)?
Думаю, теперь вы поняли, как создаются переменные экземпляра и значения по умолчанию присваиваются им в зависимости от типа.
Если все еще неясно, попробуйте понять внутреннюю арку, которая может помочь:
JVM Arch