为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MMMHUHU 2022-01-12 14:14:38
我是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”那么是否可以只传递一个变量,其值随时间变化而不创建新对象?
查看完整描述

2 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

如果我正确理解您的问题,那么是的,您可以多次将变量传递给方法,而无需创建新对象。假设您创建了一个这样的类:


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

    }

}


查看完整回答
反对 回复 2022-01-12
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

据我了解您的问题,我添加了一个解决方案,该解决方案将创建一次您提到的对象,并在您输入值时重复调用其中的方法。这可能会帮助你


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");

        }

    }

}


查看完整回答
反对 回复 2022-01-12
  • 2 回答
  • 0 关注
  • 172 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号