Estou tentando fazer a soma do valor nome e do valor sobrenome para a string nomecompleto, dentro de Agenda, mas, não vai…
volta a seguinte linha:
“Seu nome completo e: nullnull”
só funciona com a linha que está comentada… mas, aí não adiantaria muito eu fazer a soma lá em cima, e teria de somar “manualmente” todos esses valores…
não tem uma forma de somar direto como o calculo na classe Dados?
System.out.printf("Seu nome completo e: %s\n",meuscontatos.getNomeCompleto());
Abraço.
D
davidbasto
Isso não funciona vc está definindo o valor de nomecompleto antes de ter qualquer String atribuída às variaveis nome e sobrenome.
No seu código, vc atribui um valor a nome completo no momento de sua declaração, o que é executado quando a instancia de Dados é criada. Neste momento nome e sobrenome não referenciam nenhuma String.
Se fizer como o Shaft disse e remover a variavel nomecompleto, vai funcionar, porque vc chamaria o método getNomeCompleto() após de ter atribuido Strings a nome e sobrenome e este método concatena as duas Strings e retorna sua referencia.
lucianosousa
davidbasto:
Isso não funciona vc está definindo o valor de nomecompleto antes de ter qualquer String atribuída às variaveis nome e sobrenome.
No seu código, vc atribui um valor a nome completo no momento de sua declaração, o que é executado quando a instancia de Dados é criada. Neste momento nome e sobrenome não referenciam nenhuma String.
Se fizer como o Shaft disse e remover a variavel nomecompleto, vai funcionar, porque vc chamaria o método getNomeCompleto() após de ter atribuido Strings a nome e sobrenome e este método concatena as duas Strings e retorna sua referencia.
ou seja, eu não posso fazer somas de strings sem antes elas terem algum valor?
desta forma:
“meuscontatos.nomecompleto = meuscontatos.nome + meuscontatos.sobrenome;”
está errado ou é incorreto de se fazer?
Andre_Brito
Exato.
lucianosousa:
2) desta forma:
“meuscontatos.nomecompleto = meuscontatos.nome + meuscontatos.sobrenome;”
está errado ou é incorreto de se fazer?
Você perguntou a mesma coisa, não perguntou? É errado fazer isso porque elas não possuem nenhum valor. Mas se elas tivessem valores, daria certo.
lucianosousa
Exato.
lucianosousa:
2) desta forma:
“meuscontatos.nomecompleto = meuscontatos.nome + meuscontatos.sobrenome;”
está errado ou é incorreto de se fazer?
Você perguntou a mesma coisa, não perguntou? É errado fazer isso porque elas não possuem nenhum valor. Mas se elas tivessem valores, daria certo.
andré, com valor mesmo…
eu coloquei assim:
System.out.println("Digite o nome:");meuscontatos.nome=input.nextLine();System.out.println("Digite o Sobrenome:");meuscontatos.sobrenome=input.nextLine();meuscontatos.nomecompleto=meuscontatos.nome+" "+meuscontatos.sobrenome;
dentro do programa principal.
só não sei se este tipo de soma de string é considerado correto… entende?
abs.
B
bKn
É correto sim. Depois procure ler sobre encapsulamento.
Andre_Brito
Como o bKn falou, é correto sim.
Existem outras formas de se concatenar cadeias de caracteres (formas mais rápidas a nível de performance, como usar outras classes para strings, mas para o começo é melhor usar String mesmo). E o ideal seria ter métodos de acesso para as variáveis, como getPrimeiroNome(). Dá uma procurada, como já foi falado, em encapsulamento e “getters and setters are evil”.