Buscar

Trabalho POO

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

import java.util.Collections;
import java.util.List;
import java.util.ArrayList;
public class Departamento {
 private int codigo;
 private String nome;
 private final List<Funcionario> funcionarios = new ArrayList<Funcionario>();
 public Departamento(int codigo, String nome) {
 this.codigo = codigo;
 this.nome = nome;
 }
 public List<Funcionario> getFuncionarios() {
 return (List<Funcionario>) Collections.unmodifiableCollection(this.funcionarios);
 }
 public int getCodigo() {
 return codigo;
 }
 public void setCodigo(int codigo) {
 this.codigo = codigo;
 }
 public String getNome() {
 return nome;
 }
 public void setNome(String nome) {
 this.nome = nome;
 }
 public boolean isFuncionario(Funcionario f) {
 return this.funcionarios.contains(f);
 }
 public int size() {
 return this.funcionarios.size();
 }
 public boolean remove(Funcionario f ) {
 if(this.equals(f.getDepartamento())) f.setDepartamento(null);
 return this.funcionarios.remove(f);
 }
 
 public boolean add(Funcionario f) {
 if(f==null) return false;
 if(this.equals(f.getDepartamento())) {
 if(!this.isFuncionario(f))
 return this.funcionarios.add(f);
 else return false;
 }
 return f.setDepartamento(this);
 }
public void imprimeFuncionarios() {
 System.out.println("Funcionarios do departamento " + this.nome + ":");
 for (Funcionario funcionario : funcionarios) {
	 System.out.println(" "+funcionario);
 }
}
@Override
public String toString() {
 return this.codigo+":"+this.nome;
}
@Override
public boolean equals(Object obj) {
 if(obj instanceof Departamento) {
 Departamento dp = (Departamento) obj;
 if(dp.getCodigo()==this.getCodigo()) return true;
 }
 return false;
}
}
public class Funcionario {
	private int matricula;
	private String nome;
	private String atribuicao;
	private Departamento departamento = null;
	
	public Funcionario(int matricula, String nome, String atribuicao) {
		this.matricula = matricula;
		this.nome = nome;
		this.atribuicao = atribuicao;
	}
	public int getMatricula() {
		return matricula;
	}
	public void setMatricula(String nome) {
		this.matricula = matricula;	
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getAtribuicao() {
		return atribuicao;
	}
	public void setAtribuicao(String atribuicao) {
		this.atribuicao = atribuicao;
	}
	public Departamento getDepartamento() {
		return departamento;
	}
	public boolean setDepartamento(Departamento departamento) {
		if(departamento!=null) {
			if(!departamento.equals(this.departamento)) {
				if(this.departamento!=null)
					this.departamento.remove(this);
				this.departamento = departamento;
				return this.departamento.add(this);
			}
		} else if(this.departamento!=null) {
			Departamento dp = this.departamento;
			this.departamento = null;
			dp.remove(this);
			return true;
		}
		return false;
	}
	@Override
	public String toString() {
		if(this.departamento!=null)
			return this.matricula+"."+this.nome+" "+this.departamento.getNome();
		else return this.matricula+"."+this.nome+" Dpto: null";
	}
}
public class Main {
	public static void main(String[] args) {
	Departamento computacao = new Departamento(1, "Computacao");
	Departamento fisica = new Departamento(2, "Fisica");
	
	Funcionario joao = new Funcionario(1,"Joao", "Professor");
	Funcionario maria = new Funcionario (2, "Maria","Pesquisadora");
	
	joao.setDepartamento(computacao);
	maria.setDepartamento(computacao);
	System.out.println(joao);
	System.out.println(maria);
	
	System.out.println(computacao);
	System.out.println(fisica);
	computacao.imprimeFuncionarios();
	
	}
}
Resolução das questões:
Recebe valores de variáveis e retorna os mesmo em forma de String.
Em ambas as classes o “equals” é um atributo que exerce a comparação, se um objeto é igual a outro “==”.
O add, quando executado, adiciona um item a lista “array”. No caso do setDepartamento o add irá adicionar um departamento ao funcionário.
Não seria o mesmo, porque “computação” é um atributo e joão quem recebe os atributos, se fosse contrário daria inconsistência.

Continue navegando

Materiais relacionados

Perguntas relacionadas