В Java все объекты имеют какое-то поведение (методы). При вызове метода вы, в основном, используете конкретный объект c для выполнения определенного поведения.
В случае, если разработчик пропускает (не указывает) объект, компилятор Java предполагает, что метод вызывается на текущий объект, то есть «это».
Код вопроса можно было бы значительно улучшить, чтобы он стал более чистым и выразительным:
boolean sameAvg(GenBoundedType<?> i){
return average() == i.average();
}
Upd. Также следует иметь в виду, что сравнение чисел с плавающей запятой - вещь относительная. Таким образом, рассматриваемый метод может дать неожиданные результаты.