Как это может работать с c ссылкой на не с c со списком в Java? - PullRequest
0 голосов
/ 10 февраля 2020
    public String getFullname(){
        return firstName+ " "+ lastName;
    }
    public static void printUser(List<newClass> users){
        for(newClass u: users)
        System.out.println(u.getFullname());    
    }

Как это может работать, что getFullname не является ссылкой c, но когда я использую Список в качестве аргумента, это работает.

Конечно, я понимаю, что это не будет работать, если я напишу это код типа

System.out.println(getFullname());  

Поскольку printUser имеет статус c, а не getFullname.

1 Ответ

0 голосов
/ 10 февраля 2020

При первом вызове вы вызываете метод из экземпляра объекта: u.getFullname(). Во втором вызове, когда вы пытаетесь вызвать метод getFullname(), это похоже на this.getFullname(). Когда вызывается метод stati c, он похож на newClass.printUser(users) и экземпляр объекта не создан. Так что вы не можете сделать this.getFullname(), потому что этот экземпляр объекта не был создан. Stati c методы против методов экземпляра в Java

...