Acessar objeto instanciado da "classe A" através da "classe B"

3 respostas
Max_Umbrella

Olá pessoal,

Minha dúvida é o seguinte, imaginem o seguinte diagrama abaixo.
Companhia e Empregado.

Imaginem que acabei de criar um formulário principal, e mais dois formulários: uma para o cadastro da Companhia e outro para o Empregado.

A classe Empregado possui referência a classe Companhia, ou seja, preciso de um objeto da companhia para atribuir ao Empregado.

Minha dúvida,

No formulário Companhia (frmCia), instanciei o objeto: objComp e fiz atribuições a ele, mas neste momento eu chamo o outro formulário, o Empregado(frmEmpregado) com uma instância: objEmp. e faço as atribuições.
Mas lá no formulário Empregado (frmEmpregado) eu faço assim para ter acesso a Companhia:

objEmp.NomeCia = frmCia.objComp

//
Resumindo,
Para ter acesso ao objeto instanciado estou acessando o formulário e pegando o objeto. Isso é correto?

Por favor postem um modelinho simples como este de exemplo, como seria o procedimento correto.

3 Respostas

drsmachado

Utilize métodos getter e setter para acessar atributos.

int ex;
public void setEx(int ex){
  this.ex = ex;
}
public int getEx(){
  return ex;
}

E na outra classe:

ClasseA ca = new ClasseA();
int ex = ca.getEx();
marceloborth

Max_Umbrella, dá pra deixar os teus atributos encapsulados igual o drsmachado falou e requisitar por GET.

Por outro lado, quando vc instancia o objEmp, uma opção seria vc criar um construtor específico para o objEmp passando o form objCia para a outra janela. Ex. new objEmp(Form objCia).

Max_Umbrella

Olá pessoal,

Então vamos lá,
Criei as duas classes com gets/sets

public class Companhia {
    private String nome_cia;


    public String getNome_cia() {
        return nome_cia;
    }


    public void setNome_cia(String nome_cia) {
        this.nome_cia = nome_cia;
    }



}

e

public class Empregado {
    private String nome_emp;
    private Companhia nom_cia;

    public Empregado(Companhia nome_cia, String nome){
        nom_cia = nome_cia;
        nome_emp = nome;
    }
 
    public String getNome_emp() {
        return nome_emp;
    }


    public void setNome_emp(String nome_emp) {
        this.nome_emp = nome_emp;
    }

  
    public Companhia getNom_cia() {
        return nom_cia;
    }

  
    public void setNom_cia(Companhia nom_cia) {
        this.nom_cia = nom_cia;
    }

}

Vamos imaginar que tenho o formulário da Companhia (frmCia)

Fiz a seguinte instância:

Companhia objCia = new Companhia();
objCia.setNome_cia(txtnome.getText());

E aquando for necessário chamar o formulário Empregado (frmempr) eu poderia fazer isso:

//Chamar método construtor Empregado
        Empregado objEmp = new Empregado(frmempr.objCia,"Max");

A minha dúvida é como aplicar OO com formulários, é fácil você implementar tudo em uma só classe, como exemplo a Main, você consegue instânciar todos em um lugar só. A questão é como um formulário vai chamando o outro passando os objetos, seria mais ou menos isso? Ou existe outra coisa?

Obrigado pessoal.

Criado 23 de novembro de 2010
Ultima resposta 23 de nov. de 2010
Respostas 3
Participantes 3