每当我必须从另一个类调用一个方法时,我首先创建一个对象,然后通过该对象调用它。但是当我编写一些代码时,我错误地写了classname.methodname();
并且它有效。
我经常写,
classname obj = new classname();
obj.methodname();
以下是实际代码:
第1类
public class Dataset {
public static List<ECCardData> getDataset() {
//Code
}
第2课
List<ECCardData> dataset = Dataset.getDataset();
我注意到methodname()
是静态的。那是什么原因?
答案 0 :(得分:0)
是的,对于静态方法(使用合适的访问修饰符),您可以通过
直接调用您的类YourClass.yourMethod();
也是这样,
YourClass anObject = new YourClass();
anObject.yourMethod();
快乐的编码。
答案 1 :(得分:0)
我讨厌回答我的问题,但我找到了正确答案。
当方法声明为static时,只存在该方法的一个实例。创建对象时,会创建方法的新实例,这对于静态方法是不可能的。因此,您使用类名。
classname.methodname(); //only one instance
classname obj;
obj.methodname(); //instance with obj as Object(IDE gives warning, should not be allowed, ideally)
Java中的基本范例是你编写类,那些 类被实例化。实例化对象(一个实例) class)具有与它们相关的属性(成员变量) 影响他们的行为;当实例的方法执行它时 将参考这些变量。
但是,特定类型的所有对象可能都有行为 完全不依赖于成员变量;这些方法最好 静态的。通过静态,不需要运行类的实例 方法。
您可以这样做来执行静态方法:
classname.staticMethod();//Simply refers to the class's static code But
> to execute a non-static method, you must do this:
>
> classname obj = new classname();//Create an instance
> obj.nonstaticMethod();//Refer to the instance's class's code