Originariamente inviato da fermat
codice:
        public void setNome(String nm){
            nome=nm;
            String nm1=nome.substring(0,1).toUpperCase();
            String nm2=nm.substring(1);
            String nm3=nm1.concat(nm2);
quello che vorrei ottenere è la prima lettera (in questo caso del nome) maiuscola.
E lo fa di certo perché la procedura che hai fatto è corretta. Chiaramente però il risultato del concat non volevi assegnarlo ad una variabile locale nm3 ma al campo di istanza nome. Fai la assegnazione, appunto.

E tieni presente i casi particolari. Se a setNome viene passata una stringa vuota "", la tua procedura così come è lancia una eccezione (indice "fuori" range).