SlideShare una empresa de Scribd logo
1 de 18
ESTRUTURA DE
DADOS
Prof. Custódio Gastão.

Alunos: Marcos
Galvão, Kelvin, José
Henrique.
QUESTÕES DE REFERÊNCIA
A) Faça um comparativo entre a programação
estruturada e a programação orientada a
objetos e cite as vantagens de cada uma:
Orientada a objetos: Na programação orientada
a objetos os códigos ficam separados em
classes, cada uma com uma determinada
função, facilitando assim a manutenção
desses códigos inclusive se feita por um outro
programador;
Estruturada: A programação estruturada, os
algorítimos estão todos separados em
blocos, fazendo com que um bloco dependa
de outro para funcionar corretamente, é uma
linguagem fácil de ser compreendida e muito
utilizada em cursos introdutórios de
programação.
B) QUAIS SÃO AS PRINCIPAIS CARACTERÍSTICAS
DA PROGRAMAÇÃO ESTRUTURADA?
Design descendente (top-Down), é uma
linguagem mais simples para entender além
de deixar os softwares mais leves, a
linguagem estruturada é dividida em 3
categorias básicas:
 - Estruturas Sequenciais: realiza um
conjunto predeterminado de comandos de
forma sequencial, de cima para baixo, na
ordem em que foram declarados.

- Estruturas Seletivas: uma das
estruturas base de qualquer linguagem
de programação que desempenha um
papel importante no algorítmo. Essa
estrutura é responsável pela tomada de
decisão de um programa, deixando-o
mais "inteligente". As estruturas
seletivas se apóiam no conceito
booleano, no qual apenas dois
resultados são possíveis: verdadeiro ou
falso.
- Estruturas Repetitivas: Estrutura
Repetitiva submete uma instrução ou
bloco a uma série de repetições, que
podem ser de quantidades de vezes
definida ou não.
C) QUAIS SÃO AS PRINCIPAIS CARACTERÍSTICAS
DA PROGRAMAÇÃO ORIENTADA A OBJETOS?
A programação orientada a objetos
basicamente se divide em 4 principais
características sendo elas:
- Abstração: Nesta etapa “imaginamos” o
nosso objeto, aqui definimos a
identidade, as propriedades e seus métodos
(eventos).
 Identidade: O nome do objeto a ser criado
 Propriedades: São as características do objeto
 Métodos: São os eventos, as ações que esse
objeto irá executar.
-Encapsulamento: É a técnica de
proteger as propriedades e métodos de
um objeto, estas informações são
acessadas apenas internamente pelo
objeto.
-Herança: Técnica utilizada para
definirmos uma característica para o
objeto anteriormente criado.
- Polimorfismo: pode ser utilizada para
definir uma variável descendente.
D) QUAIS SÃO AS PRINCIPAIS CARACTERÍSTICAS
DA PROGRAMAÇÃO LINEAR?
Programação Linear é uma das mais utilizadas
formas para otimização de algorítimos e
resolução de problemas. O uso da PL tem o
objetivo de reduzir custos e maximizar os
resultados, os resultados são obtidos através
de equações lineares. Um conjunto de
equações é denominado “Restrições de
modelo”.
E) EXPLIQUE A PRINCIPAL DIFERENÇA E A
PRINCIPAL SIMILARIDADE ENTRE UM
PROCEDIMENTO E UMA FUNÇÃO NA
PROGRAMAÇÃO.
- Diferença: A diferença entre eles é que o
procedimento apresenta um valor, enquanto a função
não nos retorna valor algum.

- Similaridades: A principal similaridade entre eles é
que, a utilização destes dois métodos impede que
os blocos do programa fiquem grandes demais e
mais difíceis de ler e entender, além de permitirem
a reutilização de um bloco já utilizado
anteriormente.
F) EXPLIQUE O PRINCÍPIO DA MODULARIZAÇÃO
APLICADO NA PROGRAMAÇÃO ESTRUTURADA.

A modularização de algorítimos envolve a
decomposição de algorítimos em forma de
módulos, visando a organização do processo
de programação, assim sendo, permite ao
programador o controle da complexidade do
software. Um módulo é um grupo de
comandos que executa uma função bem
definida.
G) APRESENTE UMA DEFINIÇÃO PARA OBJETO,
SOB O PONTO DE VISTA DA ORIENTAÇÃO A
OBJETOS, CITANDO TRÊS EXEMPLOS.





Um objeto é uma instância de uma classe.
Ex:‘new’ construtor, (para criar um objeto).
O comando new, (também conhecido como operador
de criação), cria um novo objeto, alocando memória
para o objeto e inicializando essa memória para
valores padrão. O comando new necessita de um
operando: o construtor,que é o nome de um método
especial que constrói o objeto. Uma vez construído, o
objeto deve ser atribuído a uma variável, para que
possa ser utilizado e referenciado no futuro.
Ex2: class Pessoa{

}
class ProgramaExemplo{
public static void main(String args[]){
Pessoa umaPessoaQualquer; (declara uma
variável que pode armazenar objetos do tipo
Pessoa (definido na classe anterior)).
umaPessoaQualquer = new Pessoa(); (cria uma
nova pessoa e coloca-a na variável
umaPessoaQualquer ).
}
}
Em Java, você pode criar e atribuir
um novo objeto a uma
variável, simultaneamente. (Basta
colocar tudo na mesma linha).

Ex3: Pessoa umaPessoaQualquer = new Pessoa();
F) IDENTIFIQUE UMA CLASSE, RELACIONE SEUS
PRINCIPAIS ATRIBUTOS, E DÊ EXEMPLO DE TRÊS
OBJETOS (INSTÂNCIAS) QUE FARIAM PARTE
DELA.


Em Java, as variáveis podem ser divididas em
três categorias: atributos (também chamados
de campos), parâmetros e variáveis locais.



Um atributo ou campo é uma variável
declarada no corpo de uma classe. Ele serve
para armazenar o estado de um objeto (e
neste caso é chamado de atributo de instância)
ou o estado de uma classe (atributo de
classe).
class Empregado{
String nome; // o nome do empregado
double salario;// o salário do empregado
int idCargo;// identificador do código da
função que ele exerce
}
I) APLICANDO O PRINCÍPIO DA
ESPECIALIZAÇÃO, IDENTIFIQUE UMA CLASSE E
PELO MENOS TRÊS SUBCLASSES QUE FARIAM
PARTE DELA.
EVIDÊNCIAS:















http://pipeless.blogspot.com.br/2009/01/programao-estruturadaversus-programao.html
http://www.criarweb.com/artigos/707.php
http://www.devmedia.com.br/os-4-pilares-da-programacaoorientada-a-objetos/9264#ixzz2hpDSOSPX
http://pt.wikibooks.org/wiki/Java/Caracter%C3%ADsticas_de_ling
uagens_orientadas_a_objetos
http://www.iepg.unifei.edu.br/edson/download/Engecon2/CAP5EE
2PLapost.pdf
http://dicaspro.blogspot.com.br/2008/06/funo-eprocedimento.html
http://www.slideshare.net/adrianots/estrutura-de-dados-aula-42
http://www.paim.pro.br/hall/html/funcoes/modularizacao-1.htm.
http://www.leandro.wives.nom.br/java/oojava.htm

Más contenido relacionado

La actualidad más candente

Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosLeonardo Melo Santos
 
Programação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e ImplementaçãoProgramação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e ImplementaçãoEvandro Júnior
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5César Augusto Pessôa
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaCharles Jungbeck
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)guest18b3c00
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosOrlando Junior
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a pooSedu
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoMarconi Rodrigues
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaWanderlei Silva do Carmo
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – IIIGabriel Faustino
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetosNécio de Lima Veras
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosEvandro Agnes
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesRegis Magalhães
 
Especialização e generalização em java
Especialização e generalização em javaEspecialização e generalização em java
Especialização e generalização em javaDiogo Winck
 

La actualidad más candente (20)

Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Programação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e ImplementaçãoProgramação Orientada á Objeto - Paradigmas e Implementação
Programação Orientada á Objeto - Paradigmas e Implementação
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5
 
Conceitos Básicos de OO e Java
Conceitos Básicos de OO e JavaConceitos Básicos de OO e Java
Conceitos Básicos de OO e Java
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
Introdução a programação Orientada a Objeto
Introdução a programação Orientada a ObjetoIntrodução a programação Orientada a Objeto
Introdução a programação Orientada a Objeto
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – III
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
O paradigma da orientação a objetos
O paradigma da orientação a objetosO paradigma da orientação a objetos
O paradigma da orientação a objetos
 
POO - Aula 1
POO - Aula 1POO - Aula 1
POO - Aula 1
 
v
vv
v
 
Poo padadigmas
Poo padadigmasPoo padadigmas
Poo padadigmas
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetos
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 
Especialização e generalização em java
Especialização e generalização em javaEspecialização e generalização em java
Especialização e generalização em java
 

Similar a Estrutura de Dados e Programação

Apostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a ParteApostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a ParteIlton Barbosa
 
Apostila ph pwamp_parte5
Apostila ph pwamp_parte5Apostila ph pwamp_parte5
Apostila ph pwamp_parte5Ilton Barbosa
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Luis Ferreira
 
Introdução à programação por objectos final
Introdução à programação por objectos finalIntrodução à programação por objectos final
Introdução à programação por objectos finalemcp11
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Ryan Padilha
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemassauloroos01
 
Linguagens de programação 12º M11
Linguagens de programação 12º M11Linguagens de programação 12º M11
Linguagens de programação 12º M11Luis Ferreira
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Sérgio Souza Costa
 
Slides 02 - Orientacao a Objetos.pdf
Slides 02 - Orientacao a Objetos.pdfSlides 02 - Orientacao a Objetos.pdf
Slides 02 - Orientacao a Objetos.pdfJadna Almeida
 
2009_2Sem.POOII.Ciencia Aula2 Revisao De Classes E Objetos
2009_2Sem.POOII.Ciencia Aula2   Revisao De Classes E Objetos2009_2Sem.POOII.Ciencia Aula2   Revisao De Classes E Objetos
2009_2Sem.POOII.Ciencia Aula2 Revisao De Classes E Objetosguest9b4c7f
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaFernando Camargo
 

Similar a Estrutura de Dados e Programação (20)

Java aula 2
Java aula 2Java aula 2
Java aula 2
 
Apostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a ParteApostila PhP com Wamp, 4a Parte
Apostila PhP com Wamp, 4a Parte
 
Java7
Java7Java7
Java7
 
Apostila ph pwamp_parte5
Apostila ph pwamp_parte5Apostila ph pwamp_parte5
Apostila ph pwamp_parte5
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 
Aula 3 -_fundamentos_sobre_aoo
Aula 3 -_fundamentos_sobre_aooAula 3 -_fundamentos_sobre_aoo
Aula 3 -_fundamentos_sobre_aoo
 
Introdução à programação por objectos final
Introdução à programação por objectos finalIntrodução à programação por objectos final
Introdução à programação por objectos final
 
Aula01-IntroducaoOO.pptx
Aula01-IntroducaoOO.pptxAula01-IntroducaoOO.pptx
Aula01-IntroducaoOO.pptx
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
 
Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)Orientação a Objetos no Delphi - Por onde começar (I)
Orientação a Objetos no Delphi - Por onde começar (I)
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
 
Java 02
Java 02Java 02
Java 02
 
Linguagens de programação 12º M11
Linguagens de programação 12º M11Linguagens de programação 12º M11
Linguagens de programação 12º M11
 
Resumão java
Resumão javaResumão java
Resumão java
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++
 
Slides 02 - Orientacao a Objetos.pdf
Slides 02 - Orientacao a Objetos.pdfSlides 02 - Orientacao a Objetos.pdf
Slides 02 - Orientacao a Objetos.pdf
 
2009_2Sem.POOII.Ciencia Aula2 Revisao De Classes E Objetos
2009_2Sem.POOII.Ciencia Aula2   Revisao De Classes E Objetos2009_2Sem.POOII.Ciencia Aula2   Revisao De Classes E Objetos
2009_2Sem.POOII.Ciencia Aula2 Revisao De Classes E Objetos
 
Construção de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em JavaConstrução de Frameworks com Annotation e Reflection API em Java
Construção de Frameworks com Annotation e Reflection API em Java
 
Pged 03
Pged 03Pged 03
Pged 03
 

Estrutura de Dados e Programação

  • 1. ESTRUTURA DE DADOS Prof. Custódio Gastão. Alunos: Marcos Galvão, Kelvin, José Henrique.
  • 2. QUESTÕES DE REFERÊNCIA A) Faça um comparativo entre a programação estruturada e a programação orientada a objetos e cite as vantagens de cada uma: Orientada a objetos: Na programação orientada a objetos os códigos ficam separados em classes, cada uma com uma determinada função, facilitando assim a manutenção desses códigos inclusive se feita por um outro programador;
  • 3. Estruturada: A programação estruturada, os algorítimos estão todos separados em blocos, fazendo com que um bloco dependa de outro para funcionar corretamente, é uma linguagem fácil de ser compreendida e muito utilizada em cursos introdutórios de programação.
  • 4. B) QUAIS SÃO AS PRINCIPAIS CARACTERÍSTICAS DA PROGRAMAÇÃO ESTRUTURADA? Design descendente (top-Down), é uma linguagem mais simples para entender além de deixar os softwares mais leves, a linguagem estruturada é dividida em 3 categorias básicas:  - Estruturas Sequenciais: realiza um conjunto predeterminado de comandos de forma sequencial, de cima para baixo, na ordem em que foram declarados. 
  • 5. - Estruturas Seletivas: uma das estruturas base de qualquer linguagem de programação que desempenha um papel importante no algorítmo. Essa estrutura é responsável pela tomada de decisão de um programa, deixando-o mais "inteligente". As estruturas seletivas se apóiam no conceito booleano, no qual apenas dois resultados são possíveis: verdadeiro ou falso.
  • 6. - Estruturas Repetitivas: Estrutura Repetitiva submete uma instrução ou bloco a uma série de repetições, que podem ser de quantidades de vezes definida ou não.
  • 7. C) QUAIS SÃO AS PRINCIPAIS CARACTERÍSTICAS DA PROGRAMAÇÃO ORIENTADA A OBJETOS? A programação orientada a objetos basicamente se divide em 4 principais características sendo elas: - Abstração: Nesta etapa “imaginamos” o nosso objeto, aqui definimos a identidade, as propriedades e seus métodos (eventos).  Identidade: O nome do objeto a ser criado  Propriedades: São as características do objeto  Métodos: São os eventos, as ações que esse objeto irá executar.
  • 8. -Encapsulamento: É a técnica de proteger as propriedades e métodos de um objeto, estas informações são acessadas apenas internamente pelo objeto. -Herança: Técnica utilizada para definirmos uma característica para o objeto anteriormente criado. - Polimorfismo: pode ser utilizada para definir uma variável descendente.
  • 9. D) QUAIS SÃO AS PRINCIPAIS CARACTERÍSTICAS DA PROGRAMAÇÃO LINEAR? Programação Linear é uma das mais utilizadas formas para otimização de algorítimos e resolução de problemas. O uso da PL tem o objetivo de reduzir custos e maximizar os resultados, os resultados são obtidos através de equações lineares. Um conjunto de equações é denominado “Restrições de modelo”.
  • 10. E) EXPLIQUE A PRINCIPAL DIFERENÇA E A PRINCIPAL SIMILARIDADE ENTRE UM PROCEDIMENTO E UMA FUNÇÃO NA PROGRAMAÇÃO. - Diferença: A diferença entre eles é que o procedimento apresenta um valor, enquanto a função não nos retorna valor algum. - Similaridades: A principal similaridade entre eles é que, a utilização destes dois métodos impede que os blocos do programa fiquem grandes demais e mais difíceis de ler e entender, além de permitirem a reutilização de um bloco já utilizado anteriormente.
  • 11. F) EXPLIQUE O PRINCÍPIO DA MODULARIZAÇÃO APLICADO NA PROGRAMAÇÃO ESTRUTURADA. A modularização de algorítimos envolve a decomposição de algorítimos em forma de módulos, visando a organização do processo de programação, assim sendo, permite ao programador o controle da complexidade do software. Um módulo é um grupo de comandos que executa uma função bem definida.
  • 12. G) APRESENTE UMA DEFINIÇÃO PARA OBJETO, SOB O PONTO DE VISTA DA ORIENTAÇÃO A OBJETOS, CITANDO TRÊS EXEMPLOS.    Um objeto é uma instância de uma classe. Ex:‘new’ construtor, (para criar um objeto). O comando new, (também conhecido como operador de criação), cria um novo objeto, alocando memória para o objeto e inicializando essa memória para valores padrão. O comando new necessita de um operando: o construtor,que é o nome de um método especial que constrói o objeto. Uma vez construído, o objeto deve ser atribuído a uma variável, para que possa ser utilizado e referenciado no futuro.
  • 13. Ex2: class Pessoa{ } class ProgramaExemplo{ public static void main(String args[]){ Pessoa umaPessoaQualquer; (declara uma variável que pode armazenar objetos do tipo Pessoa (definido na classe anterior)). umaPessoaQualquer = new Pessoa(); (cria uma nova pessoa e coloca-a na variável umaPessoaQualquer ). } }
  • 14. Em Java, você pode criar e atribuir um novo objeto a uma variável, simultaneamente. (Basta colocar tudo na mesma linha). Ex3: Pessoa umaPessoaQualquer = new Pessoa();
  • 15. F) IDENTIFIQUE UMA CLASSE, RELACIONE SEUS PRINCIPAIS ATRIBUTOS, E DÊ EXEMPLO DE TRÊS OBJETOS (INSTÂNCIAS) QUE FARIAM PARTE DELA.  Em Java, as variáveis podem ser divididas em três categorias: atributos (também chamados de campos), parâmetros e variáveis locais.  Um atributo ou campo é uma variável declarada no corpo de uma classe. Ele serve para armazenar o estado de um objeto (e neste caso é chamado de atributo de instância) ou o estado de uma classe (atributo de classe).
  • 16. class Empregado{ String nome; // o nome do empregado double salario;// o salário do empregado int idCargo;// identificador do código da função que ele exerce }
  • 17. I) APLICANDO O PRINCÍPIO DA ESPECIALIZAÇÃO, IDENTIFIQUE UMA CLASSE E PELO MENOS TRÊS SUBCLASSES QUE FARIAM PARTE DELA.