在另一个类的方法(java)中使用驱动程序类中的变量

时间:2014-09-13 07:12:06

标签: java class variables return

我用面向对象的方法用Java编写我的第一个程序。到目前为止,我一直在学习使用顺序方法在Java中编程,但转向面向对象给我带来了一些问题。

首先,我的程序是一个简单的程序,让虚拟狗执行一些技巧。我有一个狗类和一个dogDriver类。在我的dogDriver类中,我有以下代码片段:

System.out.println("\nWhat trick shall Sparky do?");
System.out.println("Roll Over");
System.out.println("Jump");
System.out.println("Sit");
System.out.println("Bark");

System.out.print("\nYour command: ");
String command = keyboard.nextLine();

然而,在我的狗类中,我希望在方法中检索输入的命令并在那里执行计算,例如:

public String getResponse()
{
    if (command.equalsIgnoreCase("Roll Over"))
    {
        // Roll Over Code
        response = "I just Rolled Over!";
    }
    // rest of the commands
    return response;
}

我认为一个简单的选择是制作变量'命令' public在驱动程序类中使用:

if (dog.command.equalsIgnoreCase("Roll Over"))
// rest of code

但我听说将变量公之于众并不可取。 从我收集到的内容中,我可以使用“返回变量”将变量的值返回给驱动程序类,但是如何将变量值返回给类(即狗)来自司机班?

2 个答案:

答案 0 :(得分:1)

为什么不在Dog类中更改getResponse方法的签名,如下所示:

public String getResponse(final String command)
{
    if (command.equalsIgnoreCase("Roll Over"))
    {
        // Roll Over Code
        response = "I just Rolled Over!";
    }
    // rest of the commands
    return response;
}

据我所知,您将在DogDriver类中创建Dog类的实例。您可以调用getResponse并将用户输入命令传递给它。

答案 1 :(得分:0)

很困惑你问我的理解是什么,你无法将响应返回给狗司机类,所以只需从你的狗司机类调用getResponse方法:

public class DogDriver{
public static void main(String args[]){
    System.out.println("\nWhat trick shall Sparky do?");
    System.out.println("Roll Over");
    System.out.println("Jump");
    System.out.println("Sit");
    System.out.println("Bark");

    System.out.print("\nYour command: ");
   final String command = keyboard.nextLine();

    Dog dog = new Dog();
   String response = dog.getResponse(command);
    System.out.println(response);
}
}

你的狗类代码将是

public String getResponse(final String command)
{
    if (command.equalsIgnoreCase("Roll Over"))
    {
        // Roll Over Code
        response = "I just Rolled Over!";
    }
    // rest of the commands
    return response;
}