我在本网站上发现了很多关于如何在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并使用它在同一类别中的另一种方法。
答案 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();
}
其中pos
是Point
的实例。
答案 1 :(得分:1)
这里有一个基本的吸气功能(假设你的posX / Y是积分)
public Point getX() {
return this.posX;
}
public Point getY() {
return this.posY;
}
如果你想使用这个类的实例在另一个类中调用它,那么只需执行objectname.getX / Y();
此外,如果这些位置是实例数据(它们应该是),你可以调用objectname.posX / Y;,尽管我更喜欢使用方法,除非必要。
如果这不能回答您的问题,请包括整个课程以及您尝试做的更详细的说明。
希望我帮助过。