I'm trying to make a checkers game as practice for personal reasons, as I am somewhat newer to Java and am trying to learn.
In class Board, I'm trying to call a method that requires a Board type as input, to see which pieces a specific piece could possibly jump.
Here's Board:
public class Board {
    private Piece[][] board;
    public Board(){
        board = new Piece[8][8];
    }
    public Piece pieceAtLocation(int x, int y){
        return board[x][y];
    }
    public boolean movePiece(int startX, int startY, int newX, int newY, String movementType){
        Piece temp = board[startX][startY];
        if(movementType.equals("move")){
            board[newX][newY] = temp;
            board[startX][startY] = null;
            return true;
        } else if(movementType.equals("jump")){
            int[][] possibleSpaces = temp.jumpableSpaces(this);
        }
        return false;
    }
}
Here's the Piece class it's calling from
public class Piece {
    private boolean isKinged;
    private boolean teamSided;
    private int x;
    private int y;
    public Piece(boolean teamSided, int x, int y){
        this.isKinged = false;
        this.teamSided = teamSided;
        this.x = x;
        this.y = y;
    }
    public boolean team(){
        return teamSided;
    }
    public boolean kinged(){
        return isKinged;
    }
    public int[][] jumpableSpaces(Board board){
        int[][] jumpTo = new int[4][2];
        if(x - 2 >= 0 && y + 2 < 8){
            if(board.pieceAtLocation(x - 2, y + 2) == null && board.pieceAtLocation(x - 1, y + 1).team() != teamSided){
                jumpTo[0][0] = x - 2;
                jumpTo[0][1] = y + 2;
            } else{
                jumpTo[0][0] = -1;
                jumpTo[0][1] = -1;
            }
        }
        if(x + 2 < 8 && y + 2 < 8){
            if(board.pieceAtLocation(x + 2, y + 2) == null && board.pieceAtLocation(x + 1, y + 1).team() != teamSided){
                jumpTo[1][0] = x + 2;
                jumpTo[1][1] = y + 2;
            } else{
                jumpTo[1][0] = -1;
                jumpTo[1][1] = -1;
            }
        }
        if(isKinged){
            if(x - 2 >= 0 && y - 2 >= 0){
                if(board.pieceAtLocation(x - 2, y - 2) == null && board.pieceAtLocation(x - 1, y - 1).team() != teamSided){
                    jumpTo[2][0] = x - 2;
                    jumpTo[2][1] = y - 2;
                }
            }
            if(x - 2 >= 0 && y + 2 < 8){
                if(board.pieceAtLocation(x - 2, y + 2) == null && board.pieceAtLoaction(x - 1, y + 1).team() != teamSided){
                    jumpTo[3][0] = x - 2;
                    jumpTo[3][1] = y + 2;
                }
            }
        } else{
            jumpTo[2][0] = -1;
            jumpTo[2][1] = -1;
            jumpTo[3][0] = -1;
            jumpTo[3][1] = -1;
        }
        return jumpTo;
    }
}
My question involves line 19 of Board. Is it possible to leave it as is and have it input itself using "this" or will I have to do something else? I'm not yet fully understanding of what "this" means, as I heard about its use in the constructors from a friend.
 
     
    