Проходит только предпоследний конструктор, хотя я особого его отличия не вижу. Если я правильно понял, то при отсутствующем значении, полям нужно задать "стандартные" значения. Для String это null, для int это по желанию. А вот инструкций к типу char я не вижу, кстати (решил поставить 0). Может, проблема в этом? Но почему тогда предпоследний конструктор (в порядке проверки) проходит?