• Save
Aula 2 Fundamentos Orientação a Objetos
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Aula 2 Fundamentos Orientação a Objetos

on

  • 3,322 views

 

Statistics

Views

Total Views
3,322
Views on SlideShare
3,321
Embed Views
1

Actions

Likes
4
Downloads
0
Comments
0

1 Embed 1

http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Aula 2 Fundamentos Orientação a Objetos Presentation Transcript

  • 1. Fundamentos de Programação Orientada a Objetos Série de Posts: jogano10.com Eder Ignatowicz - Unisal
  • 2. Agenda Básica do Curso Introdução a Programação Orientada a Objetos Orientação a objetos básica Pacote Encapsulamento Herança Polimorfismo Classes Abstratas Interfaces
  • 3. Orientação a objetos básica Eder Ignatowicz - Unisal
  • 4. Realidade Atual... Realidade atual  Sistemas de alta complexidade;  Ferramentas de desenvolvimento drasticamente diferentes de 20 anos atrás.  Sistemas maiores, mais complexos e mais voláteis.A mudança para alcançar aqualidade e produtividade está na...
  • 5.  REUTILIZAÇÃO !!!!
  • 6. Análise e Programação OO. Análise orientada a objetos  Consiste em definir quais objetos fazem parte de um sistema e a maneira como se comportam. Programação orientada a objetos  Consiste em utilizar objetos computacionais para implementar as funcionalidades de um sistema.
  • 7. Vantagens OO REUTILIZAÇÃO na computação:  Existência de uma Biblioteca e de um Sistema de Catálogo;  Facilidade para documentação;  Sistemática rigorosa para testes;  Novas técnicas para especificação de sistemas tendo em vista a reutilização de módulos;  Linguagem, ferramentas e ambientes de desenvolvimento que estimulem a adoção, em larga escala, de tais métodos dentro das empresas;
  • 8. Vantagens OO Possibilidade do desenvolvedor trabalhar em um nível mais alto de abstração; Menor custo; Possibilidade de construir sistemas mais complexos; E além disto...
  • 9. Vantagens OO ECONOMIA DE DINHEIRO !!!!
  • 10. Conceitos Básicos Abstração; Encapsulamento; Objetos; Classes; Herança; Etc.
  • 11. Orientação a objetos básica  Modelagem de objetos  Estrutura de classe  Membros de classe  Atributos  Métodos  Classes internas  Construtores  Acessibilidade de membros (publica privada, protegida)  Armazenamento de membros (padrão, estáticos, constantes)  Criação e manipulação de objetos  Instanciação  Chamada de métodos
  • 12. Modelagem de objetos E um objeto o que é?
  • 13. E objetos computacionais ? Objetos que se encontram dentro de sistemas de computador; São abstrações do mundo real; Objetos computacionais são estruturas de programas que contém as informações e os comportamentos que representam um objeto dentro do sistema.
  • 14. Modelagem de Objetos Entidades que possuem dados e instruções sobre como manipular estes dados Estão ligados à solução do problema;  Software Gráfico – Objetos: Circulos; Linhas; etc.  Software BD – Objetos: Tabelas; Linhas; Campos; etc.  Software Comercial: Pedidos; Produtos; Clientes; etc.
  • 15. Modelagem de Objetos
  • 16. Modelagem de Objetos
  • 17. Modelagem de Objetos
  • 18. Modelagem de Objetos E o UML?
  • 19. Estrutura de Classe O que é classe? Geralmente implementa métodos e atributos; Atributos (fields)  Informações armazenadas por um objeto de uma classe;  Representam estado do objeto; Métodos  Comportamentos e serviços oferecidos pelos objetos da classe  “Mensagens”
  • 20. Estrutura de Classe
  • 21. Estrutura de Classe Métodos  Parte da classe que detalha como as operações são feitas;  Processamento do “programa”;  Pode utilizar ou não os dados do objeto (atributos);  Sintaxe em java:modificadores tipo de retorno nome do método(lista de parâmetros) { // código...}
  • 22. Estrutura de Classe Métodos
  • 23. Estrutura de Classe Métodos  Utilização
  • 24. Estrutura de Classe Exercício  Codificar a classe Pessoa e o método setNome(), SetAltura(), setIdade() e setPeso() para a Classe Pessoa  Ela possui os seguintes atributos:  String nome;  Double altura;  Double Idade;  Double Peso  E se eu quiser retornar o valor do peso?  E se eu quiser calcular o IMC?  Desafio: E para saber se a condição da pessoa pelo IMC?
  • 25. Estrutura de Classe Métodos• Saída de dados • Para visualizar os dados dos objetos, utilizaremos uma classe “interna” do java, ou seja, uma classe pronta com seus métodos e atributos. • System.out.println(); • System -> classe • Out -> objeto • Println() -> método • Vamos criar um método em nossa classe Pessoa que permitirá visualizar os dados na tela do computador public void exibeDados() { System.out.println(nome); System.out.println(peso); System.out.println(altura); System.out.println(idade); }
  • 26. Estrutura de Classe Métodos• Saída de dados public void exibeDados() { System.out.println(nome); System.out.println(peso); System.out.println(altura); System.out.println(idade); } Utilização: Pessoa p1 = new Pessoa(); p1.setNome(“João da Silva”); p1.setAltura(1.80); p1.setPeso(80.0); p1.setIdade(30); p1.exibeDados(); // Saída na tela do computador João da Silva 1.80 80.0 30
  • 27. Estrutura de Classe Construtor:  Comportamento de criação de um objeto de uma classe;  Características:  Tem o mesmo nome da classe;  É automaticamente chamado pelo operador new;  Não tem tipo de retorno (mas não se escreve void;
  • 28. Estrutura de Classe Destrutor:  Comportamento de destruição do objeto de uma classe. Fred* p = new Fred(); delete p;  // Automagically calls p->~Fred()
  • 29. Estrutura de Classe Classes internas  Ainda não…
  • 30. Acessibilidade de membros Encapsulamento… lembram?
  • 31. Acessibilidade de membros
  • 32. Acessibilidade de membros Os modificadores de acesso são palavras-chave que modificam a forma como podem ser acessadas as classes, métodos e/ou variáveis. São eles:  Private;  Protected;  Public  Static;
  • 33. Acessibilidade de membros Private  Privados, só podem ser acessados de dentro da classe (encapsulamento);  Uma classe que herde de uma superclasse com atributos declarados como "private" só poderá ter acesso a eles através dos métodos públicos da própria superclasse, caso contrário, não haverá acesso a estes atributos.
  • 34. Acessibilidade de membros
  • 35. Acessibilidade de membros Protected  Pode ser acessada somente dentro do pacote que está contida ou através de uma subclasse; Public  Classe, método ou variável assim declarada possa ser acessada em qualquer lugar e a qualquer momento da execução do programa. Final, abstract, static, etc. (cenas dos próximos capítulos… Vamos reformar a nossa classe pessoa?
  • 36. Armazenamento de membros Variável de instância X de classe Variável de instância: valor é específico ao objeto e não à classe.  Geralmente possui uma valor diferente em cada objeto membro da classe. Variável de classe: valor é comum a todos os objetos membros da classe.  Mudar o valor de uma variável de classe em um objeto membro automaticamente muda o valor para todos os objetos membros.  “Compartilhada” , “Global”
  • 37. Armazenamento de membros  Uma variável é considerada como de instância por "default".  Também pode ser utilizada para métodos;  Para declarar uma variável de classe, acrescenta-se a palavra-chave static.  Exemplos:  static int numeroDeInstanciasDestaClasse; static int LEFT = 1;  Vamos criar um contador de objetos na classe pessoa?
  • 38. Dicas !• A palavra-chave this é utilizada para acessar o parâmetro implícito. Exemplo de sua utilização public pessoa(String nome, double altura, double peso, int idade) { this.nome = nome; this.altura = altura; this.peso = peso; this.idade = idade; } • Temos os parâmetros (nome, altura, peso, idade) iguais aos nomes dos atributos. Então, para não causar problema de referência (confusão do valor do parâmetro com o atributo), utiliza-se o this para que o java interprete de maneira correta. this.nome -> atributo nome do objeto.
  • 39. • Declaramos na classe Pessoa o atributo nome como public. Para efeitos de visibilidade, podemos acessar o atributo diretamente, ou seja, não utilizar os métodos getters e setters.ExemploPessoa p1 = new Pessoa();p1.nome = “João da Silva”;• Até o momento, estávamos utilizando p1.setNome(“João da Silva”); por questões de integridade dos dados. Dessa forma, podemos alterar um atributo sem utilizar métodos! PERIGOSO!• Os modificadores private/protected/package/public permitem fazer isso (visibilidade). Como orientação, usaremos private para os atributos.• Os demais atributos (altura, peso, idade) podem ser atribuídos dessa forma?