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

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.

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()));
1 curtida

O mesmo vale para o método creditar.

1 curtida

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:

1 curtida

Muito obrigado.

1 curtida

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.

2 curtidas

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!

1 curtida