Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alexjose123

Conceito de Orientação Objeto

Recommended Posts

Aqui nesse exercício tento mostar uma aplicação que usa os conceitos basicos de orientação objetos.

 

import javax.swing.JOptionPane;

public class AplicacaoContas {

	
	public static void main(String[] args) {
		//variavel...
		ContaCorrente c1,c2;
		int opcao, numc,numo, numd;
		boolean resp = false;
		double saldo;
		
		int numeroconta1 = Integer.parseInt((JOptionPane.showInputDialog("Numero da conta: ")));
		String correntista1 = JOptionPane.showInputDialog("Correntista: ");
		saldo = Double.parseDouble(JOptionPane.showInputDialog("Informe o valor do saldo: "));
		c1 = new ContaCorrente(numeroconta1,correntista1,saldo);
		
		int numeroconta2 = Integer.parseInt(JOptionPane.showInputDialog("Numero da conta: "));
		String correntista2 = JOptionPane.showInputDialog("Correntista");
		saldo = Double.parseDouble(JOptionPane.showInputDialog("Informe o valor do saldo: "));
		c2= new ContaCorrente(numeroconta2,correntista2,saldo);
		
		do{
			String menu = "\n 1-Imprimmir dados de uma conta " +
					      "\n 2-Realizar deposito " +
					      "\n 3-Realizar saque" +
					      "\n 4-Realizar transferencia" +
					      "\n 5-Sair ";
						
			opcao = Integer.parseInt(JOptionPane.showInputDialog(menu));
			
			switch(opcao){
			
				case 1: // informa numero conta
					    numc = Integer.parseInt(JOptionPane.showInputDialog("numero conta: "));
						
						if(numc == c1.getNumeroConta()){
						JOptionPane.showMessageDialog(null, "Nome: "+c1.getCorrentista()+" Saldo: "+c1.getSaldo());
						}	
						else if(numc == c2.getNumeroConta()){
							JOptionPane.showMessageDialog(null, "Nome: "+c2.getCorrentista()+" Saldo: "+c2.getSaldo());	
						}
						else
							JOptionPane.showMessageDialog(null,"conta nao existe!");
						break;
				
				case 2: // deposito
						numc = Integer.parseInt(JOptionPane.showInputDialog("Numero Conta: "));
						
						if(numc != c1.getNumeroConta() && numc != c2.getNumeroConta())
							JOptionPane.showMessageDialog(null," Erro. conta nao existe ");
						
						else{
							
							  if(numc == numeroconta1){
								resp = c1.deposita(Double.parseDouble(JOptionPane.showInputDialog("Insira valor: ")));
							  }
							  else if (numc == numeroconta2){
								resp = c2.deposita(Double.parseDouble(JOptionPane.showInputDialog("Insirar valor: ")));
							  }
							 
							  if(resp == true)
								  JOptionPane.showMessageDialog(null," Ok.depositadar ");
							  else
								  JOptionPane.showMessageDialog(null," Erro.depositar ");
						   }
		
						break;
				case 3: //saque
						numc = Integer.parseInt(JOptionPane.showInputDialog("Numero Conta: "));
				
						// entrada de dados + respostas dos metodos
						if(numc != numeroconta1 && numc != numeroconta2){
							JOptionPane.showMessageDialog(null," Erro. conta nao existe ");
							resp = false;
						}
						else if(numc == c1.getNumeroConta()){
							resp = c1.saque(Double.parseDouble(JOptionPane.showInputDialog(" Valor para saque: ")));
						}
						else if(numc == c2.getNumeroConta()){
							resp = c2.saque(Double.parseDouble(JOptionPane.showInputDialog(" Valor para saque: ")));
						}
						
						//testes + mensagem
						if(resp == true)
							JOptionPane.showMessageDialog(null,"Sucesso ao sacar");
						else 
							JOptionPane.showMessageDialog(null,"Erro ao sacar");
											
						break;
				case 4: // transferencia
						
						numo = Integer.parseInt(JOptionPane.showInputDialog("Conta Origem: "));
						numd = Integer.parseInt(JOptionPane.showInputDialog("Conta Destino: ")); 
									
						if ( (numo != c1.getNumeroConta() && numo != c2.getNumeroConta()) || (numd != c1.getNumeroConta() && numd != c2.getNumeroConta())) 
							JOptionPane.showMessageDialog(null,"Erro.conta nao existe!");
						
						else if(numo == c1.getNumeroConta())
							resp = c1.transfere(Double.parseDouble(JOptionPane.showInputDialog("Informe valor: ")), c1,c2);
							
						else if(numo == c2.getNumeroConta())
							resp = c2.transfere(Double.parseDouble(JOptionPane.showInputDialog("Informe valor: ")), c2,c1);
			
						// mensagem após transferencia
						if(resp == true)
							JOptionPane.showMessageDialog(null," Transferencia OK");
						else
							if(resp == false)
								JOptionPane.showMessageDialog(null," Erro Transferencia ");
						
						break;
			}
		
	      }while(opcao!=5);
  }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem-vindo ao fórum!

 

Agradecemos a contribuição, mas cadê a definição da classe ContaCorrente?

 

 

E dá para melhorar seu código, principalmente se a intenção é mostrar conceitos de OO. É possível dividir esse main() em métodos específicos para processamento de opções, exibição de menu etc.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa é classse ContaCorrete. Ela possui três atributos privados e fora saldo os demais possuem gets e sets

 

 

        public class ContaCorrente {
	
	//atributos da classe ::::::::
	private int numeroConta;
	private String correntista;
	private double saldo;
	
	// metodos gets ::::::::::::::
	public int getNumeroConta(){
		return numeroConta;
	}
	
	public String getCorrentista(){
		return correntista;
	}
	
	public double getSaldo(){
		return saldo;
	}
	
	//metodos sets::::::::::::::::
	public void setNumeroConta(int numeroConta){
		if(numeroConta<=0)
			System.exit(-1);
		else{
			this.numeroConta = numeroConta;
		}
	}
	
	public void setCorrentista(String correntista){
		if(!correntista.trim().equals("") && correntista != null)
			this.correntista = correntista;
		else
			System.exit(-1);
	}
	
	//construtor da classe default:::::::::::::::
	public ContaCorrente(int numeroConta, String correntista, double saldo){
		this.setNumeroConta(numeroConta);
		this.setCorrentista(correntista);
		this.saldo = saldo;
		
	}
	
	//metodos da classe::::::::::::::
	public boolean deposita(double valor){
		if(valor <= 0)
			return false;
		else{
			this.saldo = this.saldo + valor;
			return true;
		}
	}
	
	public boolean saque (double valor){
		
		if(valor <= 0)
			 return false;
		else if(this.saldo == 0)
			return false;
		else if(this.saldo < valor)
			return false;
		else{
			this.saldo = this.saldo - valor;
			return true;
		}
	}
	
	public boolean tranfere (double valor, ContaCorrente C){
		if(valor <= 0)
			return false;
		else if(C == null)
			return false;
		else if(this.saldo < valor){
			System.out.println("Saldo insuficiente");
			return false;
		}
		else{
			this.saldo = saldo-valor;
			return true;
		}
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.