如何在java中使用getY()方法?

时间:2017-04-12 20:28:30

标签: java methods actionlistener getter

我在本网站上发现了很多关于如何在java中使用getter函数的问题,但是我还没有找到许多这些问题的真正答案,这就是我问这个问题的原因。

这是我的一段代码:

y - 形状高度

x - 形状宽度

posX - 形状在x轴上的位置

posY - 形状在y轴上的位置

速度 - 快速旅行

speedY - 等于速度,特别适合在y轴上移动

halfY - y的一半和距离形状应该在转向之前向下移动

public void actionPerformed(ActionEvent e){
    if(posY == 0){
        posX = posX + speed;
    }
    if((posX <= 0)&&(posY != 0)){
        posX = posX + speed - speed;
        posY = posY + speedY;
    }
    if(posX >= 600 - x){
        posX = posX + speed - speed;
        posY = posY + speedY;       
    }
    if(posY >= y - halfY){
        posX = posX - speed;
    }
    repaint();
}

移动后我想获得形状的当前y位置并在另一种方法中使用它,但我不确定如何做到这一点,这也是一个void函数,所以我不确定如何得到y并使用它在同一类别中的另一种方法。

2 个答案:

答案 0 :(得分:2)

假设您有一个类似于以下

的类
public class Point {
    // This fields can't be accessed outside of this class
    private int x;
    private int y;

    /*....More code...*/

    // To be able to update and acces the fields x and y from the outside  
    // you need getters and setters.

    // The getters
    public int getX(){
        return this.x;
    }

    public int getY(){
        return this.y;
    }

    // The setters
    public void setX(int new_x){
        this.x = new_x;
    }

    public void setY(int new_y){
        this.y = new_y;
    }
}

您的更新代码现在看起来像。

public void actionPerformed(ActionEvent e){
    if(pos.getX() == 0){
        pos.setX(pos.getX() + speed);
    }
    else if((pos.getX() <= 0) && (pos.getY() != 0)){
        pos.setX(pos.getX() + speed - speed);
        pos.setY(pos.getY() + speedY);
    }
    else if(pos.getX() >= 600 - x){
        pos.setX(pos.getX() + speed - speed);
        pos.setY(pos.getY() + speedY);       
    }
    else if(pos.getY() >= y - halfY){
        pos.getX(pos.getX() - speed);
    }
    repaint();
}

其中posPoint的实例。

答案 1 :(得分:1)

这里有一个基本的吸气功能(假设你的posX / Y是积分)

public Point getX() { return this.posX; }

public Point getY() { return this.posY; }

如果你想使用这个类的实例在另一个类中调用它,那么只需执行objectname.getX / Y();

此外,如果这些位置是实例数据(它们应该是),你可以调用objectname.posX / Y;,尽管我更喜欢使用方法,除非必要。

如果这不能回答您的问题,请包括整个课程以及您尝试做的更详细的说明。

希望我帮助过。