5 Resolva a seguinte situação utilizando os conceitos aprendidos. Uma empresa quer manter o registro da vida acadêmica de todos os funcionários, o modelo deve ontemplar o registro das seguintes informações, de forma incremental:
5.1 Para o funcionário que não estudou, apenas o nome e o código funcional;
5.2 Para o funcionário que concluiu o ensino básico, a escola;
5.3 Para o funcionário que concluiu o ensino médio, a escola;
5.4 Para o funcionário que concluiu a graduação, a Universidade;
6 Estenda o modelo implementado no exercício anterior de forma que todo funcionário possua uma renda básica de R$ 1000,00 e:
6.1 Com a conclusão do ensino básico a renda total é renda básica acrescentada em 10%;
6.2 Com a conclusão do ensino médio a renda total é a renda do nível anterior acrescentada em 50%;
6.3 Com a conclusão da graduação a renda total é a renda do nível anterior acrescentada em 100%;
6.4 Todos os cálculos são efetuados sempre sobre a última renda obtida.
7 Crie um programa que simule uma empresa com 10 funcionários, utilize um array, sendo que a escolaridade dos funcionários é distribuída da seguinte forma: 40% ensino básico, 40% ensino médio e 20% nível superior. Calcule os custos da empresa com salários totais e por nível de escolaridade, utilize a classe funcionário desenvolvida no exercício anterior.
To com dificuldade em começar esse exercício, nesse caso terei que criar apenas uma classe? Ou uma classe para cada escolaridade diferente?
dexa eu tentar resolver usando a sobreposição dos métodos primeiro…tipo, como eu faço pra saber o custo de todos os funcionarios de uma determinada classe? Eu tenho na classe principal(onde está o metodo main) meus 10 objetos do tipo Funcionario…a única forma que pensei de fazer é passar pra um método que faça o calculo geral a quantidade de funcionarios daquela classe, será que é isso que o exercício pede?
}
[/code][/quote]
isto não é um método, é um Construtor, por padrão o Java implicitamente já escreve esse construtor, que libera o new Funcionario(), porem caso vc crie outro construtor como new Funcionario(String nome, int id), vc precisa definir o primeiro para que se possa usar o construtor vazio…
na verdade é algo assim
[code]public class Funcionario {
private double rendaBasica = 1000; // no exercicio é dito, que a renda é de 1000 para todos
public double getRendaTotal() {
return getRendaBasica() * getTaxa();
}
public double getRendaBasica() {
return rendaBasica;
}
public double getRendaTotal() {
return getRandaBasica();
}
}
public FuncionarioBasico extends Funcionario{
public double getRendaTotal() {
return super.getRendaTotal() * 1.1 //matematicamente 1.1 = 110% … o acrescimo é de 10%
}
}[/code]
a cada classe… vc invoca a rendaTotal da classe anterior, e multiplica por 1 + taxa
o que esse super faz exatamente? Cara não consegui entender o que vc fez nesse último code, tem dois métodos com o mesmo nome…eu já isso, chama-se sobrecarga né? Mas ai não ta mudando nada, são exatamente iguais…
sim é sobrecarga sim, não não faz a mesma coisa não…
super é uma referencia a classe superior na linha da herança… ou seja, em FuncionarioBasico, quando falo de super.algumaCoisa() eu estou querendo falar da classe Funcionario, falando que estou referenciando a classe que eu extendi…
public FuncionarioBasico extends Funcionario{
public double getRendaTotal() {
return super.getRendaTotal() * 1.1; //matematicamente 1.1 = 110% .... o acrescimo é de 10%
}
}
esse trecho quer dizer que para FuncionarioBasico a renda total será a renda total de Funcionario multiplicada por 1.1, ou seja, salario 10% maior que o de funcionario…
Como o compilador vai saber qual return usar? Pelas expressões no return? Tentei fazer assim aqui e o eclipse ta apontando erro dizendo que tem um método duplicado…
Estou tentando dar continuidade neste exercício porém parei no item 7. Tipo, consegui criar o método que calcula os gastos totais da empresa, não estou conseguindo fazer o que separa por nível de escolaridade "/
public class Empresa {
Funcionario[] qtdFunc = new Funcionario[10];
private double gastoTotal;
public void contratarFuncionario(int id, Funcionario func)
{
qtdFunc[id-1] = func;
}
public double gastoTotal()
{
for(Funcionario obj : qtdFunc)
{
if(obj==null)
break;
gastoTotal += obj.getRendaTotal();
}
return gastoTotal;
}
public double gastoNivelEscolaridade()
{
for(Funcionario obj : qtdFunc)
{
if(obj.getClass().)
}
}
}