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

时间:2013-04-19 14:10:13

标签: java string class

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

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();
        }

    }
}

5 个答案:

答案 0 :(得分: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!");
  }
}

发生了什么事?

  1. main入口点方法中创建两个类。
  2. One的实例传递给Two
  3. 的构造函数
  4. 然后拨打getName()
  5. 正如其他人所建议的那样,你可以传递一个字符串作为构造函数;或者,如果需要,您可以同时执行这两项操作,因为Java支持重载方法,请参阅

    <强>推荐

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

答案 1 :(得分:2)

使用构造函数传递值

public class Two {

private String value;

public Two(String a){

  this.value=a;

    System.out.println("Ok "+value+", lets start!");

  }

 //getter and setters
}

然后在创建实例时使用该构造函数

 Two object = new Two(name);

答案 2 :(得分:0)

将您的值传递给两个班级constructor

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

public Two(String  s){

    System.out.println("Ok "+s+", lets start!");

}

答案 3 :(得分:0)

要编译代码,请将String name变量移动到静态字段中:

public class One {

    public static String name;

    public static void main(String[] args){
        // Note: The "name" variable is no longer defined here
        String start; // etc
        // rest of code the same
    }
}

我不会告诉你这是一个很好的代码设计,但它会按照你的要求进行。

答案 4 :(得分:0)

你也会这样做

public class One {
    private String name;

    public void setName(String name){
      this.name = name;
    }

    public String getName(){
     retrun this.name;
    }

    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 two = new Two();
            two.printName(this); 
        }

    }

    class Two{

           public void printName(One one){
            System.out.println("" + one.getName() );
           }

    }