Java:不带逗号的参数列表
Java: Parameter list without comma
我遇到了一个带有参数列表的方法,其中参数没有用逗号分隔并且没有声明变量类型:
public int compareWith(Choice anotherChoice){
后来在 if-else 语句中结合另一种方法调用了这些参数,而没有在主体内进行任何进一步声明:
if ((this.type == 0)&&(anotherChoice.getType() == 1)){
return -1;
这是对整个class的简要总结:
public class Choice
{
private int type;
public Choice(int type)
{
//initialize the "type" instance varialble
this.type = type;
}
public int getType()
{
return type;
}
public int compareWith(Choice anotherChoice)
{
Choice choice1 = new Choice(0);
Choice choice2 = new Choice(1);
if ((this.type == 0)&&(anotherChoice.getType() == 1)){
return -1;
节目继续。我真的不明白 anotherChoice、getType() 和 choice2 之间的 link。这是在线课程中的一个任务,程序按预期运行,但我不知道为什么。
为了消除您的困惑,在此方法声明中:
public int compareWith(Choice anotherChoice){
anotherChoice 是 Choice 类型的参数。
我猜您是编程新手,所以我将快速解释一下发生了什么。如果我完全错过了你问题的重点,我很抱歉。
这一行:
public int compareWith(Choice anotherChoice){
是 Choice
对象的一部分。它需要另一个 Choice
对象并将其与自身进行比较。 ...或者至少,这是我所期望的。您提供的代码:
public int compareWith(Choice anotherChoice)
{
Choice choice1 = new Choice(0);
Choice choice2 = new Choice(1);
if ((this.type == 0)&&(anotherChoice.getType() == 1)){
return -1;
不完整,我不知道 choice1
和 choice2
应该做什么。我希望看到的代码看起来更像
public int compareWith(Choice anotherChoice)
{
if (this.type == anotherChoice.getType())
return 0;
return -1;
}
或类似的东西。
有帮助吗?
这是我的课程解决方案。可能不是最好的解决方案,但它奏效了,我获得了成绩。我现在卡在 LAB 04 TASK 3 上了。
int player=this.getType();//get value of choice1
int computer=anotherChoice.getType();// this get the value choise2 out of anotherChoise
int som;// this INT i made to make a sum
int result;
result = 0;//i already gave a value on the INT result
som = player - computer;//this is the sum of de values choice1 and choise2
if(player == computer) //all ties
result = 0;
else if(som == -1) //player ROCK and comp. PAPER or PAPER and SCISSOR
result = -1;
else if(som == 2) //player SCISSOR and comp. ROCK
result = -1;
else if(som == 1)//player SCISSOR and comp PAPER or PAPER and ROCK
result = 1;
else if(som == -2)//player ROCK and comp. SCISSOR
result = 1;
return result; // this line should be modified/removed upon finishing
我遇到了一个带有参数列表的方法,其中参数没有用逗号分隔并且没有声明变量类型:
public int compareWith(Choice anotherChoice){
后来在 if-else 语句中结合另一种方法调用了这些参数,而没有在主体内进行任何进一步声明:
if ((this.type == 0)&&(anotherChoice.getType() == 1)){
return -1;
这是对整个class的简要总结:
public class Choice
{
private int type;
public Choice(int type)
{
//initialize the "type" instance varialble
this.type = type;
}
public int getType()
{
return type;
}
public int compareWith(Choice anotherChoice)
{
Choice choice1 = new Choice(0);
Choice choice2 = new Choice(1);
if ((this.type == 0)&&(anotherChoice.getType() == 1)){
return -1;
节目继续。我真的不明白 anotherChoice、getType() 和 choice2 之间的 link。这是在线课程中的一个任务,程序按预期运行,但我不知道为什么。
为了消除您的困惑,在此方法声明中:
public int compareWith(Choice anotherChoice){
anotherChoice 是 Choice 类型的参数。
我猜您是编程新手,所以我将快速解释一下发生了什么。如果我完全错过了你问题的重点,我很抱歉。
这一行:
public int compareWith(Choice anotherChoice){
是 Choice
对象的一部分。它需要另一个 Choice
对象并将其与自身进行比较。 ...或者至少,这是我所期望的。您提供的代码:
public int compareWith(Choice anotherChoice)
{
Choice choice1 = new Choice(0);
Choice choice2 = new Choice(1);
if ((this.type == 0)&&(anotherChoice.getType() == 1)){
return -1;
不完整,我不知道 choice1
和 choice2
应该做什么。我希望看到的代码看起来更像
public int compareWith(Choice anotherChoice)
{
if (this.type == anotherChoice.getType())
return 0;
return -1;
}
或类似的东西。
有帮助吗?
这是我的课程解决方案。可能不是最好的解决方案,但它奏效了,我获得了成绩。我现在卡在 LAB 04 TASK 3 上了。
int player=this.getType();//get value of choice1
int computer=anotherChoice.getType();// this get the value choise2 out of anotherChoise
int som;// this INT i made to make a sum
int result;
result = 0;//i already gave a value on the INT result
som = player - computer;//this is the sum of de values choice1 and choise2
if(player == computer) //all ties
result = 0;
else if(som == -1) //player ROCK and comp. PAPER or PAPER and SCISSOR
result = -1;
else if(som == 2) //player SCISSOR and comp. ROCK
result = -1;
else if(som == 1)//player SCISSOR and comp PAPER or PAPER and ROCK
result = 1;
else if(som == -2)//player ROCK and comp. SCISSOR
result = 1;
return result; // this line should be modified/removed upon finishing