在 Java 中是不是可以在 main 方法中创建一个过程?
Posted
技术标签:
【中文标题】在 Java 中是不是可以在 main 方法中创建一个过程?【英文标题】:In Java is it possible to create a procedure in the main method?在 Java 中是否可以在 main 方法中创建一个过程? 【发布时间】:2014-10-08 17:45:59 【问题描述】:来源:
import java.util.Scanner;
class Test1
public static void main(String[] args)
int x,y,ir;
x = 10;
y = 5;
Scanner scan = new Scanner(System.in);
ir = scan.nextInt();
switch(ir)
case 1: y++;
break;
case 2: y--;
break;
case 3: x++;
break;
case 4: x--;
break;
我想把这部分重复几次:
switch(ir)
case 1: y++;
break;
case 2: y--;
break;
case 3: x++;
break;
case 4: x--;
break;
但我不想写不止一次。这就是为什么我想把它写成一个过程或一个方法。有没有办法编写一个可以修改我的主要方法中的变量的方法?
【问题讨论】:
***.com/questions/4600974/… 可能重复? 不,您不能将一种方法放在另一种方法中(缺少匿名类的一些奇怪的东西)。但是,包含 main 方法的 class 可以拥有任意数量的其他方法。 另一种解决方案是制作x
和 y
静态字段,以便您可以从 Test1
中的另一个静态方法修改它们,您从 main
调用。
不,您不能创建“在主方法中的过程”,但是您可以在 Test1 类中创建一个静态方法,该方法可以从主方法中调用
请不要破坏您的问题
【参考方案1】:
在你的情况下你不能,因为你正在使用primitive types。但是,如果您使用引用类型,则可以在将其传递给另一个方法时修改其内容。
解决问题的方法是在更高级别定义变量(此处为实例范围)或将包装器类型传递给您的方法(例如 int
具有相应的引用类型 Integer
) .不过,我不建议您使用后一种方法。
另一种可能更有趣的解决方案是将其包装在 a loop 中的 main
方法中。我并不完全清楚你要做什么,但你一定要看看它是否可以像这样解决。
请注意,您正在使用 main
方法,因此您要调用的任何方法都必须是 static
。正确的代码不会这样做,而是使用对象和实例方法。
但是不行,你不能嵌套方法。
【讨论】:
【参考方案2】:您可以通过在提供该功能的 main 方法中创建一个类来做到这一点。
一个简单的例子:
class Test1
public static void main(String[] args)
int x = 0;
int y = 0;
class MyClass
public int x;
public int y;
MyClass()
x = 0;
y = 0;
public void doSomething()
x++;
y++;
MyClass myClass = new MyClass();
myClass.doSomething();
myClass.doSomething();
myClass.doSomething();
x = myClass.x;
y = myClass.y;
【讨论】:
我同意,这不是一个很好的解决方案,最好避免。 呵呵,我不知道你可以在方法中创建这样的类。我当然知道匿名内部类,但这对我来说是一个新的。【参考方案3】:它使用静态变量。 我的表格:
import java.util.Scanner;
class a
public static int x = 10;
public static int y = 10;
public static void lep(int ir)
switch(ir)
case 1: y++;
break;
case 2: y--;
break;
case 3: x++;
break;
case 4: x--;
break;
public static void main(String[] args)
Scanner scan = new Scanner(System.in);
int ir = scan.nextInt();
lep(ir);
System.out.println("x: " + x + " y: " + y);
解决了。非常感谢!
【讨论】:
这不是你所要求的,但我很高兴你明白了。 问题的目的是:如何修改 main 方法中的变量?抱歉,如果问题不好或无法理解,但您也可以帮助我。以上是关于在 Java 中是不是可以在 main 方法中创建一个过程?的主要内容,如果未能解决你的问题,请参考以下文章