为什么我们将方法声明为静态

时间:2010-10-18 21:24:19

标签: java

static public void doRestrictionList(HttpServletRequest request, pageBean UTIL)

我们可以将方法声明为最终方法。

7 个答案:

答案 0 :(得分:4)

当功能不需要附加到实际对象时,静态方法通常是有意义的,但逻辑对于附加到类是有意义的。通常,这是依赖于少量参数的实用程序类型方法的情况。例如,我更喜欢这个:

int sum = Arithmetic.sum(13, 42);

到此:

Arithmetic arithmeticObject = new Arithmetic();
int sum = arithmeticObject.add(13, 42);

或者这个:

Arithmetic arithmeticObject = new Arithmetic(13, 42);
int sum = arithmeticObject.add();

答案 1 :(得分:3)

静态意味着它不需要类上的任何实例变量正常运行。它可以允许更强大的API,因为您可以通过以下方式调用您的方法:

MyClass.doRestrictionsList(req, util);

如果你没有将它设为静态,你必须实例化你的类以使其处于状态,然后在该实例上调用你的方法。

答案 2 :(得分:2)

可以使用静态方法,而无需实例化它们所属的类。

来自http://download.oracle.com/javase/tutorial/java/javaOO/classvars.html

  

班级方法

     

Java编程语言支持静态方法和静态变量。静态方法在其声明中具有static修饰符,应该使用类名调用,而不需要创建类的实例,如

     

ClassName.methodName(args)

答案 3 :(得分:2)

添加其他人说的话。您必须按如下方式实例化对象的普通类方法。

如果您有一个名为 ClassExample 的类,其方法为 testMethod 您必须执行以下操作才能将其命名为

ClassExample example = new ClassExample();
example.testMethod()...

如果你有一个静态方法,你不必担心实例化对象,所以你可以做类似于以下的事情

 ClassExample.testMethod()

答案 4 :(得分:1)

我们声明方法静态,因此可以在不保存基于该类的Object实例的情况下访问它们。

使用你的例子我可以打电话

SurroundingClass.doRestrictionList(...);

如果没有静态关键字,我需要做这样的事情

SurroundingClass object = new SurroundingClass();
object.doRestrictionList(...);

答案 5 :(得分:1)

静态方法经常用于实用程序/方便方法,您希望避免创建新实例的成本。

答案 6 :(得分:1)

您的帖子标题和问题不符。您在寻找静态和最终方法之间的比较吗?每个人都描述了静态方法,让我为您描述最终方法。

你有Java的最终方法吗?是

将方法声明为final意味着它不能被任何实现子类覆盖。来自http://download.oracle.com/javase/tutorial/java/IandI/final.html

  

您可能希望最终制作一个方法   如果它有一个实现   不应该改变它   对一致状态至关重要   对象