【问题标题】:How to transfer a variable from main method class to another class?如何将变量从主方法类转移到另一个类?
【发布时间】:2019-04-23 06:14:11
【问题描述】:

好的...在我的主课中,我要求用户输入一个输入 int 值。 现在我需要把这个值带到另一个类来做一些编码。怎么样?

主类代码:

neededValue = keyboard.nextInt();

object.methodName(xxxx, yyyy):

来自不同类中不同方法的代码:

public void methodName(double xxxx, int yyyy) {

        int index;

        for (index = 0; index < array.length; index++) {
            xxxx = array[index].xxxx;
            if (xxxx > **neededValue**) {
                //some more code

            }

        }
    }

假设用户输入是 4,我如何将“4”转移到其他类?

【问题讨论】:

  • 你将它作为参数传递。
  • 或者在你的主类中添加一个getter

标签: java class variables


【解决方案1】:

从主要:

neededValue = keyboard.nextInt();

object.methodName(xxxx, yyyy, neededValue):

来自班级:

public void methodName(double xxxx, int yyyy, int neededValue){
    int index;

    for (index = 0; index < array.length; index++) {
        xxxx = array[index].xxxx;
        if (xxxx > **neededValue**) {
            //some more code
        }
    }
}

【讨论】:

    【解决方案2】:

    将参数添加到您的另一个类方法并从您的主类传递值.. 与以下相同:

    class A{
    ...
    neededValue = keyboard.nextInt();
    
    DifferentClass object = new DifferentClass();
    object.methodName(xxxx, yyyy, neededValue):
    ...
    }
    
    class DifferentClass{
    public void methodName(double xxxx, int yyyy, int neededValue) {
    ...
    }
    }
    

    【讨论】:

      【解决方案3】:

      您需要将neededValue 作为参数传递

      neededValue = keyboard.nextInt();   
      object.methodName(xxxx, yyyy,neededValue):
      

      然后在methodName函数中

      public void methodName(double xxxx, int yyyy, int neededValue) {
      
          int index;
      
          for (index = 0; index < array.length; index++) {
              xxxx = array[index].xxxx;
              if (xxxx > **neededValue**) {
                  //some more code
              }
          }
      }
      

      希望对您有所帮助。

      【讨论】:

        【解决方案4】:
        1. 您可以将nextValue 变量直接传递给方法,例如:

        object.methodName(xxxx, yyyy, nextValue)

        1. 或者你可以在对象的A类中声明一个int变量:

          int someValue;

        并通过构造函数或设置器设置它

        object = new A(nextValue);
        or object.setNextValue(nextValue)
        

        那么,您的调用 object.methodName(xxxx, yyyy) 将与对象内的“someValue”字段一起使用

        【讨论】:

          【解决方案5】:

          有多种方法,下面列出了几种,

          i) 在您的方法中创建参数(在其他解决方案中说明)。

          ii) 在您的类中使用 get/set 方法在您的类中创建一个变量(在其他解决方案中说明)。

          iii) 在你的类中创建一个静态变量(解释如下)

          你的类中可以有一个静态变量,

          private static int neededValue;

          在你的主目录中,你可以为它赋值。

          ClassName.neededValue = keyboard.nextInt();
          
          object.methodName(xxxx, yyyy):
          

          而且你可以直接在你的类方法中使用,

          public void methodName(double xxxx, int yyyy){
          int index;
          
          for (index = 0; index < array.length; index++) {
              xxxx = array[index].xxxx;
              if (xxxx > ClassName.neededValue) {
                  //some more code
              }
           }
          }
          

          免责声明:在使用静态关键字之前了解更多。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-08-25
            • 2014-07-06
            • 2021-06-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-05-07
            • 2014-01-03
            相关资源
            最近更新 更多