Acessar dados de outra classe[Resolvido]

6 respostas
java
T

Olá pessoal, queria saber se tem como pegar dados de outra classe ex:
Tenho uma classe funcionário que cadastra e deleta um livro e classe professor que vai poder deletar esse livro e cadastra outro no lugar, mas quando estancio a classe professor o dado fica null.

Funcionario f1 = new Funcionario();

f1.cadLivro();

f1.imprimirLivro();
Professor p1 = new Professor();
    
    p1.imprimirLivro();

6 Respostas

S

Tem sim, mas você quer pegar dados de outra classe ou de outro objeto?

Cadastra onde? Deleta de onde?

Deletar de onde? Cadastrar onde?

O correto é: “quando instancia a classe Professor”.
Instância: é o objeto de uma classe.
Estância: é onde se cria cavalos.
:slight_smile:
:wink:

Posta o código da classe Funcionario e posta o código da classe Professor

T

Desculpa, estou iniciando na programação deixa eu vê como ser mais especifico.
Preciso ter acesso aos dados do Objeto livro pelo funcionário e professor, onde o funcionário(classe pai) conseguirá cadastra, deletar. E o professor conseguirá alterar esses dados.
mas quando vou instância Professor os dados fica null.

Classe Funcionario:

public class Funcionario {

private String nome;

private int matricula;

public String livro;
public void cadLivro(){

String livro = JOptionPane.showInputDialog("Nome do livro: ");

this.setLivro(livro);

}
public void imprimirLivro(){

System.out.println("Livro " + this.getLivro());

}
public String getLivro() {

return livro;

}
public void setLivro(String livro) {
    this.livro = livro;
}

}

Classe Professor:

public class Professor extends Funcionario {

public void subsLivro(){
   String s = JOptionPane.showInputDialog("Qual livro irá substituir: ");
   this.setLivro(s);
    if(this.getLivro() == s){  
        this.setLivro(null);
    }else{
        JOptionPane.showMessageDialog(null,"Livro não encontrado","Erro",JOptionPane.PLAIN_MESSAGE);
    }
   String s2 = JOptionPane.showInputDialog("Qual nome do novo Livro: ");
   this.setLivro(s2);
}

}

J

Qual é a relação entre livro e o professor? Como está o seu diagrama de classe? Por exemplo, como você identifica a multiplicidade nesse diagrama:

image

Como você modelou? Funcionário tem um atributo livro? O que há de comum entre um funcionário e um livro. Esse livro não seria do tipo Livro (em vez de String)?

T

Como estou iniciando não criei um diagrama, o que pensei foi o funcionário e professor terá acesso ao objeto Livro tanto para cadastra como excluir os dados.

J

Certo, se professor herda de funcionário então é justo relacionar o livro ao funcionário. Mas qual é a multiplicidade? Qualquer funcionário/professor pode ‘mexer’ em qualquer livro? O livro de Álgebra Booleana, por exemplo, pode ser ‘mexido’ pelo professor de Biologia? Os professores Zé, Maria e João podem ‘mexer’ em qualquer livro ou só o Zé no livro de Álgebra? Entende como muitas questões estão em aberto? Tudo depende de como você modelou as classes e os seus relacionamentos. De qualquer forma, Livro deve ser um tipo de dado (classe) e resta saber qual a ligação dessa classe com funcionário. Se não houver ligação, não (deveria poder) poderia um objeto interagir com o outro.

public class Funcionario {
	private String matricula;
	private String nome;
	private Livro livro;
	
	...
}

public class Professor {
	?
}

public class Livro {
	...
}

Obs.: evite herança de implementação.

T

[quote=“Jothar_Aleksander, post:6, topic:392629, full:true”] Qualquer funcionário/professor pode ‘mexer’ em qualquer livro?
R: Sim, é só exercício de faculdade simples.

O livro de Álgebra Booleana, por exemplo, pode ser ‘mexido’ pelo professor de Biologia? Os professores Zé, Maria e João podem ‘mexer’ em qualquer livro ou só o Zé no livro de Álgebra?
R: todos terão acesso para poder atualizar os livros para versões mais atualizadas.

Entende como muitas questões estão em aberto? Tudo depende de como você modelou as classes e os seus relacionamentos. De qualquer forma, Livro deve ser um tipo de dado (classe) e resta saber qual a ligação dessa classe com funcionário. Se não houver ligação, não (deveria poder) poderia um objeto interagir com o outro.
R: se puder me ajudar a melhorar essa interação já que estou iniciando na orientação a Objeto irei agradecer.

Criado 18 de setembro de 2019
Ultima resposta 19 de set. de 2019
Respostas 6
Participantes 3