Pessoal estou com dúvidas em referenciar classes que estão em pacotes diferentes. Tenho uma classe chamada Conta e uma outra que acessa essa chamada TestaConta. Como faço para que essa classe que está num pacote diferente possa ser acessada?
Olá,
Use a declaração import
import meupacote.TestaConta
para importar a sua classe em qualquer outra classe do seu projeto.
Para referenciar uma classe que está em outro pacote, basta utilizar a diretiva import.
Mas lembre-se de verificar o diretório onde está esta instalada, que é o classpath.
Na classe que irá ser importada, é sempre bom ter a chamada package “nome do pacote”, dentro da classe.
É bom te-lô bem configurado, caso contrário, a aplicação dará um erro.
Essa classe eu não consegui referenciar apenas usando o import, pois na classe TestaConta é onde está o método main e o eclipse me dá a opção de criar uma classe chamada Conta, mas como já disse anteiormente eu já possuo uma classe chamada conta.
package br.com.empresa.banco.conta;
class Conta{
private int numero;
private String titular;
private int agencia;
private char tipo;
private int banco;
protected double saldo;
private double limite;
private static int quantidadeDeContas;
Conta(int numero, int banco, int agencia){
this.numero = numero;
this.banco = banco;
this.agencia = agencia;
Conta.quantidadeDeContas++;
}
Conta(String titular){
this.titular = titular;
}
public int getQuantidadeDeContas(){
return Conta.quantidadeDeContas;
}
public boolean sacar(double valor){
if (this.saldo + this.limite > valor){
this.saldo -= valor;//this.saldo = this.saldo-valor é o mesmo que this.saldo -= valor.
return true;
}else{
return false;
}
}
void depositar(double valor){
this.saldo += valor - 10;
}
void transferir(double valor, Conta destino){
boolean saqueOK = this.sacar(valor);
if (saqueOK){
destino.depositar(valor);
}
}
public void setLimite(double valor){
this.limite = valor;
}
public double getSaldo(){
return this.saldo + this.limite;
}
public void setTitular(String titular) {
this.titular = titular;
}
void atualiza(double taxa){
this.saldo += this.saldo * taxa;
}
}
package br.com.empresa.banco;
import br.com.empresa.banco.conta.Cliente;
import br.com.empresa.banco.conta.ContaCorrente;
import br.com.empresa.banco.conta.ContaPoupanca;
import br.com.empresa.banco.sistema.AtualizadorDeContas;
class TestaConta {
public static void main(String[] args) {
Conta conta = new Conta(10,2,33);//Conta que é o objeto criado tb se torna um tipo em java.
ContaCorrente cc = new ContaCorrente(14,25,23);
ContaPoupanca cp = new ContaPoupanca(45,22,77);
AtualizadorDeContas atdc = new AtualizadorDeContas(0.01);
Cliente c = new Cliente();
c.setNome("Carlos");
c.setCpf("07810908703");
c.mostrar();
conta.sacar(200);
conta.depositar(1000);
conta.setLimite(500);
conta.atualiza(0.01);
cc.sacar(300);
cc.depositar(800);
cc.setLimite(1500);
cc.atualiza(0.01);
cp.sacar(150);
cp.depositar(900);
cp.setLimite(1000);
cp.atualiza(0.01);
atdc.roda(conta);
System.out.println("Saldo em conta: " +"R$"+conta.getSaldo());
atdc.roda(cc);
System.out.println("Saldo em conta corrente: " +"R$"+cc.getSaldo());
atdc.roda(cp);
System.out.println("Saldo em conta poupança: " +"R$"+cp.getSaldo());
System.out.println("Saldo Total: " +atdc.getSaldoTotal());
System.out.println("Total de Contas: " +conta.getQuantidadeDeContas());
}
}
amigo vc so pode dar impor em outra classe de um outro pacote se a mesma for pública
ou por herança com protected!!
exemplo:
package a;
public class A{
}
package b;
import a.*;
public class B{
}
assim funciona mais caso a class A nao for publica class A somente ele nao consiguira acessar!!
abraços
Muito obrigado meus amigos. Problema resolvido. Um abraço a todos.
de nada !!!
de uma olhada no conseito de modificadores de acesso e nivel de acesso, ai não tera mais problemas com isso!!!
flw