Iniciante: Métodos Creditar() e Debitar()

6 respostas Resolvido
java
F

Estou no 3º período de Sistemas de informação e estamos vendo Java agora.
O professor tem passado os programas em aula e exercícios no padrão Java Beans, separando o programa em Classes de Domínio, Controle e Face.
Confesso que estou muito perdido com essa separação, tendo em vista que eu tenho dificuldade com os vários usos de uma função/método.

Ele passou um exercício que pede o seguinte:

"Observe a classe de domínio chamada Conta de um sistema para um Banco, esta classe possui 2 atributos, o método construtor, os métodos get e set para todos os atributos e mais 2 métodos. A partir dela, escreva o código que se pede:

Escreva a classe de domínio Conta, colocando todos os seus atributos privados, o método construtor, que receberá dois argumentos, um cujo valor será atribuído para o atributo numero e outro cujo valor será atribuído para o atributo saldo e os métodos get e set de cada atributo. O método creditar() irá receber como argumento um valor do tipo double e esse valor será somado ao valor do atributo saldo. O método debitar() irá receber como argumento um valor do tipo double e esse valor será subtraído no valor do atributo saldo."

Eu já fiz o exercício, porém como posso testar no pacote controle para saber se os métodos estão funcionando? Não consigo montar nada que funcione no controle, tentei de várias formas mas o valor do saldo não atualiza, continua o mesmo, como posso passar os valores para esses dois métodos no controle a fim de saber se eles funcionam atualizando o valor do saldo?

Pacote Domínio

package dominio;

public class Conta {
	private int numero;
	private double saldo;
	
	public Conta(int numero, double saldo) {
		this.numero = numero;
		this.saldo = saldo;
	}
	
	public int getNumero() {
		return numero;
	}

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

	public double getSaldo() {
		return saldo;
	}

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

	public void creditar(double valor) {
		saldo += valor;
	}
	
	public void debitar(double valor) {
		saldo -= valor;
	}
	
}

Pacote Controle com erro:

package controle;
import dominio.Conta;
public class ControleConta {
	
	public static void main(String[] args) {
		
		Conta ct1 = new Conta(101, 100);
		
		System.out.println("DADOS DA CONTA");
		System.out.println("Número da Conta: " + ct1.getNumero());
		System.out.println("Saldo da Conta: " + ct1.getSaldo());
		System.out.println("Crédito: " + ct1.creditar());
		System.out.println("Saldo da Conta: " + ct1.getSaldo());
		System.out.println("Crédito: " + ct1.debitar());
		System.out.println("Saldo da Conta: " + ct1.getSaldo());
		
	}
}

Desde já, obrigado a todos e me desculpem pelo texto grande.

6 Respostas

F
Solucao aceita

Onde vc tenta imprimir o Crédito usando os métodos creditar() e debitar(), não está passando o parâmetro que o método pede.
Veja:

public void debitar(double valor) {
    saldo -= valor;
}

Ou seja, quando vc for chamar esse método, tem que passar um valor:

System.out.println("Crédito: " + ct1.debitar(ct1.getNumero()));
F

O mesmo vale para o método creditar.

J

Outra observação o método não retorna nada! Void significa vazio, nada. então há sentido em utilizzar ele no system.out.printLn. Corrigindo seria assim:

public static void main(String[] args) {

	Conta ct1 = new Conta(101, 100);

	System.out.println("DADOS DA CONTA");
	System.out.println("Número da Conta: " + ct1.getNumero());
	System.out.println("Saldo da Conta Antes de creditar: " + ct1.getSaldo());
	ct1.creditar(100);
	System.out.println("Saldo da Conta: após creditar " + ct1.getSaldo());
	ct1.debitar(50);
	System.out.println("Saldo da Conta: após debitar " + ct1.getSaldo());

}

Vc tem q passar os valores no parâmetro. Recomendo ler:

F

Muito obrigado.

F

Obrigado.

Depois que eu fui observar que o método é void.

Nesse exemplo da Conta, o método seria void porque seria uma operação interna e não faria sentido iteração com o usuário, o professor só pediu a classe de domínio com os métodos, mas eu quis fazer o controle para testar os métodos e exercitar.

F

Tá certo.

Tem que treinar o encapsulamento e padrões mesmo. Tem que estar na frente dos outros pra deixar o prof cheio de orgulho.
Não observei direito que a variável numero era o numero da conta, por isso indiquei fazer as operações com ela.

Parece que vc está sacando bem.

Boa sorte meu líder!

Criado 20 de maio de 2017
Ultima resposta 21 de mai. de 2017
Respostas 6
Participantes 3