Никак не могу разобраться в чем отличие. Вот исходный код:
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!");
Документирование кодом, т.е. создав переменную и дав ей логичное имя, другой программист, который будет читать ваш код, скорее всего быстрее поймёт, вашу задумку, не прибегая к помощи комментариев и/или документации.
Однако в некоторых случаях допустимо создавать объект без создания переменной, когда это само собой очевидно, это уменьшит размер кода.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Вместо того что бы выводилось значение свойства, выводится просто текст, который я вписываюЯ пытался обойти эту проблему, вписывая значение...
Понятно как узнать, что массив строго возврастающий или убывающий:
Делаю приложение с математическими и логическими квестамиНа каждом уровне у пользователя будет возможность использовать подсказку, то есть...