Java方法流程

时间:2011-02-16 17:39:27

标签: java android

我正在努力学习如何在Android上编程,当然这是使用Java。我很了解Java,但这让我感到困惑。

我作为一个函数查看的方法(PHP是我的本机编程语言)似乎可以在java文件中的任何地方声明,并且仍然可以在任何其他位置拉出来这样做吗?我的意思是在PHP中你必须定义一个函数(方法)然后才能调用它。所以一切都必须井然有序。

还调用一个函数,比如在你的方法中包含那段代码来调用它。例如:

方法1包含opendb命令 方法2包含closedb命令 oncreate方法调用方法1然后2它是否相应地行动。

对不起可能听起来很蠢,但我喜欢具体的答案,而不是我的假设。

5 个答案:

答案 0 :(得分:3)

在java中声明方法的顺序并不重要。

方法彼此没有关系。无论其他方法method1如何,您都可以调用method2任意次。

示例可能如下所示:

public DatabaseManager {
    public void openConnection() {
        // ...
    }

    public void closeConnection() {
        // ...
    }
}

您可以使用以下方式调用:

DatabaseManager db = new DatabaseManager();
db.openConnection();
// do something
db.closeConnection();

答案 1 :(得分:2)

  

我作为一个函数查看的方法   (PHP是我的原生编程   语言)似乎可以宣布   在java文件中的任何地方仍然是   在任何其他方面退出是这个   所以?

嗯,部分正确:-)。 Java(与许多其他语言一样)具有方法“可见性”的概念(函数通常在Java中称为“方法”)。如果方法是private,则它只在同一个类中可见(并且可用),如果它是public则可以从任何地方调用。参见例如优秀的Java教程,涵盖了这个:http://download.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

但是,与PHP不同,在单个类中声明方法的顺序是无关紧要的。您可以在定义的点/行之前调用同一类中的方法。

  

也是调用一个函数   包括你的代码中的那部分代码   调用它的方法。例如:

是的,在最简单的情况下,调用方法的行为类似于在调用方法的位置包含该代码。但是有一些重要的区别:

  • 如果你调用一个方法,它就不能从调用方法访问局部变量,只有当两个方法属于同一个类时才能访问类字段。
  • Java(面向对象)具有多态性:在对象实例上调用方法,实际执行的方法取决于对象实例的运行时类型,对于不同的代码路径可能不同。在这种情况下,调用方法比仅使用方法的代码替换它更复杂。
  • Java方法可以递归调用自己;如果编译器只是将它们包含在调用它们的位置,那将无效。

因此将方法调用视为“包括代码”......

可能并没有什么帮助

答案 2 :(得分:1)

你的问题根本不是Java。听起来你从来没有编写过面向对象的方式。你应该了解一个类是什么,一个方法是什么。

我强烈推荐OOP本身的基础知识:http://download.oracle.com/javase/tutorial/java/concepts/

答案 3 :(得分:0)

在Java中,您的方法可以在类中以任何顺序声明,例如

class A {
    void C() { }
    void B() { C() }
}

可以等效声明为

class A {
    void B() { C() }
    void C() { }
}

你的第二个问题不是很清楚。但只是为了澄清 - 没有什么比在Java中包含执行另一个脚本 - 通常你会创建新对象或运行类的静态方法来完成任务。

答案 4 :(得分:0)

Max ...我没有用PHP编写代码,但我做了很多脚本编写。根据我发现的在线文档,PHP本身并不支持事件。所以你是对的,一切都必须在PHP中“按顺序”。所以你可能需要从我长大的顺序编程模型开始,转而使用Android Java中使用的事件驱动模型。

您可以将程序分为三个部分。视图或演示文稿(main.xml)。控制器或事件处理程序(MyApp.java)和算法,比如model.java。 MyApp.java有“事件处理程序”,它基本上等待接收事件,因此您无法完全知道调用方法的顺序。在Model.java中执行繁重的工作并编写它以使它对视图一无所知并且可以重用。

因此在UNIX模型中是ENGINE,视图和控制器是INTERFACE。 INTERFACE-ENGINE与模型 - 控制器 - 视图。

希望有所帮助, JAL