【问题标题】:How to pass a String value to another class in Java如何将字符串值传递给Java中的另一个类
【发布时间】:2015-05-23 05:11:11
【问题描述】:

目前,我的 Java 代码遇到了问题。我对 Java 有点陌生,所以如果你牢记这一点,我会很高兴的。

我的问题是将字符串值从一个类传递到另一个类。

主类:

private static void charSurvey() 
{
    characterSurvey cSObj = new characterSurvey();
    cSObj.survey();

    System.out.println();
}

第二:

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;


public class characterSurvey 
{   
    public void survey(String character)
    {
        Scanner s = new Scanner(System.in);

        int smartChina = 0,smartAmerica = 0,dumbAmerica = 0;
        String answer;

        System.out.println("Are you good with girls?");
        System.out.println("y/n?");
        answer = s.nextLine();
        if(answer.equalsIgnoreCase("y"))
        {
            smartChina = smartChina - 3;
            smartAmerica = smartAmerica + 2;
            dumbAmerica = dumbAmerica + 4;
        }   
        //... 
        //ASKING SEVERAL OF ABOVE ^


        List<Integer> charSelect = new ArrayList<Integer>();
        charSelect.add(smartChina);
        charSelect.add(smartAmerica);
        charSelect.add(dumbAmerica);

        Collections.sort(charSelect);
        Collections.reverse(charSelect);

        int outcome = charSelect.get(0);

        if(smartChina == outcome)
        {
            character = "smartChina";
        }
        else if(smartAmerica == outcome)
        {
             character = "smartAmerica";
        }
        else if(dumbAmerica == outcome)
        {
            character = "dumbAmerica";
        }

        System.out.println(character);
        s.close();
        }
    }

当我调用第一个类时,我试图获取第二个类的值。

免责声明*此类中的字符串无意伤害任何人。这是我和中国室友之间的玩笑,谢谢。

【问题讨论】:

  • 我建议用更通用的东西替换代码中任何可能令人反感的细节。至于在你的主类中获取字符串,你可以将你的survey方法从void更改为String,然后return字符串。在你的主要课程中,你会做String data = survey()

标签: java string class parameters parameter-passing


【解决方案1】:

这里有几个错误。

首先,在您编写的主类中,您在 CharacterSurvey 对象上调用方法 survey(),但调查本身的实现方式需要一个字符串参数才能工作

public void survey(String character)

此方法也返回 void。如果您想以某种方式从该方法中获取一个字符串,您需要将该方法声明为

public String survey() {} 

这个方法现在返回一个字符串。

如果我要给出一个大致的想法,请在第二个类中声明一个 String 变量,该变量将在调查方法中进行操作,一旦调查被声明为 String 方法,则返回最后的值方法。

通过这样做,您将能够通过调用characterSurvey 对象上的方法来接收字符串值(当然也可以将值分配给字符串变量或使用它)。

希望对你有帮助

【讨论】:

  • 没问题,很高兴它有帮助
【解决方案2】:

好像你想在调查完成后获取你的主类中的角色,所以可以在main方法中打印出来。

您可以简单地将void survey 方法更改为String survey 方法,允许您在调用该方法时为return 一个值:

class CharacterSurvey {
    public String takeSurvey() {
        //ask questions, score points
        String character = null;

        if(firstPerson == outcome) {
            character = "First Person";
        }

        return character;
    }
}

现在,当您调用此方法时,您可以检索从它返回的值:

class Main {
    public static void main(String[] args) {
        CharacterSurvey survey = new CharacterSurvey();

        String character = survey.takeSurvey();
        System.out.println(character);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    • 2019-10-19
    • 1970-01-01
    • 2017-05-11
    相关资源
    最近更新 更多