我有两个名为CastlingCheck.java和Board.java的java文件。 CastlingCheck.java包含一个布尔方法(testCastling),我想在Board.java中调用它。
CastlingCheck.java:
package chess;
public class CastlingCheck extends Board{
public boolean testCastling(int oldX, int oldY, int newX, int newY) {
int deltax = newX - oldX;
if (1st condition) {
**code here**
return true;
}
if (2nd condition) {
**code here**
return true;
}
if (3rd condition) {
**code here**
return true;
}
if (4thnd condition) {
**code here**
return true;
}
return false;
}
}
Board.java:
package chess;
...code...
public boolean testCastling(int oldx, int oldy, int newx, int newy) {
return true;
}
...code...
我做得对吗?
答案 0 :(得分:-1)
在面向对象编程中,你的目标是模仿现实世界。
首先,问问自己这个问题:CastlingCheck是一个董事会吗?
答案是:不,不是。所以CastlingCheck不是董事会。
在OO中,这种问题称为继承,使用extends关键字编写。
因此,CastlingCheck不应该扩展Board。
要立即解决问题,请建立CastlingCheck类的实例并调用方法。
所以在董事会班上:
CastlingCheck cc = new CastlingCheck();
boolean b = cc.testCastling(...);
但是你应该更好地遵循一些设计原则,比如着名的MVC。互联网上有很多信息。