你可以用这个类来调用方法吗?

时间:2018-05-30 07:23:37

标签: java class static

每当我必须从另一个类调用一个方法时,我首先创建一个对象,然后通过该对象调用它。但是当我编写一些代码时,我错误地写了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()是静态的。那是什么原因?

2 个答案:

答案 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