简体   繁体   中英

How can I use a Variable from a Class Runner to use in a Method in another Class? (BlueJ, Java)

I'm taking a coding class using BlueJ, and decided to surprise my teacher with a Text Adventure that uses a Class Runner and another class to have the methods to call. The problem is, I don't know how to use a variable that I established in the Runner, into a method in the Method Class, which I will then call into the Runner. Here is my code:

(This is the runner)

import java.util.*;
public class TextAdventureRunner
{
    public static void main (String[]Args)
    {
    TextAdventureCode run = new TextAdventureCode();
    Scanner kb = new Scanner(System.in);

    String x = "";
    System.out.print("Enter Your Name: : ");
    x = kb.nextLine();
    System.out.println(x);

    run.Hi();
    run.HiTwo();
    }
}

(This is the code that contains the methods)

import java.util.*;
public class TextAdventureCode extends TextAdventureRunner
{
Scanner kb = new Scanner(System.in);

    public static void Hi()
    {
        System.out.println("Hi" + x);
    }

    public static void HiTwo()
    {
        System.out.println("");
    }

}

You see, In my method Hi(), there is an error where the x should be. the error reads "cannot find symbol - variable x" even though i extended the class and declared an object in the other class... any help?

You can declare your TextAdventureCode like this:

 import java.util.*;
public class TextAdventureCode extends TextAdventureRunner
{
Scanner kb = new Scanner(System.in);

    public static void Hi(String x) //Modification
    {
        System.out.println("Hi" + x);
    }

    public static void HiTwo()
    {
        System.out.println("");
    }
}

And declare TextAdventureRunner like this:

    import java.util.*;
    public class TextAdventureRunner
    {
    public static void main (String[]Args)
    {
    TextAdventureCode run = new TextAdventureCode();
    Scanner kb = new Scanner(System.in);

    String x = "";
    System.out.print("Enter Your Name: : ");
    x = kb.nextLine();
    System.out.println(x);

    run.Hi(x);  // Modification
    run.HiTwo();
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM