static public void doRestrictionList(HttpServletRequest request, pageBean UTIL)
我们可以将方法声明为最终方法。
答案 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
您可能希望最终制作一个方法 如果它有一个实现 不应该改变它 对一致状态至关重要 对象