【问题标题】:Access non static method from another class [duplicate]从另一个类访问非静态方法[重复]
【发布时间】:2019-02-22 16:21:46
【问题描述】:
public class Canvas {
    public void erase(){}
}    

我想在另一个类中使用该擦除方法,但由于它看起来不是静态的,所以我不能这样做

public class Country {
    Canvas.erase();
}

那么我该如何访问该方法呢?

【问题讨论】:

标签: java class methods


【解决方案1】:

你需要先创建一个类的对象(实例),然后调用它的方法,例如:

Canvas canvasInstance = new Canvas();
canvasInstance.erase();

【讨论】:

    【解决方案2】:

    您唯一的选择是:

    1. 将方法设为静态

      public static void erase(){}

    2. 从 Canvas 实例调用方法

      新画布().erase();

    【讨论】:

      【解决方案3】:

      只能使用对象引用来调用非静态方法。创建一个 Canvas 类的实例,然后调用像这样的擦除方法,

      Canvas canvas = new Canvas();
      canvas.erase();
      

      【讨论】:

        【解决方案4】:

        我喜欢这样做的方式是静态引用Canvas,所以这是如何做到的:

        public class Canvas
        {
            public static Canvas cObj;
        
            public void erase() { }
        } 
        
        
        public class Country {
        
            public void CallMethod()
            {
                Canvas.cObj.erase();
            }
        }
        

        这样您就可以轻松地从 County 类调用 Class Canvas 上的擦除

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-20
          • 1970-01-01
          相关资源
          最近更新 更多