有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Android/Java如何在单独的*中调用函数。java文件?

我导入了完整的包名/java文件,如果我做了<classname>.<method>,有时我可以访问它——其他时候我会听到很多can't use a static in a non static的谈话

我承认我是Java新手,那么我需要做什么呢?先调用类实例,然后调用我的方法?我对此感到相当困惑,因为我想把我所有的“函数”都放到函数列表中。java文件,并将我的所有主要活动(UI)转换为MyActivity。java文件

例如:

<MyActivity.java>

import com.example.FunctionsList;

private class MyActivity extends Activity {
  FunctionsList.function();
}

9/10次我得到静态/非静态错误

如果我把我所有的功能都放到我的活动中。java,我没有任何问题!有人能帮我解决一个基本的Java新手问题吗


共 (2) 个答案

  1. # 1 楼答案

    这里有一个例子,希望能对你有所帮助

    public class MyFunctionClass {
    
       public String myFunction() {
          return "This is an instance function.";
       }
    
       public static String myStaticFunction() {
          return "This is a static function.";
       }
    
    }
    

    那么在你的活动中,你有这样的东西

    public class MyActivity extends Activity {
    
       @Override
       public void onCreate() {
    
          // If you want to call your static function, you do not
          // require an instance of a MyFunctionClass object.
          String myStaticString = MyFunctionClass.myStaticFunction();
    
          // If you want to call your instance function, then you need
          // to create a MyFunctionClass first.
          MyFunctionClass variableName = new MyFunctionClass();
          String myInstanceString = variableName.myFunction();
       }
    }
    

    正如Jon所提到的,如果你在开始之前阅读了面向对象编程的知识,你可能会省去一些挫折感。有一些基本的东西,一个新的程序员将需要了解之前,潜水。祝你好运

  2. # 2 楼答案

    如果要使用非静态方法,则必须有类的实例来调用该方法。如果要使用静态方法,则不需要实例

    例如,假设您试图调用String.length(),那会返回什么?它试图找到某物的长度,但您尚未指定您感兴趣的字符串。其他实例方法也是如此——结果通常取决于调用它们的对象,这就是为什么它们首先是实例方法

    另外,我强烈建议您在尝试使用Android之前先学习Java的基础知识。这样,当您遇到真正棘手的问题时,您就不必怀疑它是Android的一部分还是一个简单的Java错误。有关这方面的更多建议,请参见my answer on a related question