Dúvidas sobre import java.util.Scanner;

3 respostas
M

Boa noite, seguem as seguintes classes começando pela classe Conta:

package entity;
import java.util.Scanner;
public class Conta {
	
	private Integer numero;
	private Double saldo;
	private Double limite;
	Cliente titular;
	private static int contador = 0;
	
	
	public Conta(Cliente titular) {
		this.titular = titular;
		contador++;
		System.out.println("Cliente de numero: " + contador);
	}
	public Conta(){
		
	}
	public Cliente getTitular() {
		return titular;
	}

	public Integer getNumero() {
		return numero;
	}

	public void setNumero(Integer numero) {
		this.numero = numero;
	}

	public Double getSaldo() {
		return saldo;
	}

	public void setSaldo(Double saldo) {
		this.saldo = saldo;
	}

	public Double getLimite() {
		return limite;
	}

	public void setLimite(Double limite) {
		this.limite = limite;
	}

	public static int getContador() {
		return contador;
	}
	public void deposita(Double valor) {
		this.saldo += valor;
		System.out.println("Deposito efetuado");
	}
	public boolean  saca(Double valor) {
		if (valor < saldo + limite) {
			this.saldo -= valor;
			System.out.println("Saque efetuado");
			  return true;
		}else {
			System.out.println("Saldo insuficiente");
			return false;
		}
	}
	public boolean transfere(Conta destino, Double valor) {
		boolean retira = this.saca(valor);
		  if (retira == true) {
			  destino.deposita(valor);
			    System.out.println("Transferência efetuada");
			     return true;
		  }else {
			  System.out.println("Saldo insuficiente");
			  return false;
		  }
	}
	
	static void mostra() {
		System.out.println("Numero de clientes: " + getContador());
	}	
	public Conta lerDados() {
		Conta n = new Conta();
		
		Scanner input = new Scanner(System.in);
		
		System.out.println("Informe o numero de inscrição:");
		n.setNumero(new Integer(input.nextLine()));
		System.out.println("Saldo do cliente:");
		n.setSaldo(new Double(input.nextLine()));
		System.out.println("Limite de sua conta:");
		n.setLimite(new Double(input.nextLine()));
		
		return n;
	}
}

Classe Cliente:

package entity;
import java.util.Scanner;
public class Cliente {

	private String nome;
	private String cpf;
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getCpf() {
		return cpf;
	}
	public void setCpf(String cpf) {
		this.cpf = cpf;
	}
	public Cliente lerCliente() {
		Cliente e = new Cliente();
		
		Scanner input = new Scanner(System.in);
		
		System.out.println("Nome do cliente:");
		e.setNome(input.nextLine());
		System.out.println("Cpf do cliente:");
		e.setCpf(input.nextLine());
		
		return e;
	}
}
Finalizando classe Main:
package entity;
import java.util.Scanner;
public class Main {
  public static void main(String[] args) {
	 
	 Cliente marcos = new Cliente();
	 Conta c = new Conta(marcos);
	 marcos = marcos.lerCliente();
	 System.out.println("Nome do cliente: " + marcos.getNome());
	 System.out.println("CPF do cliente: " + marcos.getCpf());

	 c = c.lerDados();
	 System.out.println("Numero de inscrição: " + c.getNumero());
	 System.out.println("Saldo: " + c.getSaldo());
	 System.out.println("Limite: " + c.getLimite());
	 
	 Cliente rachel = new Cliente();
	 Conta r = new Conta(rachel);
	 
	 Cliente monica = new Cliente();
	 Conta m = new Conta(monica);	  
  }
}

Minha dúvida é se eu posso fazer posso chamar o método scanner das duas classes uma única vez e como dar resultados de um método como o deposita(Double valor) por exemplo, informando o quanto foi depositado e saldo após depósito.
Obrigado.

3 Respostas

romarcio

Crie uma classe que faça a leitura através do teclado.
E nela você cria uma instancia das outras classes para atribuir os valores vindo do teclado.
Isso pode ser feito também no método main, leia do teclado pelo método main e atribuas os valores depois de ler.

M

Pesquisarei sobre isso, obrigado.

Eva_ss

romarcio:
Crie uma classe que faça a leitura através do teclado.
E nela você cria uma instancia das outras classes para atribuir os valores vindo do teclado.
Isso pode ser feito também no método main, leia do teclado pelo método main e atribuas os valores depois de ler.

Essa classe lê valores do teclado:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class ValorEntrada {
	public static String obterValor(){
		BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
		try {
			return entrada.readLine();
		} catch(Exception e){
			return null;
		}
	}
}

Nesse caso, ao querer ler algo do teclado, é só atribuir a variável: ValorEntrada.obterValor()
Não se pode esquecer que o valor lido é String, então você tem que convertê-lo.

Criado 21 de junho de 2011
Ultima resposta 22 de jun. de 2011
Respostas 3
Participantes 3