【问题标题】:How to get a string from another class?如何从另一个类中获取字符串?
【发布时间】:2013-01-26 17:07:42
【问题描述】:

到处搜索试图找到如何做到这一点。 我想从一个类中获取一个字符串,我在进入第二个类之前设置了变量,并允许我在这个类中将它用作字符串。

基本上我想在另一个类中使用一个名为 LastName 的字符串。

如果需要,这是我的代码。

首次登录类:

import java.util.Scanner;

public class Login {
public void LoginScreen() {

    Agent AgentObject = new Agent();
    Citizen CitizenObject = new Citizen();

    String FirstName;
    String LastName;

    Scanner input = new Scanner(System.in);

    System.out.println("Welcome!");
    System.out.print("Please Enter Last Name: ");
    LastName = input.next();
    System.out.print("Please Enter First Name: ");
    FirstName = input.next();
    System.out.println("Hello " + FirstName + " " + LastName);

    System.out.print("Enter Password: ");
    String userinput = input.next();
    if (userinput.equals("Timmo")) {
        AgentObject.WelcomeAgent();
    } else {
        CitizenObject.WelcomeCitizen();
    }

}
}

二级特工类:

public class Agent {
public void WelcomeAgent() {
    Welcome WelcomeObject = new Welcome();
    Login LoginObject = new Login();

    System.out.println("Access Granted");
    System.out.print("Loading Data  ");
    int progress = 0;
    while (progress <= 100) {
        System.out.print(progress + " ");
        progress++;
    }
    System.out.println("    Data Loaded");

    System.out.println("Welcome Agent " + LastName);
    LoginObject.LoginScreen();
}
}

非常感谢任何帮助。谢谢

【问题讨论】:

  • 永远不要以大写符号开头的方法字段的变量。这是一种糟糕的风格。
  • Java 不会阻止死代码吗?你的WelcomeAgent 不应该编译..
  • 您在一个不返回数据的方法中返回一个字符串。 LastName 不是本地变量或字段变量.. 在 Agent 类中... 将 LastName 设为字段,以便您可以重用它。还假设 WelcomeAgent 确实编译,后续指令不会在 return 语句之后执行..

标签: java string class


【解决方案1】:

我知道您可能对 Java 很陌生 - 所以您可能缺乏一些基础知识。

在您的情况下,最好将字符串作为参数传递给方法 例如

public void WelcomeAgent(String lastName) {

当您调用该方法时,将该值发送到 例如

AgentObject.WelcomeAgent(userinput);    

顺便说一句,一些约定提示。变量和函数应该以小写字母开头。例如

String lastName;

Citizen citizen = new Citizen();

【讨论】:

  • 谢谢!问题已排序:) 是的,我有一段时间没有使用它了,请确保从现在开始以小写字母开头
  • 别担心,另一个提示 - 我会“压缩”:int progress = 0; while (progress
【解决方案2】:

您想访问 Agent 类中 LastName 的值吗?

如果你这样改怎么办

public class Login {

 String FirstName, LastName;



public void LoginScreen() {

Agent AgentObject = new Agent();
Citizen CitizenObject = new Citizen();
....
LastName = input.next();
 ...
 }

 public String getLastName()
 { return LastName; }

在类代理中

您可以使用 LoginObject.getLastName() 来获取它。

【讨论】:

    【解决方案3】:

    Login 类中为lastName 编写getter 方法。在Login 类中设置值后,将此类对象的引用发送到您要使用的其他类。最后调用onject.getLastName()方法并使用。

    示例:

    假设Login 类和Agent 类和lastName 在Login 类中声明,然后将Login 类的引用传递给Agent 类,并像我一样使用getter 方法从Agent 类访问它如上所述。

    【讨论】:

      猜你喜欢
      • 2017-11-19
      • 2017-03-25
      • 2014-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-05
      相关资源
      最近更新 更多