2015-04-03 161 views
-2

我有2个名为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... 

我这样做对吗?

回答

-1

在OO编程中,您的目标是模仿真实世界。

所以首先,问自己这个问题:是一个CastlingCheck董事会?回答是:不,不是。所以CastlingCheck不是董事会。

在OO中,这种问题称为继承,用extends关键字编程。

所以,CastlingCheck不应该扩展Board。

要解决您的问题,现在创建一个CastlingCheck类的实例并调用该方法。

所以在董事会类:

CastlingCheck cc = new CastlingCheck(); 
boolean b = cc.testCastling(...); 

但是你应该更好地遵循一些设计原则,如著名的MVC。网上有很多关于这方面的信息。

+0

CastlingCheck不是董事会。我知道。 CastlingCheck只是一个拥有我想在理事会课堂上要求的方法的课程。另外,是不是它应该是'boolean b = cc.textCastling(0,0,0,0)'?@StefaanNeyts – skg22 2015-04-03 07:55:21