Никак не могу разобраться в чем отличие. Вот исходный код:
public static void main(String[] args) {
JFrame frame = new JFrame("My First GUI");
JButton button = new JButton("hi");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds( 200, 200, 800, 400);
frame.setLayout(new BorderLayout());
frame.add(new JButton("go!"), BorderLayout.WEST);
frame.setVisible(true);
}
new в строчке frame.add(new JButton("go!"), BorderLayout.WEST); создаёт новый объект класса JButton, но только без ссылки? Или это что-то другое значит?
И в чем будет отличие, если заранее объявить кнопку JButton button = new JButton("hi"); и непосредственно в параметре для add использовать button?
Когда вы объявляете:
JButton goButton = new JButton("go!");
вместо прямой передачи нового объекта:
frame.add(new JButton("go!"), BorderLayout.WEST);
У вас имеется 2 преимущества:
Изменение свойств кнопки по переменной, даже после её добавления
frame.add(goButton, BorderLayout.WEST);
goButton.setText("GO GO GO!");
Документирование кодом, т.е. создав переменную и дав ей логичное имя, другой программист, который будет читать ваш код, скорее всего быстрее поймёт, вашу задумку, не прибегая к помощи комментариев и/или документации.
Однако в некоторых случаях допустимо создавать объект без создания переменной, когда это само собой очевидно, это уменьшит размер кода.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости