在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可以从主方法调用。请不要破坏你的问题。我同意,这不是一个漂亮的解决方案,最好避免。嗯,我不知道你可以在方法中创建这样的类。我当然知道匿名内部类,但这对我来说是一个新的。我同意,这不是一个漂亮的解决方案,最好避免。嗯,我不知道你可以在一个方法中创建这样的类。我当然知道匿名内部类,但这对我来说是一个新的类。这并不是你想要的,但我很高兴你找到了它。问题的目的是:如何修改主方法中的变量?如果问题不好或不可理解,很抱歉,但您也可以帮助我。这不是您要求的,但我很高兴您能理解。问题的目的是:如何修改主方法中的变量?如果问题不好或不可理解,很抱歉,但你也可以帮助我。