Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Java认为我的对象是一个变量?_Java_Variables_Object - Fatal编程技术网

为什么Java认为我的对象是一个变量?

为什么Java认为我的对象是一个变量?,java,variables,object,Java,Variables,Object,好的,我想做一个简单的乒乓球游戏。我有一个跟在鼠标后面的桨和一个可以弹跳的球。我在我的Sprite类中编写了一个方法CollizeSwith(Sprite s),用于检查球是否与桨碰撞(这是有效的,不是问题)。我有两个扩展我的精灵类的对象,一个球和一个桨对象。所以在我的球类课上,我试着检查它是否与球拍相撞。所以我试过了 if(this.collidesWith(paddle) == true){ System.out.println("They touched"); } 我也尝试过ba

好的,我想做一个简单的乒乓球游戏。我有一个跟在鼠标后面的桨和一个可以弹跳的球。我在我的Sprite类中编写了一个方法
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)) { ... }
或者像你我一样