Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java方法流_Java_Android - Fatal编程技术网

Java方法流

Java方法流,java,android,Java,Android,我正在尝试学习如何在android上编程,android当然使用Java。我非常理解Java,但这让我感到困惑 一个我视为函数的方法(PHP是我的母语编程语言)似乎可以在java文件中的任何位置声明,但仍然可以在任何其他点拉出,是这样吗?我的意思是,在PHP中,您必须定义一个函数(方法),然后才能调用它。所以一切都必须井然有序 也就是调用一个函数,比如在调用它的方法中包含该段代码。例如: 方法1包含opendb命令 方法2包含closedb命令 一旦创建方法调用方法1,那么方法2就会相应地执行操

我正在尝试学习如何在android上编程,android当然使用Java。我非常理解Java,但这让我感到困惑

一个我视为函数的方法(PHP是我的母语编程语言)似乎可以在java文件中的任何位置声明,但仍然可以在任何其他点拉出,是这样吗?我的意思是,在PHP中,您必须定义一个函数(方法),然后才能调用它。所以一切都必须井然有序

也就是调用一个函数,比如在调用它的方法中包含该段代码。例如:

方法1包含opendb命令 方法2包含closedb命令 一旦创建方法调用方法1,那么方法2就会相应地执行操作


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

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

方法之间没有关系。您可以调用
method1
任意次数,而不考虑其他方法
method2

一个样本可能看起来像:

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

    public void closeConnection() {
        // ...
    }
}
您可以使用以下命令调用:

DatabaseManager db = new DatabaseManager();
db.openConnection();
// do something
db.closeConnection();
我认为是函数的方法 (PHP是我的母语编程 语言)似乎可以声明 java文件中的任何位置,并且仍然是 在其他任何一点都被拔出,是吗 那么

嗯,部分正确:-)。Java(和许多其他语言一样)有方法“可见性”的概念(函数在Java中通常称为“方法”)。如果一个方法是
private
,那么它只在同一个类中可见(并且可用),如果它是
public,那么它可以从任何地方调用。请参阅优秀Java教程,其中包括:

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

也就是调用一个函数,比如 在您的 方法调用它。例如:

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

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

因此,将方法调用视为“像包含代码一样”可能没有什么帮助。…

您的问题根本不是Java。听起来你从来没有用面向对象的方式编程过。你应该学习什么是类,什么是方法


我强烈推荐OOP本身的基础知识:

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

class A {
    void C() { }
    void B() { C() }
}
可以等价地声明为

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

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

Max。。。我没有用PHP编写代码,但我已经编写了很多脚本。根据我发现的在线文档,PHP本机不支持事件。所以你是对的,在PHP中一切都必须“井然有序”。因此,您可能需要将注意力从我成长过程中使用的顺序编程模型转移到Android Java中使用的事件驱动模型

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

因此,在UNIX中,模型是引擎,视图和控制器是接口。界面-引擎与模型控制器视图

希望有帮助,
JAL

调用函数肯定不像在调用方法中包含那部分代码,至少与PHP的工作方式不同。一个Java方法中的局部变量对于它调用的任何方法都是不可见的。(但是,所有类成员(包括函数、内部类成员)都可以访问类和实例变量。)