Somar duas string's de classes distintas

7 respostas
lucianosousa

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?

obrigado e abs.

7 Respostas

S

Tenta fazer um método assim

public String getNomeCompleto()
{
	nomecompleto = String.format("%s %s", nome, sobrenome);

	return nomecompleto;
}

e usa esse método na hora de imprimir

System.out.printf("Seu nome completo e: %s\n", meuscontatos.getNomeCompleto());

Abraço.

D

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.

  1. ou seja, eu não posso fazer somas de strings sem antes elas terem algum valor?

  2. 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

É 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”.

Criado 17 de julho de 2009
Ultima resposta 23 de jul. de 2009
Respostas 7
Participantes 5