Ayuda con codigo que no ingresa ni imprime datos de un arreglo

Saludos, tengo este proyecto donde se implementan POJOS, CRUD y métodos, además de arreglos. El problema es que el método nuevoCliente no funciona, el método setImprimir al ser llamado desde una clase prueba tampoco y solo imprime espacios en blanco, al igual que los otros métodos como editar, buscar y eliminar, además de redimensionar el arreglo por si llega al limite de su tamaño. No encuentro el error, espero puedan ayudarme.

package dominio;

import java.util.Date;

/**
*
* @author mofg
*/

public class Banco {

private String nombre;
private static Cliente[] clientes;
private static int numClientes;
private static Empleado[] empleados;
private static int numEmpleados;
private Date nacio;
//static final define constantes que no se pueden cambiar
private static final double TASA_INTERES = 0.8;

static {
clientes = new Cliente[3];
numClientes = 0;
empleados = new Empleado[3];
numEmpleados = 0;
}

//inicializar el arreglo
public Banco() {
this.nombre = "Banco x";
clientes = new Cliente[3];
numClientes = 0;
empleados = new Empleado[3];
numEmpleados = 0;
}

public Banco(String nombre) {
this.nombre = nombre;

}

public String getNombre() {
String nombre;
return this.nombre;

}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public boolean nuevoCliente(Cliente cliente) {
return false;

}
//creando un metodo con los atributos

public void nuevoCliente(String nombre, String apellido, int edad) {
// clientes[numClientes]= new Cliente(nombre, apellido, edad);
//numClientes=numClientes++;

if (numClientes == clientes.length) {
Cliente clienteaux[] = clientes;

}
clientes[getNumClientes()] = new Cliente(nombre, apellido, edad);
setNumClientes(numClientes++);
}

public int getNumClientes() {
return numClientes;
}

public void setNumClientes(int numClientes) {
this.numClientes = numClientes;
}

public Cliente getCliente(int indice) {
return clientes[indice];
}

/**
* @return the numEmpleados
*/

public int getNumEmpleados() {
return numEmpleados;
}

/**
* @param numEmpleados the numEmpleados to set
*/

public void setNumEmpleados(int numEmpleados) {
this.numEmpleados = numEmpleados;
}

public Empleado getEmpleado(int indice) {
return empleados[indice];
}

public String imprimirClientes() {
String texto = "";
for (int i = 0; i < numClientes; i++) {
texto += "\n Cliente" + clientes[i];
//"[ " + (i + 1) + " ]" + this.getCliente(i).toString();
}
return texto;

}

public String imprimir() {
return "Nombre del banco: " + this.getNombre();
}

public void redimensionarCliente(String nombre, String apellido, int edad) {

if (numClientes == clientes.length) {
Cliente cliente_aux[] = clientes;
clientes = new Cliente[clientes.length + 1];
System.arraycopy(cliente_aux, 0, clientes, 0, clientes.length - 1);
}
clientes[getNumClientes()] = new Cliente(nombre, apellido, edad);
setNumClientes(getNumClientes() + 1);
}

public void eliminarCliente(int posicion) {

Cliente clienteaux[] = clientes;
clientes = new Cliente[clientes.length - 1];
if (posicion == 0) {

System.arraycopy(clienteaux, 1, clientes, 0, clientes.length);

} else if (posicion == clientes.length) {
System.arraycopy(clienteaux, 0, clientes, 0, clientes.length);
} else if (posicion > 0 && posicion < clientes.length) {
System.arraycopy(clienteaux, 0, clientes, 0, posicion - 1);
System.arraycopy(clienteaux, posicion + 1, clientes, posicion, clientes.length);

}
numClientes = numClientes - 1;

}

public void modificarCliente(int posicion, String nombre, String apellido, int edad) {
clientes[posicion] = new Cliente(nombre, apellido, edad);

}

public void nuevoEmpleado(String nombre, String cedula, double salario) {

if (numEmpleados == empleados.length) {
Empleado empleadoaux[] = empleados;
empleados[getNumEmpleados()] = new Empleado(nombre, cedula, salario);
setNumEmpleados(getNumEmpleados());

}
}

public void nuevoEmpleado(Empleado e1) {

if (getNumEmpleados() == empleados.length) {
Empleado empleado_aux[] = empleados;
empleados = new Empleado[empleados.length + 1];
System.arraycopy(empleado_aux, 0, empleados, 0, empleados.length - 1);
}
empleados[getNumEmpleados()] = e1;
setNumEmpleados(getNumEmpleados() + 1);
}

public void redimensionarEmpleado(String nombre, String cedula, double salario) {

if (getNumEmpleados() == empleados.length) {
Empleado empleado_aux[] = empleados;
empleados = new Empleado[empleados.length + 1];
System.arraycopy(empleado_aux, 0, empleados, 0, empleados.length - 1);
}
empleados[getNumEmpleados()] = new Empleado(nombre, cedula, salario);
setNumEmpleados(getNumEmpleados() + 1);
}

public String imprimirEmpleado() {
String texto;
texto = " ";

for (int i = 0; i < getNumEmpleados(); i++) {
texto += "EMPLEADO [" + (i + 1) + "]" + this.getEmpleado(i).toString();
}
return texto + "\n";
}

public void eliminarEmpleado(int posicion) {

Empleado empleadoaux[] = empleados;
empleados = new Empleado[empleados.length - 1];
if (posicion == 0) {

System.arraycopy(empleadoaux, 1, empleados, 0, empleados.length);

} else if (posicion == empleados.length) {
System.arraycopy(empleadoaux, 0, empleados, 0, empleados.length);
} else if (posicion > 0 && posicion < empleados.length) {
System.arraycopy(empleadoaux, 0, empleados, 0, posicion - 1);
System.arraycopy(empleadoaux, posicion + 1, empleados, posicion, empleados.length);

}
setNumEmpleados(getNumEmpleados() - 1);

}

public boolean validarDuplicados(Empleado e) {

for (Empleado emp : empleados) {

if (emp.equals(e)) {
return true;
}
}
return false;
}

}<code>

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de adrianaaae

Donde esta el main??

Añade tu codigo bien.
Añade el metodo main
Añade los pojos Clientes y Empleado.
Por que todo tu codigo esta en el pojo de Banco???