O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Aula 3 - Java Prof.ª Cristiane Fidelix

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Aula5
Aula5
Carregando em…3
×

Confira estes a seguir

1 de 54 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Aula 3 - Java Prof.ª Cristiane Fidelix (20)

Anúncio

Mais de Cris Fidelix (20)

Mais recentes (20)

Anúncio

Aula 3 - Java Prof.ª Cristiane Fidelix

  1. 1. Profª Me. Cristiane Fidelix (Simbologia clássica) Linguagem de Programação Java
  2. 2.  Conceitos: - Encapsulamento - Herança - Polimorfismo
  3. 3. Encapsulamento
  4. 4. O que é o encapsulamento? Mecanismo da linguagem de programação para restringir o acesso a alguns componentes dos objetos, escondendo os dados de uma classe e tornando-os disponíveis somente através de métodos.
  5. 5. O que é o encapsulamento? • Na verdade, o mecanismo para restringir o acesso a alguns dos componentes do objeto é a definição de ocultação de informações. O encapsulamento é um conceito da Programação Orientada a Objetos onde o estado de objetos (as variáveis da classe) e seus comportamentos (os métodos da classe) são agrupados em conjuntos segundo o seu grau de relação.
  6. 6. • Em programação orientada a objetos, modificador de acesso, é a palavra- chave que define como um atributo, método, ou classe será visto no contexto que estiver inserido. Para utilizar estes modificadores de acesso, basta que o escreva antes do nome do atributo, método ou classe:
  7. 7. • Public: O modificador public deixará visível a classe ou membro para todas as outras classes, subclasses e pacotes do projeto Java.
  8. 8. • Protected: O modificador protected deixará visível o atributo para todas as outras classes e subclasses que pertencem ao mesmo pacote. A principal diferença é que apenas as classes do mesmo pacote têm acesso ao membro. O pacote da subclasse não tem acesso ao membro.
  9. 9. • Private: O modificador private deixará visível o atributo apenas para a classe em que este atributo se encontra.
  10. 10. • Em um processo de encapsulamento os atributos das classes são do tipo private. Para acessar esses tipos de modificadores, é necessário criar métodos setters e getters. • Por entendimento os métodos setters servem para alterar a informação de uma propriedade de um objeto. E os métodos getters para retornar o valor dessa propriedade.
  11. 11. Veja um exemplo de encapsulamento, na Listagem 2 gera-se os atributos privados (private) e é realizado o processo de geração dos métodos setters e getters.
  12. 12. Ex1 - Encapsulamento da classe Funcionário
  13. 13. 1º Criar: a classe public class Funcionario { private double salario; private String nome; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public void setSalario(double salario) { this.salario = salario; } public double getSalario() { return salario; } }
  14. 14. 2º criar: Classe Testadora dos métodos getters e setters. public class TestaFuncionario { public static void main(String[] args) { Funcionario funcionario = new Funcionario(); funcionario.setNome("Thiago"); funcionario.setSalario(2500); System.out.println(funcionario.getNome()); System.out.println(funcionario.getSalario()); } }
  15. 15. • Na classe testadora é instanciado a classe “Funcionario”, onde a variável de referência é usada para invocar os métodos setters, informando algum dado. • Ao final, é usado os métodos getters dentro do “System.out.println” para gerar a saída dos resultados que foram passados nos métodos setters.
  16. 16. Herança
  17. 17. Conceito de Herança: • Na Programação Orientada a Objetos o significado de herança tem o mesmo significado para o mundo real. • Assim como um filho pode herdar alguma característica do pai, na Orientação a Objetos é permitido que uma classe herde atributos e métodos da outra, tendo apenas uma restrição para a herança. • Os modificadores de acessos das classes, métodos e atributos só podem estar com visibilidade public e protected para que sejam herdados.
  18. 18. Conceito de Herança: • Uma das grandes vantagens de usar o recurso da herança é na reutilização do código. • Esse reaproveitamento pode ser acionado quando se identifica que o atributo ou método de uma classe será igual para as outras. • Para efetuar uma herança de uma classe é utilizada a palavra reservada chamada extends.
  19. 19. Exemplo: A superclasse “Funcionario” que servirá de base para as subclasses usarem seus atributos ou métodos.
  20. 20. 1º Criar a superclasse Funcionario: public class Funcionario { private String nome; private double salario; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public double getSalario() { return salario; } public void setSalario(double salario) { this.salario = salario; } public double calculaBonificacao(){ return this.salario * 0.1; } }
  21. 21. 2º Criar a subclasse Gerente: public class Gerente extends Funcionario { private String usuario; private String senha; public String getUsuario() { return usuario; } public void setUsuario(String usuario) { this.usuario = usuario; } public String getSenha() { return senha; } public void setSenha(String senha) { this.senha = senha; } public double calculaBonificacao(){ return this.getSalario() * 0.6 + 100; } }
  22. 22. • Podemos ver que a classe “Gerente” está herdando da classe “Funcionario” através da palavra reservada extends. • Acontece também a mudança do comportamento de herança, a partir do método “calculaBonificacao” que é sobrescrito, pois entende-se que o valor da classe “Gerente” é diferente para as demais.
  23. 23. 3º Criar a subclasse Secretaria: public class Secretaria extends Funcionario { private int ramal; public void setRamal(int ramal) { this.ramal = ramal; } public int getRamal() { return ramal; } }
  24. 24. 4º Criar a subclasse Telefonista: public class Telefonista extends Funcionario { private int estacaoDeTrabalho; public void setEstacaoDeTrabalho(int estacaoDeTrabalho) { this.estacaoDeTrabalho = estacaoDeTrabalho; } public int getEstacaoDeTrabalho() { return estacaoDeTrabalho; } }
  25. 25. • Na classe TestaFuncionario são apresentadas todas as classes e mostrada a reutilização de código, um exemplo são os atributos “nome” e “salario”. Portanto, não foi preciso criar em todas as classes, apenas criou-se na superclasse. • Apenas lembrando que o acesso dos atributos ou métodos de uma superclasse é permitido somente se estão definidos com o modo de visibilidade como “public” ou “protected”.
  26. 26. 5º Criar a classe TestaFuncionario: public class TestaFuncionario { public static void main(String[] args) { Gerente gerente = new Gerente(); gerente.setNome("Carlos Vieira"); gerente.setSalario(3000.58); gerente.setUsuario("carlos.vieira"); gerente.setSenha("5523"); Funcionario funcionario = new Funcionario(); funcionario.setNome("Pedro Castelo"); funcionario.setSalario(1500); Telefonista telefonista = new Telefonista(); telefonista.setNome("Luana Brana"); telefonista.setSalario(1300.00); telefonista.setEstacaoDeTrabalho(20); Secretaria secretaria = new Secretaria(); secretaria.setNome("Maria Ribeiro"); secretaria.setSalario(1125.25); secretaria.setRamal(5);
  27. 27. System.out.println("##### Gerente #####"); System.out.println("Nome.: "+gerente.getNome()); System.out.println("Salário.: "+gerente.getSalario()); System.out.println("Usuário.: "+gerente.getUsuario()); System.out.println("Senha.: "+gerente.getSenha()); System.out.println("Bonificação.: "+gerente.calculaBonificacao()); System.out.println(); System.out.println("##### Funcionário #####"); System.out.println("Nome.: "+funcionario.getNome()); System.out.println("Salário.: "+funcionario.getSalario()); System.out.println("Bonificação.: "+funcionario.calculaBonificacao()); System.out.println(); System.out.println("##### Telefonista #####"); System.out.println("Nome.: "+telefonista.getNome()); System.out.println("Salário.: "+telefonista.getSalario()); System.out.println("Estação de Trabalho.: "+telefonista.getEstacaoDeTrabalho()); System.out.println("Bonificação.: "+telefonista.calculaBonificacao()); System.out.println();
  28. 28. System.out.println("##### Secretária #####"); System.out.println("Nome.: "+secretaria.getNome()); System.out.println("Salário.: "+secretaria.getSalario()); System.out.println("Ramal.: "+secretaria.getRamal()); System.out.println("Bonificação.: "+secretaria.calculaBonificacao()); System.out.println(); } }
  29. 29. Poliformismo
  30. 30. • Poliformismo significa "muitas formas“. • É o termo definido em linguagens orientadas a objeto, como por exemplo Java, C# e C++, que permite ao desenvolvedor usar o mesmo elemento de formas diferentes; • Polimorfismo denota uma situação na qual um objeto pode se comportar de maneiras diferentes ao receber uma mensagem, ou seja, ocorre quando um método definido no ancestral é redefinido no descendente com um comportamento diferente.
  31. 31. As classes fazem a mesma operação (método). Mas de forma diferente.
  32. 32. Exercício: • Dos objetos a seguir, separe em grupos aqueles que possuem “métodos” em comum, mas que são executados de forma diferente, ou seja, apresentam poliformismo entre eles.
  33. 33. Poliformismo
  34. 34. Poliformismo
  35. 35. Poliformismo
  36. 36. Poliformismo: codigo java
  37. 37. Poliformismo: codigo java
  38. 38. • A essência do poliformismo é que, em vez de perguntar a um objeto qual é o seu tipo e então chamar algum comportamento baseado nessa resposta, você simplesmente chama o comportamento. • O objeto, dependendo do seu tipo, faz a coisa certa.
  39. 39. • No Poliformismo temos dois tipos: • O Poliformismo Estático; • O Poliformismo Dinâmico;
  40. 40. • O Poliformismo Estático : Se dá quando temos a mesma operação implementada várias vezes na mesma classe. A escolha de qual operação será chamada depende da assinatura dos métodos sobrecarregados.
  41. 41. Sobrecarga de métodos
  42. 42. Exemplo:
  43. 43. Sobrecarga de Métodos
  44. 44. Sobrecarga de Métodos
  45. 45. • O Poliformismo Dinâmico: Acontece na herança, quando a subclasse sobrepõe o método original. A escolha de qual método será chamado depende do tipo do objeto que recebe a mensagem.
  46. 46. Sobreposição de métodos:
  47. 47. Exemplo de Poliformismo:
  48. 48. Exemplo de Poliformismo:
  49. 49. Exemplo de Poliformismo:
  50. 50. Exercícios

×