вот только this мы пишем когда обращаемся к объекту, а потом к переменной этого объекта.
но у нас проблема в том, что переменная applesPrice в классе Apple - статическая. поэтому и приходится обращаться к ней через имя класса.
ну а все это происходит потому, что переменная applesPrice в которую метод принимает значение - "перекрывает" собой переменную с таким же именем из класса. поэтому чтобы обратиться именно к переменной applesPrice из класса, а не из метода - приходится идти на такие вот ухищрения. если бы она была не статическая - тогда бы обращались через this. ну а если статическая - тогда через имя класса.
Смотри
1. Ты передаешь значение 50 в метод addPrice - apple.addPrice(50);
2. В методе addPrice происходит присвоение переменной applePrice класса Apple
3. Получается Apple.applesPrice = 0 + 50
4. Затем передаешь в тот же метод addPrice значение 100 - apple2.addPrice(100);
5. И получается уже что
Apple.applesPrice = 50 + 100;
Как-то так