[RESOLVIDO] Programa em Linguagem Java está Funcionando da Forma Errada

// Programa de cadastro do cliente
import java.util.Scanner;

public class ClienteP {
  
  public static void main(String[] args) {
    Scanner captura = new Scanner(System.in);
    
    ClienteC NOME1 = new ClienteC();
    ClienteC CPF1 = new ClienteC();
    
    ClienteC NOME2 = new ClienteC();
    ClienteC CPF2 = new ClienteC();
    
    ClienteC NOME3 = new ClienteC();
    ClienteC CPF3 = new ClienteC();
    
    // variáveis
    String nome1, nome2, nome3;
    Double cpf1, cpf2, cpf3;
    
    // Primeiro Cliente
    System.out.print("\nInsira o nome do primeiro cliente: ");
    nome1 = captura.nextLine();
    NOME1.definirNome(nome1);
    
    System.out.print("Insera o CPF do primeiro cliente: ");
    cpf1 = captura.nextDouble();
    CPF1.definirCPF(cpf1);
    
    // Segundo Cliente
    System.out.print("Insira o nome do primeiro cliente: ");
    nome2 = captura.nextLine();
    NOME2.definirNome(nome2);
    
    System.out.print("Insera o CPF do primeiro cliente: ");
    cpf2 = captura.nextDouble();
    CPF2.definirCPF(cpf2);
    
    // Terceiro Cliente
    System.out.print("Insira o nome do primeiro cliente: ");
    nome3 = captura.nextLine();
    NOME3.definirNome(nome3);
    
    System.out.print("Insera o CPF do primeiro cliente: ");
    cpf3 = captura.nextDouble();
    CPF3.definirCPF(cpf3);
    
    System.out.printf("%n1- Cliente %s%nCPF: %.0f%n", NOME1.pegaNome(), CPF1.pegaCPF());
    System.out.printf("%n2- Cliente %s%nCPF: %.0f%n", NOME2.pegaNome(), CPF2.pegaCPF());
    System.out.printf("%n3- Cliente %s%nCPF: %.0f%n", NOME3.pegaNome(), CPF3.pegaCPF());
  }
}
// Armazena o CPF e o nome do cliente
public class ClienteC {
  private Double cpf;
  String nome;
  
  public void definirNome(String nome) {
		this.nome = nome;
	}
	
	public String pegaNome() {
		return nome;
	}
	
	public void definirCPF(Double cpf) {
		this.cpf = cpf;
	}
	
	public Double pegaCPF() {
		return cpf;
	}
}

Isso tudo de código é um programa só. Esse programa é baseado em Variáveis de Instâncias. No final o programa é para exibir na tela do usuário a seguinte mensagem:

1- Cliente *Ricardo*
CPF: *14968549284*

2- Cliente *Ricardo*
CPF: *54982659549*

3- Cliente *Ricardo*
CPF: *087780984190*

Ao executar o programa do jeito que está descrito acima, ele não permite digitar os nomes dos cliente 2 e 3. Engraçado que os CPFs deram certo, mas os nomes não.

O seu código não faz sentido a partir do momento em que vc faz isso:

ClienteC NOME1 = new ClienteC();
ClienteC CPF1 = new ClienteC();

Se o Cliente possui um nome e um CPF, vc não precisa declarar dessa forma que está fazendo. O certo seria assim:

System.out.print("\nInsira o nome do primeiro cliente: ");
String nome = captura.nextLine();

System.out.print("Insera o CPF do primeiro cliente: ");
String cpf = captura.nextLine();

Cliente cliente1 = new Cliente(nome, cpf);

Nunca coloque um CPF como um número. Sempre que puder, use o CPF como um texto (String).

3 curtidas

@Lucas_Camara Obrigado :pray::smile: