Private / protected

Pessoal, como eu posso programar as classes abaixo para o meu atributo saldo ser private e ainda utilizar Herança nas classes seguintes???

[code]
class Conta {

protected double saldo;


double getSaldo() {
return this.saldo;	
}

void deposita (double valor) {
this.saldo += valor;	
}

void saca (double valor){
this.saldo -= valor;
}

void atualiza (double taxa) {
this.saldo += this.saldo * taxa;
}

}
[\code]

CLASSE CONTA CORRENTE

[code]
class ContaCorrente extends Conta {

void atualiza (double taxa) {
this.saldo += this.saldo * taxa * 2;
}


void deposita (double valor) {
this.saldo += valor * 0.9962 ;
}

}
[\code]

CLASSE CONTA POUPANCA

[code]
class ContaPoupanca extends Conta {

void atualiza (double taxa){
this.saldo += this.saldo * taxa * 3;
}	

}
[\code]

CLASSE TESTACONTA

[code]
public class TestaConta {

public static void main(String[] args) {

Conta c = new Conta();

ContaCorrente cc = new ContaCorrente();
ContaPoupanca cp = new ContaPoupanca();

c.deposita(1000);
cc.deposita(1000);
cp.deposita(1000);

c.atualiza(0.01);
cc.atualiza(0.01);
cp.atualiza(0.01);

System.out.println(c.getSaldo());
System.out.printf("%.2f \n",cc.getSaldo());
System.out.println(cp.getSaldo());
}

}
[\code]

nada que tenha o modifcador de visbilidade private é herdado.
pq vc quer fazer isso?

[]´s

vc usa get e set

OK, mas eu precisaria criar os metodos set e get com protected???
Fiz isso e nao funcionou…

Se as classes não forem do mesmo pacote, declare os métodos como public. O porque disso é só procurar.

Até!

primeiro ponto:

http://www.guj.com.br/posts/list/50115.java

[code]
class Conta {

private double saldo;

public double getSaldo() {
return this.saldo;
}

public double setSaldo(double saldo) {
this.sald0 = saldo
}

public void deposita (double valor) {
this.setSaldo(this.getSaldo() + valor);
}

public void saca (double valor){
this.setSaldo(this.getSaldo() - valor);
}

public void atualiza (double taxa) {
this.setSaldo(this.getSaldo() * taxa);
}

}
[\code]

CLASSE CONTA CORRENTE

[code]
class ContaCorrente extends Conta {

public void atualiza (double taxa) {
this.setSaldo(this.getSaldo() + this.getSaldo() * taxa * 2);
}

public void deposita (double valor) {
this.setSaldo(this.getSaldo() + valor * 0.9962);
}

}
[\code]

CLASSE CONTA POUPANCA

[code]
class ContaPoupanca extends Conta {

public void atualiza (double taxa){
this.ssetSaldo(this.getSaldo() + this.getSaldo() * taxa * 3);
}

}
[\code]

CLASSE TESTACONTA

[code]
class TestaConta {

public static void main(String[] args) {

Conta c = new Conta();

ContaCorrente cc = new ContaCorrente();
ContaPoupanca cp = new ContaPoupanca();

c.deposita(1000);
cc.deposita(1000);
cp.deposita(1000);

c.atualiza(0.01);
cc.atualiza(0.01);
cp.atualiza(0.01);

System.out.println(c.getSaldo());
System.out.printf("%.2f \n",cc.getSaldo());
System.out.println(cp.getSaldo());
}
}
[\code]

Testa aí!

cara me diz uma coisa aonde foi q vc achou isso: [quote][\code]? [/quote] leia direito o link que ti mandei…
flw! quando postar direitinho fica mais facil de ler… seu codigo.

Vc usa os métodos que tem disponiveis.

class Conta {

	private double saldo;


	double getSaldo() {
	return this.saldo;	
	}

	void deposita (double valor) {
	this.saldo += valor;	
	}

	void saca (double valor){
	this.saldo -= valor;
	}

	void atualiza (double taxa) {
	this.saldo += this.saldo * taxa;
	}
	
	
}

CLASSE CONTA CORRENTE

class ContaCorrente extends Conta {

	void atualiza (double taxa) {
	    super.deposita( this.getSaldo()* taxa * 2);
	}

	
	void deposita (double valor) {
	   super.deposita(valor * 0.9962);
	}


}

Sobre a sua pergunta, se os métodos devem ser protected ou private ou public, eu optaria por public. O mesmo poderia ser utilizado em outras classes, não somente na subclasse. Isso é uma característica avantajada de Orientação a Objetos.

Eu usaria sempre private…
te da mais segurança nos codigos…

e quando voce esta tratando de conta entao…
voce nao quer que seu saldo e outros atributos fiquem visiveis…

colocaria dessa forma…