Programação
Orientada a Objetos
    Prof. Orlando Jr.
Estudos de Hoje
• Compreender o paradigma da orientação a
  objetos:
  – Conhecer os problemas da programação
    estruturada e o surgimento da POO
  – Estudar os principais conceitos relacionados à
    POO
  – Conhecer as estruturas básicas de programação
    relacionadas ao paradigma dentro da linguagem
    Java
Programação Estruturada
• Consiste na utilização de estruturas básicas de
  programação
   – Estruturas de controle de seleção, repetição, etc.

• Linguagens de programação mais antigas foram
  construídas em cima do paradigma da PE
   – Pascal, Delphi, Visual Basic, etc.

• Permite construir com facilidade a lógica dos
  programas

• Foca-se na lógica e não nos dados
Programação Orientada a Objetos
• A POO foca-se nos dados, aproximando o conceito que
  temos do mundo real para a programação

• Usa objetos para ocultar informações que não devem ser
  vistas ou são desnecessárias a outros objetos

• As linguagens mais recentes foram fundamentadas no
  paradigma OO
   – Java, .NET (C# e VB .NET), Ruby, etc.

• A maior vantagem da POO é o reuso de código
  (flexibilidade e manutenção)
Principais Conceitos POO
• A POO é baseada em 3 conceitos principais:
  – Encapsulamento
  – Herança
  – Polimorfismo

• Os três conceitos são suportados pelas
  linguagens de programação e são facilmente
  implementáveis

• Porém, existe um conceito que rege esses 3
  conceitos: abstração
Abstração
• É a habilidade de raciocinar OO

• A abstração não é um conceito implementável, pois
  depende do problema abordado e da visão do
  programador para resolver esse problema

• O programação deve utilizar a abstração para se concentrar
  nos principais aspectos que irão formar o objeto ou o
  método

• A função da abstração é dar suporte ao reuso de elementos
  de software
Encapsulamento
• Visa esconder detalhes da programação e só fornecer o
  que for realmente relevante

• A comunicação entre os objetos deve ocorrer através de
  métodos

• Isso dá mais flexibilidade ao programa, permitindo que
  modificações futuras possam ser realizadas mais facilmente

• O encapsulamento colabora para a reutilização de código
Encapsulamento
Herança
• Outro conceito é a herança, ou seja, receber algo que
  alguém está transmitindo a você

• A herança possibilita a criação de novas classes a partir de
  classes já existentes

• A classe-base é a classe que suportará todas as classes
  derivadas dela, fornecendo atributos, métodos e outros
  objetos.

• A herança é uma funcionalidade que permite que novas
  classes sejam criadas a partir de uma classe já
  existente, dando suporte ao reuso de código já programado
Herança
Polimorfismo
• O polimorfismo está relacionado à herança.
   – Não existe polimorfismo se não houver herança.
   – Os conceitos estão intimamente relacionados.

• Polimorfismo significa “muitas formas”, ou seja, é uma
  propriedade que permite que os objetos tenham muitas
  formas ao longo do programa.

• O polimorfismo pode ser utilizando tanto para métodos
  como para classes
   – Os métodos podem ser reescritos a partir da classe-base
   – As classes podem mudar sua forma também a partir da classe-
     base
Polimorfismo

Programação Orientada a Objetos

  • 1.
  • 2.
    Estudos de Hoje •Compreender o paradigma da orientação a objetos: – Conhecer os problemas da programação estruturada e o surgimento da POO – Estudar os principais conceitos relacionados à POO – Conhecer as estruturas básicas de programação relacionadas ao paradigma dentro da linguagem Java
  • 3.
    Programação Estruturada • Consistena utilização de estruturas básicas de programação – Estruturas de controle de seleção, repetição, etc. • Linguagens de programação mais antigas foram construídas em cima do paradigma da PE – Pascal, Delphi, Visual Basic, etc. • Permite construir com facilidade a lógica dos programas • Foca-se na lógica e não nos dados
  • 4.
    Programação Orientada aObjetos • A POO foca-se nos dados, aproximando o conceito que temos do mundo real para a programação • Usa objetos para ocultar informações que não devem ser vistas ou são desnecessárias a outros objetos • As linguagens mais recentes foram fundamentadas no paradigma OO – Java, .NET (C# e VB .NET), Ruby, etc. • A maior vantagem da POO é o reuso de código (flexibilidade e manutenção)
  • 5.
    Principais Conceitos POO •A POO é baseada em 3 conceitos principais: – Encapsulamento – Herança – Polimorfismo • Os três conceitos são suportados pelas linguagens de programação e são facilmente implementáveis • Porém, existe um conceito que rege esses 3 conceitos: abstração
  • 6.
    Abstração • É ahabilidade de raciocinar OO • A abstração não é um conceito implementável, pois depende do problema abordado e da visão do programador para resolver esse problema • O programação deve utilizar a abstração para se concentrar nos principais aspectos que irão formar o objeto ou o método • A função da abstração é dar suporte ao reuso de elementos de software
  • 7.
    Encapsulamento • Visa esconderdetalhes da programação e só fornecer o que for realmente relevante • A comunicação entre os objetos deve ocorrer através de métodos • Isso dá mais flexibilidade ao programa, permitindo que modificações futuras possam ser realizadas mais facilmente • O encapsulamento colabora para a reutilização de código
  • 8.
  • 9.
    Herança • Outro conceitoé a herança, ou seja, receber algo que alguém está transmitindo a você • A herança possibilita a criação de novas classes a partir de classes já existentes • A classe-base é a classe que suportará todas as classes derivadas dela, fornecendo atributos, métodos e outros objetos. • A herança é uma funcionalidade que permite que novas classes sejam criadas a partir de uma classe já existente, dando suporte ao reuso de código já programado
  • 10.
  • 11.
    Polimorfismo • O polimorfismoestá relacionado à herança. – Não existe polimorfismo se não houver herança. – Os conceitos estão intimamente relacionados. • Polimorfismo significa “muitas formas”, ou seja, é uma propriedade que permite que os objetos tenham muitas formas ao longo do programa. • O polimorfismo pode ser utilizando tanto para métodos como para classes – Os métodos podem ser reescritos a partir da classe-base – As classes podem mudar sua forma também a partir da classe- base
  • 12.