猿问

Java:一次传递变量但不同的值

我是Java新手,我有这个问题。

我可以在不创建新对象的情况下多次将变量传递给方法吗?

例如,如果我有一个作为用户输入的变量 x,另一个名为 m 的变量和一个方法是:如果 x 是“h”那么 m 是“example1”,否则如果 x 是“f”m 是“example2”。

如果我写:

String x = Scanner.next();

我创建了传递 x 变量的对象,当我写的时候,

System.out.println(obj.m);

如果输入是 h 它将打印出“example1”

但是如果在我出现之后写下这个:

x = Scanner.next();
System.out.println(obj.m);

我写下输出的任何字符都是“示例 1”

如果我第一次输入“f”,输出将是“example2”但是如果我第二次输入“h”,第二个 system.out.println() 最终将打印“example2”

那么是否可以只传递一个变量,其值随时间变化而不创建新对象?


MMMHUHU
浏览 173回答 2
2回答

LEATH

如果我正确理解您的问题,那么是的,您可以多次将变量传递给方法,而无需创建新对象。假设您创建了一个这样的类:public class Test {    public String m;        public void testMethod(String x) {        if ("h".equals(x)) {            m = "example1";        } else if ("f".equals(x)) {            m = "example2";        } else {            m = "other";        }    }}如果你在 main 方法中从这个类创建了一个对象并传入不同的值x作为 的参数testMethod(),那么 的值m会改变:public class MainClass {    public static void main(String[] args) {        Test obj = new Test();                String x = "h";        obj.testMethod(x);        System.out.println(obj.m); // prints example1                x = "f";        obj.testMethod(x);        System.out.println(obj.m); // prints example2    }}

拉风的咖菲猫

据我了解您的问题,我添加了一个解决方案,该解决方案将创建一次您提到的对象,并在您输入值时重复调用其中的方法。这可能会帮助你import java.util.Scanner;public class A {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        ClassOfYourObject object = new ClassOfYourObject();        while (true) {            System.out.print("Enter letter : ");            String x = scanner.next();            object.yourMethodToPrint(x);        }    }}class ClassOfYourObject {    void yourMethodToPrint(String value) {        if (value.equals("h")) {            System.out.println("example1");        } else if (value.equals("f")) {            System.out.println("example2");        } else {            System.out.println("Invalid letter");        }    }}
随时随地看视频慕课网APP

相关分类

Java
我要回答