为什么Java认为我的对象是一个变量?
好的,我想做一个简单的乒乓球游戏。我有一个跟在鼠标后面的桨和一个可以弹跳的球。我在我的Sprite类中编写了一个方法为什么Java认为我的对象是一个变量?,java,variables,object,Java,Variables,Object,好的,我想做一个简单的乒乓球游戏。我有一个跟在鼠标后面的桨和一个可以弹跳的球。我在我的Sprite类中编写了一个方法CollizeSwith(Sprite s),用于检查球是否与桨碰撞(这是有效的,不是问题)。我有两个扩展我的精灵类的对象,一个球和一个桨对象。所以在我的球类课上,我试着检查它是否与球拍相撞。所以我试过了 if(this.collidesWith(paddle) == true){ System.out.println("They touched"); } 我也尝试过ba
CollizeSwith(Sprite s)
,用于检查球是否与桨碰撞(这是有效的,不是问题)。我有两个扩展我的精灵类的对象,一个球和一个桨对象。所以在我的球类课上,我试着检查它是否与球拍相撞。所以我试过了
if(this.collidesWith(paddle) == true){
System.out.println("They touched");
}
我也尝试过ball.collizeswith(拨片)
和其他组合,但它总是对拨片(以及我使用ball.collizeswith
时的球)说同样的话“找不到符号。符号:可变拨片(或球)。位置:类球”
如果我读对了,它会认为桨(和球)是变量,它会抱怨,因为它找不到它们。我怎样才能让它明白我传递的是对象,而不是变量
为了获得更多信息,之前的一项任务让我制作了两个盒子,让它们在碰撞时改变颜色。在那个作业中,我使用了与上面非常相似的代码
if(boxOne.collidesWith(boxTwo) == true){
System.out.println("yes");
}
在这段代码中,它工作得很好。程序知道boxOne和BoxII是我的Sprite类的子类。有人知道为什么它们不一样吗
class Paddle {}
桨
是一个类
Paddle paddle;
paile
是一个变量,它尚未引用paile
类(也称为对象)的实例
此拨杆
是一个变量,引用拨杆
的实例
ball.collidesWith(paddle)
是一个表达式,在名为ball
的变量所引用的对象上调用名为collizeswith
的方法,并将名为ball
的变量所引用的对象传递给它。如果未在此表达式的相同或封闭词法范围中定义名为ball
的变量和名为paile
的变量,则该表达式无效。如果您已经创建了变量ball
和patle
,但没有将它们设置为引用某个实例,那么表达式将编译,但不会正确执行。你应该有这样的东西:
Ball ball = new Ball();
Paddle paddle = new Paddle();
if (ball.collidesWith(paddle)) { ... }
或者,如您所述,如果您在Ball类中,您可能会有以下情况:
class Ball {
boolean collidesWith(Paddle paddle) {
...
}
void somethingElseWithAPaddle(Paddle paddle) {
if (this.collidesWith(paddle)) { ... }
}
}
在这种情况下,这个
是一个不需要定义的变量,它引用了调用方法的对象。无论您在哪里编写表达式,pable
都必须是一个在可见位置声明的变量
桨
是一个类
Paddle paddle;
paile
是一个变量,它尚未引用paile
类(也称为对象)的实例
此拨杆
是一个变量,引用拨杆
的实例
ball.collidesWith(paddle)
是一个表达式,在名为ball
的变量所引用的对象上调用名为collizeswith
的方法,并将名为ball
的变量所引用的对象传递给它。如果未在此表达式的相同或封闭词法范围中定义名为ball
的变量和名为paile
的变量,则该表达式无效。如果您已经创建了变量ball
和patle
,但没有将它们设置为引用某个实例,那么表达式将编译,但不会正确执行。你应该有这样的东西:
Ball ball = new Ball();
Paddle paddle = new Paddle();
if (ball.collidesWith(paddle)) { ... }
或者,如您所述,如果您在Ball类中,您可能会有以下情况:
class Ball {
boolean collidesWith(Paddle paddle) {
...
}
void somethingElseWithAPaddle(Paddle paddle) {
if (this.collidesWith(paddle)) { ... }
}
}
在这种情况下,这个
是一个不需要定义的变量,它引用了调用方法的对象。无论您在哪里编写表达式,pable
都必须是一个在可见位置声明的变量
桨
是一个类
Paddle paddle;
paile
是一个变量,它尚未引用paile
类(也称为对象)的实例
此拨杆
是一个变量,引用拨杆
的实例
ball.collidesWith(paddle)
是一个表达式,在名为ball
的变量所引用的对象上调用名为collizeswith
的方法,并将名为ball
的变量所引用的对象传递给它。如果未在此表达式的相同或封闭词法范围中定义名为ball
的变量和名为paile
的变量,则该表达式无效。如果您已经创建了变量ball
和patle
,但没有将它们设置为引用某个实例,那么表达式将编译,但不会正确执行。你应该有这样的东西:
Ball ball = new Ball();
Paddle paddle = new Paddle();
if (ball.collidesWith(paddle)) { ... }
或者,如您所述,如果您在Ball类中,您可能会有以下情况:
class Ball {
boolean collidesWith(Paddle paddle) {
...
}
void somethingElseWithAPaddle(Paddle paddle) {
if (this.collidesWith(paddle)) { ... }
}
}
在这种情况下,这个
是一个不需要定义的变量,它引用了调用方法的对象。无论您在哪里编写表达式,pable
都必须是一个在可见位置声明的变量
桨
是一个类
Paddle paddle;
paile
是一个变量,它尚未引用paile
类(也称为对象)的实例
此拨杆
是一个变量,引用拨杆
的实例
ball.collidesWith(paddle)
是一个表达式,在名为ball
的变量所引用的对象上调用名为collizeswith
的方法,并将名为ball
的变量所引用的对象传递给它。如果未在此表达式的相同或封闭词法范围中定义名为ball
的变量和名为paile
的变量,则该表达式无效。如果您已经创建了变量ball
和patle
,但没有将它们设置为引用某个实例,那么表达式将编译,但不会正确执行。你应该有这样的东西:
Ball ball = new Ball();
Paddle paddle = new Paddle();
if (ball.collidesWith(paddle)) { ... }
或者像你我一样