当我开始编程时,我经常会跳入一个概念的实现和执行,而无需理解复杂性或对相同的需求。
在此博客中,我将引导您了解Java中的基本概念,我们将深入研究它的必要性。
在跳入静态之前,让我们看看对象和变量如何存储在Java中。
对象的引用存储在堆栈中,实例,变量和方法存储在堆中。
因此,当所有对象之间共享变量或其值的更改会影响所有参考,应将其声明为静态。
让我们看一些实际示例以更好地理解它:
-
飞行票务柜台
航班中的座位总数应被声明为静态,因为在预订座位时,每个用户的数量都会更新,每个用户将看到可用座椅的更新值。 -
电子商务应用程序
在这里,当我们添加来自多个来源的项目时,可以使购物车中的总项目保持静态。当我们添加一个项目时,总项目更改为1,当添加其他项目时,我们需要将其值更新为2。
静态方法
当您在Java代码中看到静态方法时,您会假设什么?当读者看到静态方法时,读者做出了什么推理和假设?这很重要,以确保我们正确使用静态方法。
- 经验法则是,问自己“即使尚未创建对象,也要称呼此方法是有意义的?”。如果是,则应将其命名为静态。
- 如果方法未修改对象的状态,或者不使用任何实例变量。
- 如果仅适用于提供的参数,则方法是静态的良好候选者。例如public int factorial(int number){},此方法仅以作为参数提供的数字运行。
- 静态方法作为类的单个副本存在,而实例方法作为多个副本存在,因此在静态变量中,特定代码也由所有人共享。
让我们看一些实际示例:
-
在汽车类中,我们有一种方法:
double convertmpgtokpl(双mpg)
该方法负责将MPG转换为KPL。现在,可能没有创建汽车的实例,但是有人想使用这种方法,因此使其变得静态是有意义的。 -
在组织中,我们有一种方法:
getallemployees()
我们有两个不同的物体OBJ1,OBJ2。 ob1.getallemployes和ob2.getAllemployes会产生不同的结果吗?
那么,为什么我们需要OB1和OB2呢?由于对象创建没有产生不同的状态,因此在这里创建对象是没有意义的,因此可以通过className直接访问该方法,因此静态。