Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Programação Orientada a Objetos , Notas de aula de Engenharia Telemática

Aula 02 - Programação Orientada à Objetos

Tipologia: Notas de aula

Antes de 2010

Compartilhado em 26/11/2010

samuel-santos-22
samuel-santos-22 🇧🇷

4.6

(41)

262 documentos

1 / 81

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
CursoSuperior de Tecnologia emTelemática
Programação Orientada a Objetos
ProgramaçãoOrientadaa Objetos
Copyright©2010
Prof. CésarRocha cesarocha@ifpb.edu.br
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51

Pré-visualização parcial do texto

Baixe Programação Orientada a Objetos e outras Notas de aula em PDF para Engenharia Telemática, somente na Docsity!

Curso Superior de Tecnologia em Telemática Programação Orientada a Objetos

Programação Orientada a Objetos

Copyright© Prof. César Rocha – [email protected]

Roteiro

  • Em poucos slides, apresentar alguns fundamentosfundamentos importantes relacionados à Programação Orientada a ObjetosProgramaçãoOrientada a Objetos - Características OO em Java: classes, atributos, métodos, herança, abstração, encapsulamento, polimorfismo, etc...
  • Sintaxe Java para construção de entidades complexas
    • Componentes de uma classe – Componentes de uma classe e sua divisão interna
  • Mostrar um exemplo para levantar as vantagens da programação OO
    • Exercícios iniciais e exemplos de códigoscódigos que você deve testar e solidificar seus conhecimentos (mas você deve ler um livro!)

4

Abstração de casos de uso em

análise OO (I) e análise procedural (II)

Referência da figura: [1]

Programação estruturada vs. POO

  • Algumas considerações importantes:
    • desenvolvedor vê seu sistema como uma coleçãocoleção dede objetosobjetos cooperantes, que se comunicam entre si através do envio e recebimento de mensagensmensagens
  • “Programação orientada a objetos é um método de implementação no qual programas são organizadosprogramas são organizados como coleções cooperativas de objetos, cada um representando uma instânciaobjetos instância de alguma classeclasse, e estas classes são todas membros de uma hierarquiahierarquia de classes unidas via relacionamentos de herançaherança...”[2]

Uma boa analogia...

  • Uma classe define um novo tipoum novo tipo de dados complexo
  • Valores de um tipo definido por uma classe recebem o nome de objetos objetos

Referência da figura: [4]

Sintaxe de uma classe

  • Estrutura fundamental de programação em Java!
    • Todo e qualquer programa Java deve definir pelo menos uma classe.
  • Sintaxe básica:Sintaxe básica:

class {

}

class {

}

ATRIBUTO(S) CONSTRUTOR(ES) MÉTODO(S)

Código em Java (CdPlayer.java) class CdPlayer { int faixaAtual; String marca; … CdPlayer() {…} void tocar() {…} void parar() {…} …

class CdPlayer { int faixaAtual; String marca; … CdPlayer() {…} void tocar() {…} void parar() {…} …

Comportamento

Estado

Tipos de dados

figura: [1]

Métodos

  • O comportamento de um objeto é dado pelo conjunto deconjunto de operaçõesoperações que o mesmo é capaz de realizar - Entenda isso como sua “interface de uso” - Um método é um procedimentoprocedimento ou funçãofunção que permite aos objetos de uma classe executarem serviços (é a parte da programação imperativa em OO)
  • É como o objeto implementa suas funcionalidades
  • O envio de uma mensagem para um objeto faz o método correspondente (de mesmo nome) ser executado
  • A mensagemmensagem, então, é a ativaçãoativação de um métodode um método sobre o objeto

Boas práticas ao escrever classes

  • Use e abuse dos espaços
    • Endente com um tab (4 espaços) os membros (métodos, atributos, construtores, etc.) de uma classe
  • A ordem dos membros não é importante, mas melhora a legibilidade do código
    • Mantenha os membros do mesmo tipo juntos (não misture métodos com atributos, por exemplo)
    • Declare os atributos antes ou depois dos métodos
    • Mantenha os construtores juntos, de preferência, bem no início da classe (após os atributos)
    • Mantenha os métodos depois dos construtores

Abstração

  • Deve-se abstrairabstrair os objetos
    • Para entender uma entidade escrita por terceiros, abstraímos a suaabstraímos a sua implementação e nos concentramos na sua interface de utilizaçãoimplementação e nos concentramos na sua interface de utilização
  • Foca o lado externo de uma entidade ou objeto
  • Destaca o comportamentocomportamento (ou serviços disponíveis) do objeto
  • O comportamento essencial do objeto é caracterizado por meio das operações que ele é capaz de realizar sobre ele mesmo ou sobre outrosoperações que ele é capaz de realizar objetos

Abstração

  • Conceito de abstração:
    • “Processo mental que consiste em escolher ou isolarisolar um aspecto determinado de um estado de coisas relativamente complexo, a fim de simplificar a sua avaliação, classificação ou para permitir a comunicação dosimplificar a sua avaliação mesmo [Dicionário Houassis]”
    • “Uma abstração denota as características essenciais de um objeto que o distinguem de outros tipos de objetos e assim provê uma fronteirafronteira conceitual firmemente definida, de acordo com a perspectiva do observador [Booch]”

Abstração

  • Na programação de computadores:
    • Abstrair um conceito é limitar-se a representar este conceito numa linguagem de programação apenas em seus detalhes necessários à aplicaçãoapenas em seus detalhes necessários à aplicação - Por exemplo, um sistema bancário abstrai a entidade real Banco em apenas alguns dados que são importantes (endereço, num. funcionários, nome do banco, etc)
    • Não é necessário guardar/ conhecer nestes tipos de sistemas como todos os serviços de um dado banco foram realmente implementados - Onde são guardadas as contas, como elas foram representadas, etc. - Estamos interessados em apenas utilizar os serviços de um banco.

Abstração

  • Em síntese, a ABSTRAÇÃO:
    • Uma abstração possui tanto propriedades estáticas quanto dinâmicas
      • Atributos que guardam o estado atual da abstração
      • As dinâmicas (operações)
  • Foca o lado externo de uma entidade ou objeto
    • Destaca o comportamentocomportamento (ou serviços disponíveis) nativo do objeto
  • O comportamento essencial do objeto é caracterizado por meio das operações que ele é capaz de realizar sobre ele mesmo ou sobre outrosoperações que ele é capaz de realizar objetos

20

Encapsulamento

  • Foi visto que objetos são formados de duas partes: å interface: métodos declarados (visão externa) ç implementação: a funcionalidade interna (oculta) do objeto
  • Geralmente, é interessante proibir acessoacesso aos atributos de dados (e até de alguns métodos) - Utilizando-se de modificadores de níveis de acesso extremos, tais como: public e private (e outros níveis intermediários, fornecidos pela linguagem Java) - Impacto será menor para quem está usando a classe
  • O papel do usuário de classes
    • Apenas saber quais os métodos, parâmetros e o que é retornado (a interface pública da classe). figura: [2]