Есть небольшие различия, но это не должно иметь для вас значения.
Если callSomeMethod () является закрытым и объявлен во включающем (внешнем) классе, спецификация JVM будет запрещать анонимный доступ Runnable к нему (Privateметоды видны только декларирующему классу (концепция внутренних классов неизвестна виртуальной машине).Однако, согласно спецификации языка, это допустимый вызов.В этом случае java-компилятор делает немного магии - он генерирует синтетический метод доступа (в основном метод, не объявленный в исходном коде, но сгенерированный компилятором для обеспечения доступа к приватному методу).
То же самое происходитдля учеников, которые являются частными.Так что, строго говоря, есть разница, это приведет к небольшому увеличению результирующих файлов классов.
Вы должны выбрать любую форму, наиболее подходящую ей с точки зрения читабельности кода.Runnable можно рассматривать как часть метода (и, следовательно, его содержащий класс), поэтому, если callSomeMethod () является закрытым для класса, объявляющего класс, он должен быть объявлен как private.
Относительно того, куда лучше поместить callSomeMethod(), примите это решение, основываясь на том, каково его назначение / что он делает (где вы логически ожидаете найти операцию, выполняемую кодом).