Различия, которые вы видите, имеют большее отношение к языку Java, а не к фактическим выполняемым операциям.
Если вы вызываете метод без указания конкретного объекта, язык Java предполагает, чтоВы вызываете метод для объекта this
или для объекта, в котором вы сейчас работаете.
public class MyClass {
public void doThis() {
}
public void doThat() {
// the following line will call this.doThis()
doThis();
// this is exactly the same as the line above, except it is explicitly stated
this.doThis();
}
}
Иногда метод хочет вызвать метод для другого объекта.В этом случае у вас есть переменная, содержащая ссылку на «другой» объект, и когда вы вызываете метод для этого объекта, вы должны разыменовать ссылку на имя, один из примеров может выглядеть так:
public Class MyOtherClass {
public void doTheOtherThing(MyClass myClass) {
myClass.doThis();
}
}
Различные примеры делают программирование на Swing по-разному.Некоторые примеры имеют тенденцию быть более объектно-ориентированными, чем другие.Чтобы проиллюстрировать, что если вам нужна «специальная» кнопка, один пример может создать подкласс для кнопки и настроить ее соответствующим образом в подклассе, в то время как в другом примере может быть создана кнопка без подкласса и сконфигурирована ее извне класса «JButton».
Хорошее объектно-ориентированное программирование предпочитает создание подклассов как решение по сравнению с внешней конфигурацией.Это связано с тем, что код для настройки кнопки становится частью нового подкласса кнопки, и поэтому, когда один архитектурно перемещает кнопку в разные места с помощью программы, код конфигурации не может быть случайно отделен от кнопки.Иногда анализ наилучшей объектно-ориентированной структуры может быть дорогостоящим, и в этом случае можно выпустить код с большим количеством «объектно-внешних» влияний.