Java方法是语句的集合,这些语句组合在一起以执行操作。例如,当您调用System.out.println()方法时,系统实际上会执行几条语句,以便在控制台上显示一条消息。
静态方法也称为类方法,在类的对象之间通用,并且也可以使用类名来访问此方法。
非静态类的任何方法称为非静态方法或实例方法。
以下是静态方法和非静态方法之间的重要区别。
序号 | 键 | 静态的 | 非静态 |
---|---|---|---|
1 | 访问 | 静态方法只能访问静态成员,而不能访问非静态成员。 | 非静态方法可以访问静态成员和非静态成员。 |
2 | 捆绑 | 静态方法使用complie时间绑定或早期绑定。 | 非静态方法使用运行时绑定或动态绑定。 |
3 | 覆写 | 静态方法不能在编译时绑定中被覆盖。 | 动态方法可以覆盖非静态方法。 |
4 | 内存分配 | 静态方法占用的空间更少,并且内存分配只发生一次。 | 非静态方法可能会占用更多空间。当方法完全执行后,将在调用方法并释放内存时发生内存分配。 |
5 | 关键词 | 静态方法使用static关键字声明。 | 普通方法不需要任何特殊关键字。 |
JavaTester.java
public class JavaTester { public static void main(String args[]) { Tiger.roar(); Tiger tiger = new Tiger(); tiger.eat(); } } class Tiger { public void eat(){ System.out.println("Tiger eats"); } public static void roar(){ System.out.println("Tiger roars"); } }
输出结果
Tiger roars Tiger eats