Pequenas Duvidas nas Classes e Métodos

3 respostas
G

Olá

bem fiz varios exercicios e está aqui um exercicio completo para eu me explicar melhor
class Data {
	int dia;
	int mes;
	int ano;
}

class Empresa {  
    String nome;  
    String cnpj;  
    int i = 0;
    Funcionario[] empregados;  
    static int contador;
    
    //Método Adiciona
    void adiciona(Funcionario f){               
        this.empregados[i] = f;
        i++;
       }
    //Método Contem
    boolean contem(Funcionario f){      
        for (int i = 0; i < this.empregados.length; i++) {      
            if (f == empregados[i]){      
                System.out.println(" O Funcionario " + empregados[i].nome  + " já trabalha nesta empresa");      
                return true;      
            }      
        }      
        System.out.println("O Funcionário "+ empregados[i].nome  +" não trabalha conosco");      
        return false;      
    }    
    
    //Método mostraEmpregados
    void mostraEmpregados(){          
        System.out.println(".::Funcionarios cadastrados::.\n");          
        for (int i = 0; i < this.empregados.length; i++) {      
            if (empregados[i] != null){      
            System.out.println("-----------------------------------------------------------------------------------");	
            System.out.println("| Funcionário na posição: " + i + " |");  
            System.out.println("| Nome: " + empregados[i].nome  +" | Depto: " + empregados[i].departamento + " | Salário: R$" + empregados[i].salarioMensal + " |");    
            System.out.println("-----------------------------------------------------------------------------------");
            } else {      
                break;      
            }      
        }      
    }          
}    

class Funcionario {
	Data dataDeEntrada;
	public String nome;
	public String departamento;
	public String rg;
	public double salarioMensal;
	public double salarioAnual;
	public boolean estaTrabalhando = true;
	
	public double getSalarioMensal() {
		return this.salarioMensal;
	}
	
	public  setSalarioMensal(double salario) {
		this.salarioMensal = salarioMensal;	
	}
	
	//Método Bonifica
	void bonifica(double aumento) {
		this.salarioMensal += aumento;
	}
	
	//Método calculaGanhoAnual
	double calculaGanhoAnual() {
		return this.salarioAnual = this.salarioMensal * 12;
	}
	
	//Método verifica estaTrabalhando
	boolean estaTrabalhando() {
		if (estaTrabalhando == true) {
			System.out.println("Está Trabalhando?: Sim");
			return true;
		} else {
			System.out.println("Está Trabalhando?: Não");
			return false;
		}
	}

	//Método demite
    void demitido() {
    	estaTrabalhando = false;
    }
    
    //Método Mostra
    void dadosDoFuncionario(){
    	System.out.println("Nome: " + this.nome);
		System.out.println("Departamento: " + this.departamento);
		System.out.println("RG: " + this.rg);
		this.estaTrabalhando();
		this.calculaGanhoAnual();
		System.out.println("Você está Ganhando Mensalmente: R$" + this.salarioMensal);
		System.out.println("Você está Ganhando Anualmente: R$"  + this.calculaGanhoAnual());
		System.out.println("-------------------------------");
    }
 }

class ProgramaPrincipal {
	public static void main (String[] args) {
		//Data data = new Data();
		Empresa empresa = new Empresa();
		empresa.empregados = new Funcionario[10];
		
		Funcionario f1 = new Funcionario();
		f1.salarioMensal = 1000;
		f1.nome = "Carlos";
		empresa.adiciona(f1);
		f1.departamento = "Catador de Lixo";
		
		Funcionario f2 = new Funcionario();
		f2.salarioMensal = 1700;
		f2.nome = "Eduardo";
		f2.departamento = "Garçom";
		empresa.adiciona(f2);
		empresa.mostraEmpregados();
		
	}
}

Eu , no meu entendimento , no que leio na apostilas as classes e métodos precisam estar de acordo e sempre SEMPRE , fazer de um jeito que uma classe não precise muito de uma outra.

bem ali a classe Funcionario, ela deveria ter um método adiciona(); , mas quem faz este método é a classe Empresa ?, não seria mais façil criar uma array Funcionario[] funcionario; e dai só necessitar da própria classe?, E a classe empresa, apenas iria cuidar dos assuntos relacionados a empresa(fora os do funcionarios). E ai oque vocês acham?

3 Respostas

S

Não. Cada classe tem sua responsabilidade. Os funcionarios fazem parte da classe empresa por isso a responsabilidade de adicionar os funcionarios para a empresa pertence a empresa e não ao funcionario. Lembre-se, um funcionario não se auto adiciona a uma empresa, quem adiciona um funcionario em uma empresa é a própria empresa.

Tente seguir a logica da vida real.

G

obrigado esclareceu minha duvida :slight_smile:

G

podem fechar…

Criado 12 de julho de 2012
Ultima resposta 14 de jul. de 2012
Respostas 3
Participantes 2