Skip to content

Instantly share code, notes, and snippets.

@jrdalpra
Created November 24, 2011 11:52
Show Gist options
  • Save jrdalpra/1391181 to your computer and use it in GitHub Desktop.
Save jrdalpra/1391181 to your computer and use it in GitHub Desktop.
Aula003 - Exercícios
1) Modele um funcionário. Ele deve ter o nome do funcionário, o departamento onde trabalha, seu salário (double), a data de entrada no banco (String), seu RG (String) e um valor booleano que indique se o funcionário ainda está ativo na empresa ou se já foi mandado embora.
Você deve criar alguns métodos de acordo com sua necessidade. Além deles, crie um método bonifica que aumenta
salario 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ó modi?ca o valor booleano indicando que o funcionário não trabalha mais aqui.
A idéia aqui é apenas modelar, isto é, só identifique que informações são importantes e o que um funcionário
faz. Desenhe no papel tudo o que um Funcionario tem e tudo que ele faz.
2) Transforme o modelo acima em uma classe Java. Teste-a, usando uma outra classe que tenha o main. Você deve criar a classe do funcionário chamada Funcionario, e a classe de teste você pode nomear como quiser. A classe de teste deve possuir o método main.
Dica: Crie os atributos e teste, crie um método e teste, crie outro método e teste e assim sucessivamente!
3) Crie um método mostra(), que não recebe nem devolve parâmetro algum e simplesmente imprime todos os atributos do nosso funcionário. Dessa maneira, você não precisa ficar copiando e colando um monte de System.out.println() para cada mudança. Faça com que a classe de teste chame o método mostra após cada chamada de outro método, como bonifica, por exemplo.
4) Construa dois funcionários com o new e compare-os com o ==. E se eles tiverem os mesmos atributos? Para isso você vai precisar criar outra referência (controle remoto).
5) Crie duas referências para o mesmo funcionário, compare-os com o ==. Tire suas conclusões.
Dica: Dois controles remotos apontando para o mesma TV
6) Em vez de utilizar uma String para representar a data, crie uma outra classe, chamada Data. Ela possui 3 campos int, para dia, mês e ano. Faça com que seu funcionário passe a usá-la. (é parecido com o último exemplo, em que a Conta passou a ter referência para um Cliente). Modifique os testes para que use a nova classe. Faça o desenho do estado da memória quando criarmos um Funcionario.
Dica: o controle remoto da data está apontando para algum lugar?
7) Modifique seu método mostra para que ele imprima o valor da dataDeEntrada daquele Funcionario.
Dica: a Data é composta de vários outros atributos.
8) Um método pode chamar ele mesmo. Chamamos isso de recursão. Você pode resolver a série de Fibonacci usando um método que chama ele mesmo. O objetivo é você criar uma classe, que possa ser usada da seguinte maneira:
Fibonacci fibo = new Fibonacci();
int i = fibo.calculaFibonacci(6);
System.out.println(i);
Aqui imprimirá 8, já que este é o sexto número da série.
Este 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.
9) Escreva o método recursivo novamente, usando apenas uma linha. Para isso, pesquise sobre o operador condicional ternário. (ternary operator)
10) Crie uma classe Pessoa com os atributos nome, idade e o método void fazAniversario(). Crie uma pessoa, coloque seu nome e idade iniciais, faça alguns aniversários (aumentando a idade) e imprima seu nome e sua idade
11) Crie uma classe Porta com os atributos aberta, cor, dimensaoX, dimensaoY, dimensaoZ e métodos: void abre(), void fecha(), void pinta(String s), boolean estaAberta(). 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.
12) Crie uma classe Casa com os atributos cor, porta1, porta2, porta3 e os métodos void pinta(String s), int quantasPortasEstaoAbertas(). Crie 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment