gpt4 book ai didi

java - 当 getter 方法为我做同样的工作时,为什么我需要 setter 方法?

转载 作者:行者123 更新时间:2023-12-01 19:41:48 26 4
gpt4 key购买 nike

以下两个方法都返回 gui 引​​用类型。

如果我用 void 替换 JFrame 和 JButton 返回类型并删除返回语句,它仍然有效。我无法理解这两种方法之间的区别。

public class JavaGui {

JFrame frame;

JFrame createGui(){
GraphicsConfiguration g = null ;
frame = new JFrame(g);
frame.setTitle("gui");
frame.setSize(600, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setLayout(null);

return frame;
}

JButton createButton(){
JButton button=new JButton();
button.setBounds(130,100,100, 40);
button.setText("aaa");
button.setSize(100, 40);
button.setLayout(null);
frame.add(button);

return button;
}

public static void main(String[] args){
JavaGui javaGui=new JavaGui();
javaGui.createGui();
javaGui.createButton();
}
}

最佳答案

createButtoncreateGui 应该创建一个按钮和 gui,而不是其他任何东西。当您的代码创建它们时将按钮添加到框架并将框架分配给全局变量。

请查看两个不同的重新实现:

public class JavaGui {
public static JFrame createGui(){
GraphicsConfiguration g = null ;
JFrame frame = new JFrame(g);
frame.setTitle("gui");
frame.setSize(600, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setLayout(null);
return frame;
}

public static JButton getButton(){
JButton button=new JButton();
button.setBounds(130,100,100, 40);
button.setText("aaa");
button.setSize(100, 40);
button.setLayout(null);
return button;
}

public static void main(String[] args){
JavaGui.createGui().add(getButton());
}
}

public class JavaGui {

static JFrame frame;

static void createGui(){
GraphicsConfiguration g = null ;
frame = new JFrame(g);
frame.setTitle("gui");
frame.setSize(600, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setLayout(null);
}

static void addButton(){
JButton button=new JButton();
button.setBounds(130,100,100, 40);
button.setText("aaa");
button.setSize(100, 40);
button.setLayout(null);
frame.add(button);
}

public static void main(String[] args){
JavaGui.createGui();
JavaGui.addButton();
}
}

您将使用第一种情况(返回对象 JFrame 和 JButton),因为您想在其他地方使用它们。

当您希望您的方法构建 UI(更像状态机)时,您可以使用第二种情况。

关于java - 当 getter 方法为我做同样的工作时,为什么我需要 setter 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55130369/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com