如何在不同的类中打印一个类中定义的String?

Dan*_*eed 2 java string class

我有两节课.在第一个中,我使用它Scanner来检索用户的名称,然后将其存储在String被调用的中name.然后说,我开始一个新的课程,并希望打印出来,我该怎么做呢.所以我只是把这段代码写成一个例子,这样你就可以了解我想要问的内容.我会发布这两个课程.

import java.util.Scanner;

public class One {
    public static void main(String[] args) {

        String name;
        String start;
        Scanner input = new Scanner(System.in);

        System.out.println("Hello, what is your name?");
        name = input.nextLine();

        System.out.println("Hello "+name+", welcome! To ocntinue, please hit any key.");
        start = input.nextLine();

        if(start != null){
            Two object = new Two();
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

二等.

public class Two {
    public Two() {
        System.out.println("Ok "+One.name+", lets start!");
    }
}
Run Code Online (Sandbox Code Playgroud)

chr*_*isw 5

所以,你可能会做这样的事情: -

class One
{
  private String name = "bob";

  public String getName()
  {
    return name;
  }

  public static void main(String [] args)
  {
    One one = new One();
    Two two = new Two(one);

    // You could also just pass an r-value to Two, as in, Two(new One()) if you
    // never require 'one' again
  }
}

class Two
{
  public Two(One one)
  {
    System.out.println("Ok " + one.getName() + ", lets start!");
  }
}
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?

  1. main入口点方法中创建两个类.
  2. 将实例传递One给构造函数Two
  3. 然后两个电话 getName()

正如其他人所建议的那样,你可以传递一个字符串作为构造函数; 或者,你可以两者都做,如果需要作为Java支持重载方法

建议

查看http://docs.oracle.com/javase/tutorial/java/javaOO/methods.html以获取重写方法,以便您可以看到如何通过值传递字符串和对象引用.你现在正在做的是传递one值的对象引用.可能不需要它,或者您可能希望使用接口提供限制,请参阅http://docs.oracle.com/javase/tutorial/java/concepts/interface.html