有时我们会调用className.methodName()
而不为其创建对象,我的意思是不使用className objectName = new constructor()
语法,然后调用object.methodName()
className.methodName()
?object.methodName()
?以上两个例子的说明将受到赞赏。
答案 0 :(得分:2)
首先。当您创建至少一个类的静态方法时,可以使用此方法而无需创建类的实例。例如,这对于创建具有独立逻辑的方法很有用。例如:
public class Checker {
public static Boolean month(int value) {
return (value >= 1 && value <= 12);
}
}
您需要多次检查月份的正确值。但是每次创建对象该怎么做。使用静态方法非常有效。
秒。创建对象时,对象存储在内存中,您将获得一个链接。然后,该对象可用于例如保存在列表中。 此对象的方法是特定的。您可以保存类数据并使用此类的成员执行特定操作。例如:
List<Animals> animalsList = new ArrayList<>();
Animal animal = new Animal("dog");
int legs = animal.getCountLegs(); // specific function for object
animalList.add(animal); //save if you need
// use list of object
答案 1 :(得分:1)
您所指的是static
方法。
假设我有这个:
public class A {
public static void foo(){
System.out.println("Hooray! I work!");
}
}
您现在可以在任何其他课程的其他任何位置执行此操作:
A.foo();
这是因为该方法是静态的,这意味着它可以被CLASS调用。 这意味着它不需要该类的实例来调用该方法。
但是,即使不是必需的,您仍然可以这样做:
A a = new A();
a.foo();
但由于方法foo()
是静态的,因此不需要实例化对象A
来运行foo()
方法。
答案 2 :(得分:0)
对于每个类,我们都有一个名为类对象的对象,它是YourClass.class
对象。基于这些对象上的元数据调用静态方法。对于类的实例,将在实际实例上调用方法。 static 和非静态方法都存在于方法区域中。
答案 3 :(得分:0)
1到2点之间没有区别,因为在编译期间编译器会生成ClassName.staticMethod()而不是instance.staticMethod()。
答案 4 :(得分:0)
java中的静态方法属于该类(不是它的实例)。它们不使用实例变量,通常从参数中获取输入,对其执行操作,然后返回一些结果。 Instances方法与对象相关联,顾名思义,它可以使用实例变量。