Учитывая myClass
ниже и не-статический метод run()
, следующая строка кода является действительным:Вызов нестатический метод из другого нестатической метода
new myClass().move();
Однако, это справедливо:
move();
Я понимаю, что первая попытка (new myClass().move()
) создает экземпляр класса, а затем вызывает метод на нем. Вторая попытка также делает то же самое, но неявно? Другими словами, две попытки действительно одинаковы? Если нет, то в чем принципиальная разница и какая из них предпочтительнее?
Похоже, комментарий ОскарРейса в сообщении here коснулся этого, но он не уточнил.
class myClass
{
void move() {
//...some code
}
void run() {
new myClass().move();
}
}
Спасибо.
Нестатические методы _belong_ к экземпляру объекта (исследуйте «это», чтобы узнать больше). Внимательно рассмотрите, какой экземпляр метод будет считать «этим» в вашем коде. –
См. Http://stackoverflow.com/questions/3728062/what-is-the-meaning-of-this-in-java – Bogdan