繁体   English   中英

java中静态方法的目的

[英]Purpose of Static methods in java

我对java中静态方法的使用感到困惑,例如,如果main方法是静态的,那么它是有意义的,但是在编码时我们有了对象,例如

 JFrame frame= new JFrame(); 
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// here why not frame.EXIT_ON_CLOSE

我们使用的方式相同

 GridBagConstraints c= new GridBagConstraints();// we have an object but still
 c.anchor = GridBagConstraints.PAGE_END; 

那么有人可以解释一下,我有什么特别的理由吗?

静态方法和字段属于类中的所有对象,而不属于非静态方法,属于类的特定实例 在您的示例中,无论您创建多少个JFrame frame对象,访问frame.EXIT_ON_CLOSE都会产生相同的精确结果。 为了明确说明这一事实,使用static成员(也称为“类成员”)。

相同的逻辑适用于静态方法:如果方法不访问实例变量,则其结果将独立于对象的状态。 main(String[] args)方法就是这样一个例子。 其他常见示例包括各种工厂方法,基元的解析方法等。 这些方法不在实例上运行,因此它们被声明为静态。

JFrame.EXIT_ON_CLOSE不是方法。 这是静态场。 看到这个文档

如果您不希望某些与类不对象关联的功能,则可以使用静态方法。

- JFrame.EXIT_ON_CLOSEJFrame类中的静态变量 (字段) 不是方法

- static方法是类方法,例如在Math类中没有实例变量,其构造函数是私有的。 所以静态工作完美......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM