我是一名Java程序员,对企业界不熟悉.最近我使用Groovy和Java 开发了一个应用程序.我编写的所有代码都使用了相当多的静态代码.高级技术部门要求我减少使用的静力学数量.我用Google搜索了同样的东西,我发现很多程序员都反对使用静态变量.
我发现静态变量使用起来更方便.而且我认为它们也是有效的(如果我错了,请纠正我),因为如果我必须对一个类中的函数进行10,000次调用,我很乐意将该方法设置为静态并使用简单的方法Class.methodCall()而不是用10,000个类的实例来混乱内存,对吧?
此外,静态减少了代码其他部分的相互依赖性.他们可以充当完美的国家持有者.除此之外,我发现静态在一些语言中得到广泛实现,如Smalltalk和Scala.那么为什么程序员(尤其是Java世界)中普遍存在对静态的压迫呢?
PS:如果我对静力学的假设是错误的,请纠正我.
为什么我们不能仅仅将所有方法和变量都设为静态,以免陷入制造对象的麻烦?
自从我很久以前开始学习Java以来,我就一直遇到这个问题,但是从未提出过。我知道,如果方法或变量不是静态的,则可以使用创建的对象来调用它:
public class classwithmethodandvariable {
int i = 7;
public void hello() {
}
}
Run Code Online (Sandbox Code Playgroud)
您可以这样称呼:
public class myMainClass {
classwithmethodandvariable obj = new classwithmethodandvariable();
classwithmethodandvariable.i++; // ACCESS INT I AND INCREMENT
classwithmethodandvariable.hello(); // CALLS METHOD HELLO
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我们有了方法hello()和变量,i就可以用更少的代码行完成所有工作,对吗?
public class classwithmethodandvariable {
static int i = 7;
public static void hello() {
}
}
Run Code Online (Sandbox Code Playgroud)
您可以这样称呼:
public class myMainClass {
classwithmethodandvariable.i++; // ACCESS INT I AND INCREMENT
classwithmethodandvariable.hello(); // CALLS METHOD HELLO
}
Run Code Online (Sandbox Code Playgroud)
我们为什么不这样做呢?我看到了另一个 …