O que significa esse acento de exclamação?
sinal de negação ou seja ele vai executar caso o resultado da função posicaoInvalida seja falso
if(this.posValida(posicao) != posicao){
}
if (this.posValida(posicao) == false) {
}
é isso o que o ! significa (para esse caso)… faça o teste e tire suas conclusões:
boolean t = true;
boolean f = false;
System.out.println("!t " + !t);
System.out.println("t == false " + (t == false));
System.out.println("!f " + !f);
System.out.println("f == true " + (f == true));