SlideShare a Scribd company logo
1 of 22
Diogo Vinícius Winck
                diogo.winck@gmail.com




gtalk: diogo.winck@gmail.com
skype: diogo.winck
site: www.winck.biz
Objetivo
Os objetivos da aula de hoje são:
  • Generalização e especialização
  • Tipos de Herança
Quem pode
definir o que é
um especialista?
Liste exemplos de
agregações.

Liste exemplos de
especialização
Por que não usar o termo
           herança?
Herança implica em:
• Duas pessoas diferentes
• Uma pessoa morre
• Outra ganha o espólio...


Mas:
• Uma tesoura de criança é um tipo especial de tesoura:
  só existe um objeto, não há morte e não tem espólio.
modelando
        Funcionario             FuncionarioComissionado


nome: String
                             comissao: double
sobrenome: String
                             vendas: double
salario: double

getNome(): String            zerarVendas():void
getSobrenome: String         addVenda(valor:double):void
getSalario: double           calcularSalario():double
Quantos métodos
um objeto da Classe
FuncionarioComissionado
possui?
Superclasse e subclasse
• Superclasse é a classe mais genérica (também chamada
  de classe mãe).
• Subclasse é a classe mais especializada (também é
  chamada de classe filha)

         Super       NumberFormat




           ChoiceFormat         DecimalFormat
Exercício




            Crie as classes:
              • Funcionário e
              • FuncionárioComissionado


            • O método calcularSalario é definido por:
              • salario + (vendas * comissao)/100
Exercício




            Crie um programa que utilize tanto
            funcionário quanto funcionário
            comissionado.
Interfaces
Considere a interface abaixo:

          public interface VoadorInteface{
               public void decolar();
               public void voar();
               public void pousar();
          }
Quais objetos
implementam esta
interface?

Podemos dizer que
cada um deles possui
a relação “é um”
com esta interface?
Algumas informações
Composição: uma classe implementada usando
objetos (classes) como propriedades internas.

Delegação: é o processo onde um objeto passa uma
mensagem para outro objeto, para que este forneça
algum serviço (execute um método).

Herança Múltipla: quando há mais de uma
superclasse. Não é completamente suportado no java!
Quais são exemplos
de composição?

Quais são exemplos
de delegação?
Visibilidade
                 Impõe uma relação entre superclasse e a subclasse.

                 • Público: totalmente acessível tanto no escopo entre
                  super/sub quanto com qualquer outra classe
acessibilidade




                 • Protegido: Acessível somente no escopo super/sub.


                 • Privado: acessível somente no
                  escopo da classe.
Trabalho para próxima aula
• Elaborar um estudo sobre a API Collections do Java.
   • O que é uma API?
   • Quais interfaces ela disponibiliza?
   • Quais classes ela disponibiliza?
   • Qual a diferença entre um ArrayList e um LinkedList?
   • O que são Maps?
   • O que são Hash?

• Deve ser elaborado uma apresentação e um artigo.
  Alguns pessoas serão convidadas a apresentar.
• Pode ser em dupla.
Referências Bibliográficas
• As imagens foram pesquisadas junto a banco de imagens da
  Microsoft.
• SINTES, Anthony. Aprenda programação orientada a objetos em
  21 dias. 1. ed. São Paulo: Pearson Makron Books, 2002-2010.

More Related Content

What's hot

Normalização - Alexandruk
Normalização - AlexandrukNormalização - Alexandruk
Normalização - AlexandrukHebert Alquimim
 
Escalando aplicações no front-end com ReactJS
Escalando aplicações no front-end com ReactJSEscalando aplicações no front-end com ReactJS
Escalando aplicações no front-end com ReactJSCriciúma Dev
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoNorton Guimarães
 
Apresentação Clean Code
Apresentação Clean CodeApresentação Clean Code
Apresentação Clean CodeAndré Leoni
 
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais) [Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais) Loiane Groner
 
Type Script Conceitos de ts para projetos front-end React - por ruben marcus
Type Script   Conceitos de ts para projetos front-end React - por ruben marcusType Script   Conceitos de ts para projetos front-end React - por ruben marcus
Type Script Conceitos de ts para projetos front-end React - por ruben marcusRuben Marcus Luz Paschoarelli
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endGiovanny Valente
 
Concurrency, Parallelism And IO
Concurrency,  Parallelism And IOConcurrency,  Parallelism And IO
Concurrency, Parallelism And IOPiyush Katariya
 
Conceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDConceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDVinicius Buffolo
 
Classes abstratas
Classes abstratasClasses abstratas
Classes abstratasPedro Neto
 
Introduction to SQLite: The Most Popular Database in the World
Introduction to SQLite: The Most Popular Database in the WorldIntroduction to SQLite: The Most Popular Database in the World
Introduction to SQLite: The Most Popular Database in the Worldjkreibich
 
Design principles - SOLID
Design principles - SOLIDDesign principles - SOLID
Design principles - SOLIDPranalee Rokde
 

What's hot (20)

Normalização - Alexandruk
Normalização - AlexandrukNormalização - Alexandruk
Normalização - Alexandruk
 
Escalando aplicações no front-end com ReactJS
Escalando aplicações no front-end com ReactJSEscalando aplicações no front-end com ReactJS
Escalando aplicações no front-end com ReactJS
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP Básico
 
Apresentação Clean Code
Apresentação Clean CodeApresentação Clean Code
Apresentação Clean Code
 
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais) [Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
[Curso Java Básico] Aula 13: Operadores (Aritiméticos, Lógicos e Relacionais)
 
Linq to sql
Linq to sqlLinq to sql
Linq to sql
 
Curso de Node JS Básico
Curso de Node JS BásicoCurso de Node JS Básico
Curso de Node JS Básico
 
SOLID Principles
SOLID PrinciplesSOLID Principles
SOLID Principles
 
06 Requisitos
06 Requisitos06 Requisitos
06 Requisitos
 
Type Script Conceitos de ts para projetos front-end React - por ruben marcus
Type Script   Conceitos de ts para projetos front-end React - por ruben marcusType Script   Conceitos de ts para projetos front-end React - por ruben marcus
Type Script Conceitos de ts para projetos front-end React - por ruben marcus
 
Desenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-endDesenvolvendo aplicações com Angular e Laravel no Back-end
Desenvolvendo aplicações com Angular e Laravel no Back-end
 
Clean Architecture
Clean ArchitectureClean Architecture
Clean Architecture
 
Concurrency, Parallelism And IO
Concurrency,  Parallelism And IOConcurrency,  Parallelism And IO
Concurrency, Parallelism And IO
 
Conceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBDConceitos de Banco de dados e SGBD
Conceitos de Banco de dados e SGBD
 
Classes abstratas
Classes abstratasClasses abstratas
Classes abstratas
 
Introduction to SQLite: The Most Popular Database in the World
Introduction to SQLite: The Most Popular Database in the WorldIntroduction to SQLite: The Most Popular Database in the World
Introduction to SQLite: The Most Popular Database in the World
 
Design principles - SOLID
Design principles - SOLIDDesign principles - SOLID
Design principles - SOLID
 
SOLID Principles
SOLID PrinciplesSOLID Principles
SOLID Principles
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
 
POO - 06 - Encapsulamento
POO - 06 - EncapsulamentoPOO - 06 - Encapsulamento
POO - 06 - Encapsulamento
 

Viewers also liked

Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetosPaulo Carvalho
 
Aula 03 generalização e especialização
Aula 03   generalização e especializaçãoAula 03   generalização e especialização
Aula 03 generalização e especializaçãoRoitier Gonçalves
 
Stylesguide - Padronização de código
Stylesguide - Padronização de códigoStylesguide - Padronização de código
Stylesguide - Padronização de códigoMac Giovanni
 
POO - Aula 13 - Classe Abstrata e Interface
POO - Aula 13 - Classe Abstrata e InterfacePOO - Aula 13 - Classe Abstrata e Interface
POO - Aula 13 - Classe Abstrata e InterfaceFelipe J. R. Vieira
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02thomasdacosta
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Adriano Tavares
 
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
 
Sociedade e vida cotidiana na América Portuguesa
Sociedade e vida cotidiana na América PortuguesaSociedade e vida cotidiana na América Portuguesa
Sociedade e vida cotidiana na América PortuguesaEdenilson Morais
 
Sociedade e vida cotidiana na américa portuguesa
Sociedade e vida cotidiana na américa portuguesaSociedade e vida cotidiana na américa portuguesa
Sociedade e vida cotidiana na américa portuguesaEdenilson Morais
 
What is tackled in the Java EE Security API (Java EE 8)
What is tackled in the Java EE Security API (Java EE 8)What is tackled in the Java EE Security API (Java EE 8)
What is tackled in the Java EE Security API (Java EE 8)Rudy De Busscher
 

Viewers also liked (12)

Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Java programação orientada a objetos
Java   programação orientada a objetosJava   programação orientada a objetos
Java programação orientada a objetos
 
Aula 03 generalização e especialização
Aula 03   generalização e especializaçãoAula 03   generalização e especialização
Aula 03 generalização e especialização
 
Ember JS Brasil
Ember JS BrasilEmber JS Brasil
Ember JS Brasil
 
Stylesguide - Padronização de código
Stylesguide - Padronização de códigoStylesguide - Padronização de código
Stylesguide - Padronização de código
 
POO - Aula 13 - Classe Abstrata e Interface
POO - Aula 13 - Classe Abstrata e InterfacePOO - Aula 13 - Classe Abstrata e Interface
POO - Aula 13 - Classe Abstrata e Interface
 
Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02Programação Estruturada 2 - Aula 02
Programação Estruturada 2 - Aula 02
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
 
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
 
Sociedade e vida cotidiana na América Portuguesa
Sociedade e vida cotidiana na América PortuguesaSociedade e vida cotidiana na América Portuguesa
Sociedade e vida cotidiana na América Portuguesa
 
Sociedade e vida cotidiana na américa portuguesa
Sociedade e vida cotidiana na américa portuguesaSociedade e vida cotidiana na américa portuguesa
Sociedade e vida cotidiana na américa portuguesa
 
What is tackled in the Java EE Security API (Java EE 8)
What is tackled in the Java EE Security API (Java EE 8)What is tackled in the Java EE Security API (Java EE 8)
What is tackled in the Java EE Security API (Java EE 8)
 

Similar to Modelo de classes Funcionário e FuncionárioComissionado

Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidIury Teixeira
 
POO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfPOO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfAndreCosta502039
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/Rodrigo Vieira
 
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
 
Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )PeslPinguim
 
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16marcusNOGUEIRA
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceArthur Emanuel
 
Desenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a ObjectosDesenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a ObjectosVitor Silva
 
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
 
Apresentação versão 1.5
Apresentação   versão 1.5Apresentação   versão 1.5
Apresentação versão 1.5oliveiraprog
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1Filipo Mór
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosLeonardo Melo Santos
 
(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012Luís Cobucci
 
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
 

Similar to Modelo de classes Funcionário e FuncionárioComissionado (20)

Java aula 2
Java aula 2Java aula 2
Java aula 2
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores Android
 
POO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdfPOO2-Pre-32-PadroesProjetos_.pdf
POO2-Pre-32-PadroesProjetos_.pdf
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
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
 
Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )Aula 02 - Classes em C++ ( Parte 1 )
Aula 02 - Classes em C++ ( Parte 1 )
 
Aula02
Aula02Aula02
Aula02
 
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
Conceitos de Orientação a Objeto e Exemplos no Estudo de Caso do TRT-16
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, Interface
 
Desenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao Orientada a ObjectosDesenvolvimento em .Net - Programaçao Orientada a Objectos
Desenvolvimento em .Net - Programaçao 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
Módulo 9 - Introdução à Programação Orientada a Objectos
 
Java 00 Poo
Java 00 PooJava 00 Poo
Java 00 Poo
 
Apresentação versão 1.5
Apresentação   versão 1.5Apresentação   versão 1.5
Apresentação versão 1.5
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 
Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012(Re)pensando a OOP - TDC 2012
(Re)pensando a OOP - TDC 2012
 
Java7
Java7Java7
Java7
 
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
 
Virada Tecnológica 2017
Virada Tecnológica 2017Virada Tecnológica 2017
Virada Tecnológica 2017
 

Modelo de classes Funcionário e FuncionárioComissionado

  • 1.
  • 2. Diogo Vinícius Winck diogo.winck@gmail.com gtalk: diogo.winck@gmail.com skype: diogo.winck site: www.winck.biz
  • 3. Objetivo Os objetivos da aula de hoje são: • Generalização e especialização • Tipos de Herança
  • 4. Quem pode definir o que é um especialista?
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. Liste exemplos de agregações. Liste exemplos de especialização
  • 10. Por que não usar o termo herança? Herança implica em: • Duas pessoas diferentes • Uma pessoa morre • Outra ganha o espólio... Mas: • Uma tesoura de criança é um tipo especial de tesoura: só existe um objeto, não há morte e não tem espólio.
  • 11. modelando Funcionario FuncionarioComissionado nome: String comissao: double sobrenome: String vendas: double salario: double getNome(): String zerarVendas():void getSobrenome: String addVenda(valor:double):void getSalario: double calcularSalario():double
  • 12. Quantos métodos um objeto da Classe FuncionarioComissionado possui?
  • 13. Superclasse e subclasse • Superclasse é a classe mais genérica (também chamada de classe mãe). • Subclasse é a classe mais especializada (também é chamada de classe filha) Super NumberFormat ChoiceFormat DecimalFormat
  • 14. Exercício Crie as classes: • Funcionário e • FuncionárioComissionado • O método calcularSalario é definido por: • salario + (vendas * comissao)/100
  • 15. Exercício Crie um programa que utilize tanto funcionário quanto funcionário comissionado.
  • 16. Interfaces Considere a interface abaixo: public interface VoadorInteface{ public void decolar(); public void voar(); public void pousar(); }
  • 17. Quais objetos implementam esta interface? Podemos dizer que cada um deles possui a relação “é um” com esta interface?
  • 18. Algumas informações Composição: uma classe implementada usando objetos (classes) como propriedades internas. Delegação: é o processo onde um objeto passa uma mensagem para outro objeto, para que este forneça algum serviço (execute um método). Herança Múltipla: quando há mais de uma superclasse. Não é completamente suportado no java!
  • 19. Quais são exemplos de composição? Quais são exemplos de delegação?
  • 20. Visibilidade Impõe uma relação entre superclasse e a subclasse. • Público: totalmente acessível tanto no escopo entre super/sub quanto com qualquer outra classe acessibilidade • Protegido: Acessível somente no escopo super/sub. • Privado: acessível somente no escopo da classe.
  • 21. Trabalho para próxima aula • Elaborar um estudo sobre a API Collections do Java. • O que é uma API? • Quais interfaces ela disponibiliza? • Quais classes ela disponibiliza? • Qual a diferença entre um ArrayList e um LinkedList? • O que são Maps? • O que são Hash? • Deve ser elaborado uma apresentação e um artigo. Alguns pessoas serão convidadas a apresentar. • Pode ser em dupla.
  • 22. Referências Bibliográficas • As imagens foram pesquisadas junto a banco de imagens da Microsoft. • SINTES, Anthony. Aprenda programação orientada a objetos em 21 dias. 1. ed. São Paulo: Pearson Makron Books, 2002-2010.