oi pessoal,
por favor
coloquei um contador para o numero de instancias de Conta criadas e nada do contador funcionar instanciando apenas o contrutor que permite acessar todos os metodos de Conta.
Só funcionou quando percebi que deveria instanciar a classe e nao o construtor.
Minha duvida é:
C ao instanciar o contrutor (uma obrigação) para compilar a classe consigo usar todos os demais metodos da classe, porque este nao pode ser usado para contar o numero de instancias da classe Conta?
Tem como o contador funcionar apenas ao instancir o construtor?
esta pergunta quase que responde a questao, pois uma coisa eh um construtor e outra e uma classe pois o contador conta apenas as instancias de classe…
mas ficou confuso na minha cabeça o fato do construtor permitir a criação de objetos Conta que permitem acesso aos metodos de Conta.
o construtor tem dupla funçao (construtor/classe)?
nao sei c fui claro, mas o que quiz dizer é que o objeto criado a partir do construtor me permite fazer tudo que faria se instanciasse a classe, ou nao??
ta confuso na minha cabeça :?
outra duvida mais basica mas nao consegui resolver ainda é quanto ao metodo transfere(); que funfava e ao incrementar Conta mudando os modificadores e criar construtores nao consigo compilar/ insterpretar a saida do compilador.
para resolver até poderia encontrar um codigo pronto no google mas o objetivo é compreender a solução do ponto de vista conceitual tb.
obrigado
[code]class Conta {
private static int totalDeContas;
private int numero;
private double saldo;
private static double limite;
private Cliente titular;
/*
essa parte nao compila:| antes de definir os atributos funfava mas nao sei
prq nao compila mais e nao soube interpetrar o retorno do compilador
boolean transfere(Conta destino, double valor) {
boolean retirou = Conta.titular.saca(valor);
if (retirou == false) {
return false;
} else {
destino.deposita(valor);
return true;
}
}
*/
public Conta(Cliente titular, int numero, double limite) {
this.limite = limite;
this.titular = titular;
this.numero = numero;
}
Conta() {
Conta.totalDeContas = Conta.totalDeContas + 1;
}
public int getTotalDeContas() {
return Conta.totalDeContas;
}
public double getSaldo() {
return this.saldo + this.limite;
}
public Cliente getTitular() {
return this.titular;
}
public double getLimite() {
return Conta.limite;
}
public void setTitular(Cliente titular) {
this.titular = titular;
}
public void deposita(double valor) {
if (valor > 0) {
this.saldo += valor;
} else {
System.out.println(“valor negativo nao aceito”);
}
}
public void saca(double valor) {
if (valor > this.saldo + this.limite) {
System.out.println(“Estorou limite fio”);
} else {
this.saldo -= valor;
}
}
public void mostra () {
System.out.println("numero " +this.numero);
System.out.println("titular " +this.titular.nome);
System.out.println("saldo " +getSaldo());
System.out.println(getTotalDeContas());
}
}
[/code]
