无法调用 Java 中的方法
Unable to Call Method in Java
我创建了一个 class。在 class 中,我创建了一个名为 "createVessel()" 的方法,它应该 return 一个字符串数组。我想从同一个 class 调用该方法并将 returned 字符串数组存储在另一个字符串数组变量中(甚至不确定我是否可以这样做)。
无论如何,当我调用该方法时,IDE 导致错误并认为我正在尝试创建另一个同名方法并建议我更改名称。有人可以让我知道我做错了什么吗?换句话说,为什么我不能调用 createVessel() 方法? (注意:我将 post createVessel() 方法中的所有代码只是为了添加上下文,即使它可能没有必要回答我的问题)。
package submarineGame;
import java.util.*;
public class GameControl {
//Create Vessel Method
String[] carry = new String[2];
carry = createVessel();
String[] createVessel(){
// code here that creates an String array of positions
return positions;
}
您需要将调用更改为:
String[] carry = createVessel();
Java Class
scope 不能像你一样有任何赋值,只有上面的方法
您不能像以前那样只在 class 中调用该方法。
您必须从方法内部(如构造函数)或 Main 函数执行此操作。
一个class的块结构是两级的:
class {
... declarations of fields and methods
void someMethod() {
... statements
}
}
您在需要声明的地方进行了调用。 IDE 修复然后决定要进行方法声明。
所以将调用放在一个方法中,例如在程序入口点:
public static void main(String[] args) {
... call here, on an instance
}
直接解:
String[] carry = createVessel();
我准备了一个例子,你可以看到它会编译 运行(如果你有一个 main 方法)只需按照这个 link: http://goo.gl/fQMpKJ 它会得到你对此:
为什么?
问题是您不能 直接在 class 的主体中对字段执行 赋值 - 如果它不在字段的直接声明中。为此,您拥有构造函数,您可以在其中编写如下内容:
public GameControl(){
carry = createVessel();
}
那么您可以继续使用 String[] carry = new String[2];
,因为将在 createVessel()
方法中创建的 String[]
会覆盖它。另一种方法是使用 main 方法:
public static void main(String[] args) {
carry = createVessel();
}
但是当然你还需要将 static
分配给 String[] carry
和方法 createVessel();
如果您还有其他问题,请随时发表评论 - 我稍后会回到这个问题。另外,我可以看出您对 Java 并不是很熟悉,因此 Oracle 教程可能会对 http://docs.oracle.com/javase/tutorial/ 有一点帮助。
我创建了一个 class。在 class 中,我创建了一个名为 "createVessel()" 的方法,它应该 return 一个字符串数组。我想从同一个 class 调用该方法并将 returned 字符串数组存储在另一个字符串数组变量中(甚至不确定我是否可以这样做)。
无论如何,当我调用该方法时,IDE 导致错误并认为我正在尝试创建另一个同名方法并建议我更改名称。有人可以让我知道我做错了什么吗?换句话说,为什么我不能调用 createVessel() 方法? (注意:我将 post createVessel() 方法中的所有代码只是为了添加上下文,即使它可能没有必要回答我的问题)。
package submarineGame;
import java.util.*;
public class GameControl {
//Create Vessel Method
String[] carry = new String[2];
carry = createVessel();
String[] createVessel(){
// code here that creates an String array of positions
return positions;
}
您需要将调用更改为:
String[] carry = createVessel();
Java Class
scope 不能像你一样有任何赋值,只有上面的方法
您不能像以前那样只在 class 中调用该方法。
您必须从方法内部(如构造函数)或 Main 函数执行此操作。
一个class的块结构是两级的:
class {
... declarations of fields and methods
void someMethod() {
... statements
}
}
您在需要声明的地方进行了调用。 IDE 修复然后决定要进行方法声明。
所以将调用放在一个方法中,例如在程序入口点:
public static void main(String[] args) {
... call here, on an instance
}
直接解:
String[] carry = createVessel();
我准备了一个例子,你可以看到它会编译 运行(如果你有一个 main 方法)只需按照这个 link: http://goo.gl/fQMpKJ 它会得到你对此:
为什么? 问题是您不能 直接在 class 的主体中对字段执行 赋值 - 如果它不在字段的直接声明中。为此,您拥有构造函数,您可以在其中编写如下内容:
public GameControl(){
carry = createVessel();
}
那么您可以继续使用 String[] carry = new String[2];
,因为将在 createVessel()
方法中创建的 String[]
会覆盖它。另一种方法是使用 main 方法:
public static void main(String[] args) {
carry = createVessel();
}
但是当然你还需要将 static
分配给 String[] carry
和方法 createVessel();
如果您还有其他问题,请随时发表评论 - 我稍后会回到这个问题。另外,我可以看出您对 Java 并不是很熟悉,因此 Oracle 教程可能会对 http://docs.oracle.com/javase/tutorial/ 有一点帮助。