Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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中,是否可以在main方法中创建过程?_Java_Variables_Methods_Main_Procedure - Fatal编程技术网

在Java中,是否可以在main方法中创建过程?

在Java中,是否可以在main方法中创建过程?,java,variables,methods,main,procedure,Java,Variables,Methods,Main,Procedure,资料来源: 我想把这部分重复几次: 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){

资料来源:

我想把这部分重复几次:

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;
        }
    }
}

但我不想写不止一次。这就是为什么我想把它写成一个过程或方法。有没有办法写一个方法,可以修改我的main方法中的变量

在您的情况下,您不能这样做,因为您正在与。但是,如果使用引用类型,则可以在将其传递给其他方法时修改其内容

问题的解决方案是在更高级别上定义变量(此处为实例范围)或将包装类型传递给方法(例如
int
具有相应的引用类型
Integer
)。不过,我不建议您采用后一种方法

另一种可能更有趣的解决方案是将其封装在
main
方法中。我不完全清楚你想做什么,但你肯定应该看看它是否能像这样解决

请注意,您使用的是
main
方法,因此要调用的任何方法都必须是
static
。正确的代码不会这样做,而是使用对象和实例方法


但是不,您不能嵌套方法。

在您的情况下,您不能嵌套方法,因为您正在使用。但是,如果使用引用类型,则可以在将其传递给其他方法时修改其内容

问题的解决方案是在更高级别上定义变量(此处为实例范围)或将包装类型传递给方法(例如
int
具有相应的引用类型
Integer
)。不过,我不建议您采用后一种方法

另一种可能更有趣的解决方案是将其封装在
main
方法中。我不完全清楚你想做什么,但你肯定应该看看它是否能像这样解决

请注意,您使用的是
main
方法,因此要调用的任何方法都必须是
static
。正确的代码不会这样做,而是使用对象和实例方法


但是不可以,您不能嵌套方法。

您可以通过在主方法中创建一个类来实现这一功能

一个简单的例子:

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;
}

它使用的是静态变量。 我的表格:

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;
    }
}

解决了。多谢各位

它正在处理静态变量。 我的表格:

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;
    }
}

解决了。多谢各位

可能的重复?不,不能将一个方法放在另一个方法中(除了匿名类的一些奇怪的东西)。但是,包含main方法的类可以有任意多个其他方法。另一种解决方案是创建
x
y
静态字段,以便您可以从从
Test1
中调用的另一个静态方法修改它们。不,您不能创建“main方法中的过程”,但是你可以在Test1类中创建一个静态方法。wch可以从主方法调用。请不要破坏你的问题可能的重复?不,你不能将一个方法放在另一个方法中(除了匿名类的一些奇怪的事情)。但是,包含main方法的类可以有任意多个其他方法。另一种解决方案是创建
x
y
静态字段,以便您可以从从
Test1
中调用的另一个静态方法修改它们。不,您不能创建“main方法中的过程”,但是你可以在Test1类中创建一个静态方法。wch可以从主方法调用。请不要破坏你的问题。我同意,这不是一个漂亮的解决方案,最好避免。嗯,我不知道你可以在方法中创建这样的类。我当然知道匿名内部类,但这对我来说是一个新的。我同意,这不是一个漂亮的解决方案,最好避免。嗯,我不知道你可以在一个方法中创建这样的类。我当然知道匿名内部类,但这对我来说是一个新的类。这并不是你想要的,但我很高兴你找到了它。问题的目的是:如何修改主方法中的变量?如果问题不好或不可理解,很抱歉,但您也可以帮助我。这不是您要求的,但我很高兴您能理解。问题的目的是:如何修改主方法中的变量?如果问题不好或不可理解,很抱歉,但你也可以帮助我。