Você deve criar alguns métodos de acordo com sua necessidade. Além deles, crie um método bonifica que aumenta o salário do funcionário de acordo com o parâmetro passado como argumento. Crie, também, um método demite, que não recebe parâmetro algum, só modifica o valor booleano indicando que o funcionário não trabalha mais aqui. Identifique que informações são importantes para o funcionário e o que um funcionário faz.
Você pode (e deve) compilar seu arquivo Java sem que você ainda tenha terminado sua classe Funcionario. Isso evitará que você receba dezenas de erros de compilação de uma vez só. Crie a classe Funcionario, coloque seus atributos e, antes de colocar qualquer método, compile o arquivo java. Funcionario.class será́ gerado, não podemos "executá-la" pois não há um main, mas assim verificamos que nossa classe Funcionario já está tomando forma. Esse é um processo incremental. Procure desenvolver assim seus exercícios, para não descobrir só no fim do caminho que algo estava muito errado.
Um esboço da classe:
class Funcionario {
double salario;
// seus outros atributos e métodos
void bonifica(double aumento) {
// o que fazer aqui dentro?
}
void demite() {
// o que fazer aqui dentro?
}
}
Um esboço da classe que possui o FuncionarioTeste:
public class FuncionarioTeste {
public static void main(String[] args) {
testaFuncionario();
}
public void testaFuncionario(){
Funcionario meuFuncionario = new Funcionario();
//Atribua valores ao funcionário, passando o salario = 1000
//Execute o método bonifica passando o valor 100
//Imprima o salario atual
}
}
Incremente essa classe. Faça outros testes, imprima outros atributos e invoque os métodos que você criou a mais. Teste valores inválidos. Lembre-se de seguir a convenção java, isso é importantíssimo. Isto é, nomeDeAtributo, nomeDeMetodo, nomeDeVariavel, NomeDeClasse, etc...
class Funcionario {
// seus outros atributos e métodos
void mostra() {
System.out.println("Nome: " + this.nome);
// imprimir aqui os outros atributos...
// também pode imprimir this.calculaGanhoAnual()
}
}
Mais tarde veremos o método toString, que é uma solução muito mais elegante para mostrar a representação de um objeto como String, além de não jogar tudo pro System.out (só se você desejar).
Na classe de teste, faça o método testaFuncionario() executar o recém criado mostra()após criar o usuário e bonificá-lo.
Funcionario meuFuncionario = new Funcionario();
//código existente
meuFuncionario.mostra();
class Funcionario {
// seus outros atributos e métodos
boolean iguais(Funcionario func){
if (this == func) {
return true;
} else {
return false;
}
}
public class FuncionarioTeste {
public static void main(String[] args) {
testaFuncionario();
testaFuncionariosIguais();
}
public void testaFuncionariosIguais(){
Funcionario f1 = new Funcionario();
f1.nome = "Rodrigo";
f1.salario = 100;
Funcionario f2 = new Funcionario();
f2.nome = "Rodrigo";
f2.salario = 100;
if (f1.igual(f2)){
System.out.println("Os funcionários são iguais");
} else{
System.out.println("Os funcionários são diferentes");
}
}
}
Faça as consistências para executar o método sem erro através da invocação f1.igual(null). Inclua isso no método de teste.
Funcionario f1 = new Funcionario():
f1.nome = "Rodrigo";
f1.salario = 100;
Funcionario f2 = f1;
Um esboço da classe:
class Funcionario {
Data dataDeEntrada; // qual é o valor default aqui?
// seus outros atributos e métodos
}
Modifique o método testaFuncionario() da classe FuncionarioTest para que você crie uma Data e atribua ela ao Funcionario.
Funcionario f1 = new Funcionario();
//...
Data data = new Data(); // ligação!
f1.dataDeEntrada = data;
//continua os testes
Crie também um novo método de teste chamado testaDataDeEntrada() que cria um funcionário e executa o método mostra() antes e depois de atribuir uma data para este funcionário.
Classe: Casa
Atributos: cor, porta1, porta2, porta3
Método: void pinta(String s),
int quantasPortasEstaoAbertas()
Crie uma classe chamada CasaTest que cria uma casa e pinte-a. Crie três portas e coloque-as na casa; abra e feche as mesmas como desejar. Utilize o método quantasPortasEstaoAbertas para imprimir o número de portas abertas.
Classe: Porta
Atributos: aberta, cor, dimensaoX, dimensaoY, dimensaoZ
Métodos: void abre()
void fecha()
void pinta(String s)
boolean estaAberta()
Em uma classe **PortaTest**, crie uma porta, abra e feche a mesma, pinte-a de diversas cores, altere suas dimensões e use o método estaAberta para verificar se ela está aberta.
Fibonacci fibonacci = new Fibonacci();
for (int i = 1; i <= 6; i++) {
int resultado = fibonacci.calculaFibonacci(i);
System.out.println(resultado);
}
O método main deverá apenas chamar o método testaFibonacci() com as instruções acima que irão imprimir a sequência de Fibonacci até a sexta posição, isto é: 1, 1, 2, 3, 5, 8.
O método calculaFibonacci não pode ter nenhum laço, só pode chamar ele mesmo como método. Pense nele como uma função, que usa a própria função para calcular o resultado. Escreva esse método recursivo usando apenas uma linha, isto é com o operador condicional ternário. (ternary operator).