java - 为什么可以在没有实例的情况下调用方法?

标签 java oop

抱歉,也许这很简单,但我无法解释这一点。有以下代码( Swing ):

public class Sandbox2 extends Frame implements ActionListener {  
    JTextField tf; JLabel l; JButton b;  

    Sandbox2() {  
        tf=new JTextField();  
        ...   

        //there is what i can`t understand
        add(b);add(tf);add(l);    
        setSize(400,400);  
        setLayout(null);  
        setVisible(true);  
    }

    public void actionPerformed(ActionEvent e) {  
        ... 
    }  

    public static void main(String[] args) {  
        new Sandbox2();  
    } 
}

首先,我创建一个按钮、文本字段等,然后将其添加到框架中。但是,如果在没有框架实例的情况下调用所有方法、add()、setSize()...,它会如何工作?

我知道这是由于 Frame 继承造成的,但是如何实现呢?

最佳答案

所有这些调用都发生在实例的上下文中。如果您只调用 setSize,则与 this.setSize 相同。 (如果您尝试在静态方法中调用 setSize,这具体意味着它未链接到特定实例,那么您将收到错误。)

关于java - 为什么可以在没有实例的情况下调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59708539/

相关文章:

java - 为我的登录页面创建 session 并计算登录失败的次数

java - 我用Java编写的这个程序需要很长时间才能运行(我还没有看到结果)

java - 我怎样才能从一个唯一的字符串生成一个唯一的整数?

Python - 传递对象引用?

PHP - mySQL 数据库类

java - 有没有办法用相同的方法创建不同类型的对象?

java - 如何检测是否有其他应用在播放音乐背景?

c# - 将多个对象类型传递到有限制的集合的正确方法

php - 当有 __construct() 元素时将类转换为函数

java - 为什么我可以创建一个父类类型的变量