gpt4 book ai didi

java - 理解java方法的问题

转载 作者:太空宇宙 更新时间:2023-11-04 07:03:09 25 4
gpt4 key购买 nike

也许我在java基础理解方面存在严重差距。在下面的代码中,我无法理解 getLength 方法如何计算步行长度。为什么要在尾部上记忆自己?

class Point {

private int x;
private int y;

public Point(int x, int y) {
this.x = x;
this.y = y;
}

public static void main(String argv[]) {

Point p1 = new Point(0, 0);
// Walk w1 = new Right(new Down(new Left(new Up(new Stop()))));
Move w2 = new Left(new Left(new Up(new Stop())));
// Walk w3=new Right(new Stop());
System.out.println(w2.tail);
}
}

abstract class Walk {

public abstract boolean isStop();

public abstract int getLength();
}

class Stop extends Walk {

@Override
public boolean isStop() {
return true;
}

@Override
public int getLength() {
return 0;
}
}

abstract class Move extends Walk {

Walk tail;


@Override
public int getLength() {

return 1 + tail.getLength();
}

Move(Walk tail) {
this.tail = tail;

}

@Override
public boolean isStop() {
return true;
}
}

class Right extends Move {

public Right(Walk tail) {

super(tail);

}
}

class Left extends Move {

public Left(Walk tail) {
super(tail);
}
}

class Up extends Move {

public Up(Walk tail) {
super(tail);
}
}

class Down extends Move {

public Down(Walk tail) {
super(tail);
}
}

最佳答案

您似乎正在创建自己的链接列表,并且 getLength() 方法会迭代整个列表,返回完整的总和。

顺便说一句,请修改此网站的代码格式,尤其是缩进。

关于java - 理解java方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21800064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com