Java:如何在方法中创建对象并在整个类中使用它?
所以我对Java还不熟悉,甚至不确定这是否可以从一开始。以上代码都在一个类中Java:如何在方法中创建对象并在整个类中使用它?,java,class,object,parameters,interface,Java,Class,Object,Parameters,Interface,所以我对Java还不熟悉,甚至不确定这是否可以从一开始。以上代码都在一个类中Human正在实现界面Player。我想使用方法setupPlayers中的类Human创建一个对象CodeMaker,然后在方法示例use中使用此对象。有办法做到这一点吗?如果没有的话,谁能想出其他的选择呢?干杯 您可以将播放器对象存储为实例变量: public void setupPlayers() { System.out.println("Would you like the Code Maker to
Human
正在实现界面Player
。我想使用方法setupPlayers
中的类Human
创建一个对象CodeMaker
,然后在方法示例use
中使用此对象。有办法做到这一点吗?如果没有的话,谁能想出其他的选择呢?干杯 您可以将播放器
对象存储为实例变量:
public void setupPlayers() {
System.out.println("Would you like the Code Maker to be Human or CPU? :");
String input = mySc.next();
if (input == "Human") {
Player CodeMaker = new Human();
}
else {
Player CodeMaker = new CPU();
}
public void exampleUse() {
CodeMaker.getCode();
}
您可以将
Player
对象存储为实例变量:
public void setupPlayers() {
System.out.println("Would you like the Code Maker to be Human or CPU? :");
String input = mySc.next();
if (input == "Human") {
Player CodeMaker = new Human();
}
else {
Player CodeMaker = new CPU();
}
public void exampleUse() {
CodeMaker.getCode();
}
只需创建类的一个成员:
private Human CodeMaker编码>并在构造函数中初始化它CodeMaker=newplayer()代码>
不要做Player CodeMaker=新人类()代码>-这会给您一个错误,因为您无法创建接口对象。只需创建类的成员:私有人工代码生成器编码>并在构造函数中初始化它CodeMaker=newplayer()代码>
不要做Player CodeMaker=新人类()代码>-这会给您一个错误,因为您无法创建接口的对象。创建一个类字段变量(私有,用于良好的封装)并使用“string”.equals(object)
检查字符串相等性()
也许您应该将input=mySc.next()包装成这样的try/catch,因为input read可能引发异常
private Player codeMaker;
public void setupPlayers() {
System.out.println("Would you like the Code Maker to be Human or CPU? :");
String input = mySc.next();
if ("Human".equals(input)) {
codeMaker = new Human();
}
else {
codeMaker = new CPU();
}
}
public void exampleUse() {
codeMaker.getCode(); // you need to define a return or consumption HERE
}
创建一个类字段变量(private,用于良好的封装)并使用“string”.equals(object)
检查字符串相等性()
也许您应该将input=mySc.next()包装成这样的try/catch,因为input read可能引发异常
private Player codeMaker;
public void setupPlayers() {
System.out.println("Would you like the Code Maker to be Human or CPU? :");
String input = mySc.next();
if ("Human".equals(input)) {
codeMaker = new Human();
}
else {
codeMaker = new CPU();
}
}
public void exampleUse() {
codeMaker.getCode(); // you need to define a return or consumption HERE
}
我想你一定是说播放器
就是界面。请记住,如果要比较字符串,应使用equals
方法,而不是=
运算符
[...]
String input = null;
try {
input = mySc.next();
}
catch(Exception ex) {
throw ex;
}
if ("Human".equals(input) {
codeMaker = new Human();
}
[...]
我想你一定是说播放器
就是界面。请记住,如果要比较字符串,应使用equals
方法,而不是=
运算符
[...]
String input = null;
try {
input = mySc.next();
}
catch(Exception ex) {
throw ex;
}
if ("Human".equals(input) {
codeMaker = new Human();
}
[...]
请考虑研究创造性的设计模式。Java文化注重组织和良好的体系结构。你肯定会对世界设计模式给你带来惊喜。请参阅“创意设计模式”。Java文化注重组织和良好的体系结构。您肯定会对设计模式所能提供的世界感到惊讶。为什么要使用接口作为变量名?我没有收到通知point@fuzzy28-据我所知,Player
is和class impementing interfaceHuman
。不管怎样,“一个对象播放器使用一个叫做CodeMaker的人的接口”这句话有点让人困惑。^Player是接口,Human是实现Player的类。我认为“Human”和“CPU”都会实现“Player”…我已经修改了我的问题,希望它现在更有意义…为什么要使用接口作为变量名?我没有收到通知point@fuzzy28-据我所知,Player
is和class impementing interfaceHuman
。无论如何,“一个对象播放器使用一个叫做CodeMaker的人的接口”这句话有点让人困惑。^Player是接口,而Human是实现播放器的类。我认为“Human”和“CPU”都会实现“Player”。我已经修改了我的问题,希望它现在更有意义……非常感谢。在我在顶部添加了private-Player-codeMaker之后,它仍然不起作用,但是我将所有的==都改为equals,它工作得非常好。非常感谢。在我在顶部添加了private-Player-codeMaker之后,它仍然不起作用,但是我将所有的==都改为equals,它工作得非常好。