1) praticamente la tua classe permette la costruzione di un oggetto tramite la conoscenza di due parametri (nome host e numero di porta). Questi parametri, però, possono avere valori di default, per cui viene resa possibile la creazione di un oggetto anche utilizzando i valori sottintesi. Nel tuo caso il costruttore con 1 argomento richiama al suo interno il costruttore con 2 argomenti, passandogli il nome host immesso dall'utente e la porta di default.
2) si tratta dello "switch statement", e può essere utilizzato in sostituzione di una serie di "if..else...else..". In pratica il tuo codice equivale a:
if (args.lenght == 0) {
iu = new InterfUtente();
} else if (args.lenght == 1) {
iu = new InterfUtente(args[0]);
} else if (args.lenght == 2){
iu ) new InterfUtente(args[0], Integer.parseInt(args[1]));
} else {
System.out.println("...");
return;
}
Lo switch statement può essere utilizzato con variabili di tipo char, byte, short e int.