SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
19/03/2024 1
Programação Orientada a Objetos
Herança em Java: O Segundo Pilar da
Programação Orientada a Objetos
19/03/2024 2
Programação Orientada a Objetos
Ementa da Aula
Apresentação da Aula
Professor João Marcos
Livros Recomendados
Revisão de Orientada a Objetos
Introdução a Conceitos
Orientação a Objetos: Herança
Superposição de atributos e métodos
Herança e Generalização
Classes Abstratas
Exemplo Prático de Herança em Java
Exemplo Prático de Herança com Classe
Abstrata em Java
Pensando um Pouco
Exercícios
Referências
Agradecimentos
Sanando Dúvidas
Professor João Marcos
3
Formação:
• Pós-graduação em Engenharia de
Software, Descomplica Faculdade
Digital Descomplica, Cursando.
• Pós-graduação em Redes e
Segurança de Sistemas de
Informação, Faculdade Sapiens,
2014 – 2015, Concluído.
• Pós-Graduação em Metodologia do
Ensino Superior, Faculdade
Sapiens, 2013 – 2014, Concluído.
• Tecnologia em Análise e
Desenvolvimento de Sistemas,
Universidade do Estado do
Amazonas, 2007 – 2011, Concluído.
Experiência Profissional:
• Fóton Informática S.A.
• Ilha Service Tecnologia e Serviços.
• Instituto Conecthus - Tecnologia e
Biotecnologia do Amazonas.
• Grupo Yamaha Brasil.
• Softplan Planejamento e Sistemas
lotado no TJAM.
• Patrimônio Tecnologia.
• Retta Consultoria em Tecnologia .
• Analista de Transmissão de Dados do
TER/RO.
• Escola SENAI Marechal Rondon ·
Tempo integral.
• Centro de Educação Tecnológica do
Amazonas – CETAM.
Livros Recomendados
19/03/2024 4
Programação Orientada a Objetos
Orientada a Objetos
Revisão ...
• Programação Orientada a
Objetos é um paradigma de
programação centrado em
torno dos conceitos de classes
e objetos.
• Objetos são unidades de
programa que abstraem dados e
operações relacionados.
• Objetos possuem características
e comportamentos.
19/03/2024 5
Programação Orientada a Objetos
Orientação a Objetos
Revisão ...
• Ex. Bicicleta:
CARACTERÍSTICAS – atributos velocidade e marcha;
COMPORTAMENTO – exposto pelos métodos:
+ mudarMarcha,aumentarVelocidade.
19/03/2024 6
Orientação a Objetos
Revisão ...
Uma classe é uma
abstração de uma
coleção de objetos com
características e
comportamentos em
comum.
As características de
uma classe se
manifestam
computacionalmente na
forma de atributos.
19/03/2024 7
Orientação a Objetos
Revisão ...
Uma classe fornece um
esquema para construção de
objetos com caracterísicas
e comportamentos
semelhantes.
Um objeto é uma instância de
uma única classe.
19/03/2024 Programação Orientada a
Objetos
8
Orientação a Objetos
Revisão ...
Um programa OO é um
conjunto de objetos que
colaboram entre si para a
solução de um problema
Objetos colaboram através de
trocas de mensagens
A troca de mensagem é realizada
através da chamada de um
método
19/03/2024 Programação Orientada a Objetos 9
Orientação a Objetos
Revisão...
Encapsulamento:
Princípio pelo qual cada componente de
um programa deve agregar toda a
informação relevante para sua
manipulação.
Ocultação da Informação:
princípio pelo qual cada componente
deve manter oculta sob sua guarda uma
decisão de projeto única. Para a
utlização dessecomponente, apenas o
mínimo necessário para sua operação
deve ser revelado (tornado público).
10
Introdução
Conceitos
11
Orientação a Objetos
Herança
Diferentes classes podem ter diversas semelhança
Duas ou mais classes poderão compartilhar os
mesmos atributos e/ou os mesmos métodos.
Herança: Permite a uma classe herdar o
estado (atributos) e o comportamento
(métodos) de outra classe.
– Superclasse
– Subclasse
– Ancestral
– Descendente
12
19/03/2
024
Programação Orientada a
Objetos
13
Orientação a Objetos
Herança
Orientação a Objetos
Herança
Aluno
Curso
Matrícula
Nota Média
Professor
Formação
Área de interesse
Departamento
Pessoa
Nome
Idade
14
Orientação a Objetos
Herança
Professor
- nome: String
- idade: int
- formação: String
+definirNome(nome: String): void
+retornarNome(): String
+definirIdade(idade: int): void
+retornarIdade(): int
+definirFormacao(f: String): void
+retornarFormacao(): String
...
Aluno
- nome: String
- idade: int
- curso: String
+definirNome(nome: String): void
+retornarNome(): String
+definirIdade(idade: int): void
+retornarIdade(): int
+definirCurso(c: String): void
+retornarCurso(): String
...
15
Orientação a Objetos
Herança
16
Professor
- nome: String
- idade: int
- formação: String
+definirNome(nome: String): void
+retornarNome(): String
+definirIdade(idade: int): void
+retornarIdade(): int
+definirFormacao(f: String): void
+retornarFormacao(): String
...
Aluno
- nome: String
- idade: int
- curso: String
+definirNome(nome: String): void
+retornarNome(): String
+definirIdade(idade: int): void
+retornarIdade(): int
+definirCurso(c: String): void
+retornarCurso(): String
...
Orientação a Objetos
Herança
Aluno
- curso: String
Professor
- formação: String
+definirFormacao(f: String): void
+retornarFormacao(): String
+definirCurso(f: String): void
+retornarCurso(): String
19/03/2024 Programação Orientada a Objetos 17
Pessoa
- nome: String
- idade: int
+definirNome(nome: String): void
+retornarNome(): String
+definirIdade(idade: int): void
+retornarIdade(): int
Orientação a Objetos
Herança
Pessoa
- nome: String
- idade: int
+definirNome(nome: String): void
+retornarNome(): String
+definirIdade(idade: int): void
+retornarIdade(): int
Aluno
- curso: String
+definirCurso(f: String): void
+retornarCurso(): String
João
25
Sistemas de Informação
Instâncias de Aluno
Maria
20
Sistemas de Informação
18
Orientação a Objetos
Herança
//SuperClass.java public class
SuperClass
{
// Atributos e métodos
}
//SubClass.java
public class SubClass extends SuperClass
{
// Atributos e métodos
}
19
Orientação a Objetos
Herança
19/03/2024 Programação Orientada a Objetos 20
Orientação a Objetos
Herança
class Pessoa {
String nome;
int idade;
void definirNome(String valor) {
nome = valor;
}
String retornarNome() {
return nome;
}
void definirIdade(int valor) {
idade = valor;
}
int retornarIdade() {
return idade;
}
}
class Aluno extends Pessoa {
String curso;
void definirCurso(String valor) {
curso = valor;
}
String retornarCurso() {
return curso;
}
}
19/03/2024 Programação Orientada a Objetos 21
Orientação a Objetos
Herança
Aluno joao = new Aluno();
joao.definirNome(“João”);
joao.definirIdade(25);
joao.definirCurso(“Sistemas de
Informação”);
Aluno maria = new Aluno();
maria.definirNome(“Maria”);
maria.definirIdade(20);
maria.definirCurso(“Ciência da
Computação”);
João
25
Sistemas de Informação
Maria
20
Ciência da Computação
19/03/2024 Programação Orientada a Objetos 22
Orientação a Objetos
Herança
Eletrodoméstico Liquidificador
Voltagem
Garantia
Fabricante
Cor
Ligar
Desligar
Auto Limpeza
Velocidade
19/03/2024 Programação Orientada a Objetos 23
Orientação a Objetos
Superposição de atributos e métodos
public class Automovel extends VeiculoTerrestre {
public String licenca;
public Automovel(){
super.licenca="LAL1229";
}
}
19/03/2024 Programação Orientada a Objetos 24
Atributos com mesmo nome de atributos de superclasses
escondem o atributo da superclasse.
O acesso ao atributo da superclasse se faz com o uso do
operador super.
Orientação a Objetos
Herança e Generalização
Uma generalização é um relacionamento entre itens gerais
(superclasse) e itens mais específicos (subclasses).
É representada por uma linha sólida com um triângulo
vazado apontando para o item mais geral.
“é um”
“é um tipo de”
superclasse
subclasse
19/03/2024 Programação Orientada a Objetos 25
Orientação a Objetos
Classes Abstratas
São classes que existem apenas
conceitualmente para definir
conjuntos de métodos e
propriedades.
Uma classe abstrata é uma
classe que não tem
instâncias diretas.
Entretanto, suas classes
descendentes podem ter
instâncias diretas.
26
27
Exemplo Prático
Exemplo Prático de Herança em Java
Considere um exemplo simples de uma hierarquia de classes para representar formas geométricas:
Orientação a Objetos
Herança
19/03/2024 Programação Orientada a Objetos 28
public abstract class Empregado {
public Empregado (String nome, double salario) {
this.numero = ++contador;
this.nome = nome;
this.salario = salario; }
public abstract void aumentaSalario(double percentual);
}
public class Vendedor extends Empregado{
public void aumentaSalario (double percentualDeAumento)
{ percComissao = percComissao * (1+percentualDeAumento/100);}
}
public class Gerente extends Empregado {
public void aumentaSalario(double percentual) {
double novoSalario = getSalario() * (1+2 * percentual/100);
setSalario(novoSalario);
}
}
Exemplo Prático de Herança com Classe Abstrata em Java
29
Pensando um Pouco
Como os conceitos
de Herança do
paradigma da
Programação
Orientada a Objetos
estão presentes no
nosso dia a dia.
19/03/2024 Programação Orientada a Objetos 30
Exercícios
1) Modifique a classe Carro do alugacar conforme ilustra a imagem abaixo.
2) Altere a aplicação alugacar para permitir a locação de outros veículos,
tais como: motos e ônibus.
3) Crie duas subclasses de Conta: ContaCorrente e ContaPoupanca.
19/03/2024 Programação Orientada a Objetos 31
Referências
• DEITEL, H. M.; DEITEL, P. J. Java: como programar. 8. ed. São Paulo:
Prentice Hall Brasil, 2010.
• SANTOS, R. Introdução à Programação Orientada a Objetos Usando Java.
2. ed. Rio de Janeiro: Campus – Elsevier, 2013.
• SCHILDT, H. Java para iniciantes. 5. ed. Porto Alegre: Bookman, 2013.
• SIERRA, K.; BATES, B. Use a cabeça! Java. 2.ed. Rio de Janeiro, RJ: Alta
Books, 2010.
• TURINI, R. Desbravando Java e Orientação a Objetos: Um guia para o
iniciante da linguagem. São Paulo: Casa do Código, 2014.
• BARNES, D. J.; KÖLLING, M. Programação orientada a objetos com Java:
uma introdução prática usando o BlueJ. 4. ed. São Paulo, SP: Pearson
Prentice Hall, 2009. xxii, 455 p. ISBN 9788576051879.
19/03/2024 Programação Orientada a Objetos 32
Referências
• BORATTI, I. C. Programação orientada a objetos em Java. Florianópolis:
Visual Books, 2007. 310 p. ISBN 978857502199-6.
• CARDOSO, C. Orientação a objetos na prática: aprendendo orientação a
objetos com Java. Rio de Janeiro: Ciência Moderna, 2006. 175 p. ISBN
8573935383.
• HORSTMANN, C. S.; CORNELL, G. Core Java. 8. ed. São Paulo, SP: Pearson,
2010. 400 p. ISBN 9788576053576.
• LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao
projeto orientados a objetos e ao desenvolvimento iterativo. 3. ed. Porto
Alegre: Bookman, 2007. 695 p. ISBN 85-363-0358-1.
19/03/2024 Programação Orientada a Objetos 33
Obrigado pela sua Atenção!!!
19/03/2024 Programação Orientada a Objetos 34
Sanando Dúvidas!!!

Mais conteúdo relacionado

Semelhante a Aula de Orientação a Objetos - Herança com Java

Projeto graphmatica e o ensino de funções no ensino médio
Projeto graphmatica e o ensino de funções no ensino médioProjeto graphmatica e o ensino de funções no ensino médio
Projeto graphmatica e o ensino de funções no ensino médiocolegiocpf
 
Projeto de Educação Matemática: Ensino de Matrizes e Grafos.
Projeto de Educação Matemática: Ensino de Matrizes e Grafos.Projeto de Educação Matemática: Ensino de Matrizes e Grafos.
Projeto de Educação Matemática: Ensino de Matrizes e Grafos.profmatleandro
 
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
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem IIIJuliano Weber
 
Apresentação - O Processo De Bolonha Na Web Semântica
Apresentação - O Processo De Bolonha Na Web SemânticaApresentação - O Processo De Bolonha Na Web Semântica
Apresentação - O Processo De Bolonha Na Web SemânticaEduardo Covelinhas
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Elerning em contexto de Realidade Aumentada
Elerning em contexto de Realidade AumentadaElerning em contexto de Realidade Aumentada
Elerning em contexto de Realidade AumentadaCarlos Amorim
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosRamon Mayor Martins
 
A Utilização da Plataforma Joomla! na Escola
A Utilização da Plataforma Joomla! na EscolaA Utilização da Plataforma Joomla! na Escola
A Utilização da Plataforma Joomla! na EscolaJorge Borges
 
Proposta de plano de ensino
Proposta de plano de ensinoProposta de plano de ensino
Proposta de plano de ensinodkem
 
Learning Design: Conceitos e Práticas
Learning Design: Conceitos e PráticasLearning Design: Conceitos e Práticas
Learning Design: Conceitos e PráticasJaime Balbino
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosGeorge Mendonça
 
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
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Jhonefj
 

Semelhante a Aula de Orientação a Objetos - Herança com Java (20)

Projeto graphmatica e o ensino de funções no ensino médio
Projeto graphmatica e o ensino de funções no ensino médioProjeto graphmatica e o ensino de funções no ensino médio
Projeto graphmatica e o ensino de funções no ensino médio
 
Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1
 
Projeto de Educação Matemática: Ensino de Matrizes e Grafos.
Projeto de Educação Matemática: Ensino de Matrizes e Grafos.Projeto de Educação Matemática: Ensino de Matrizes e Grafos.
Projeto de Educação Matemática: Ensino de Matrizes e Grafos.
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
Aula orientação a objetos
Aula orientação a objetosAula orientação a objetos
Aula orientação a objetos
 
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 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
Apresentação - O Processo De Bolonha Na Web Semântica
Apresentação - O Processo De Bolonha Na Web SemânticaApresentação - O Processo De Bolonha Na Web Semântica
Apresentação - O Processo De Bolonha Na Web Semântica
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Elerning em contexto de Realidade Aumentada
Elerning em contexto de Realidade AumentadaElerning em contexto de Realidade Aumentada
Elerning em contexto de Realidade Aumentada
 
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a ObjetosIES GF - Introdução a Linguagem de Programação Orientada a Objetos
IES GF - Introdução a Linguagem de Programação Orientada a Objetos
 
A Utilização da Plataforma Joomla! na Escola
A Utilização da Plataforma Joomla! na EscolaA Utilização da Plataforma Joomla! na Escola
A Utilização da Plataforma Joomla! na Escola
 
POO.pdf
POO.pdfPOO.pdf
POO.pdf
 
Proposta de plano de ensino
Proposta de plano de ensinoProposta de plano de ensino
Proposta de plano de ensino
 
Learning Design: Conceitos e Práticas
Learning Design: Conceitos e PráticasLearning Design: Conceitos e Práticas
Learning Design: Conceitos e Práticas
 
Sistema acadêmico
Sistema acadêmicoSistema acadêmico
Sistema acadêmico
 
Java7
Java7Java7
Java7
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
 
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++
 
Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02Umlv4 090813182632-phpapp02
Umlv4 090813182632-phpapp02
 

Aula de Orientação a Objetos - Herança com Java

  • 1. 19/03/2024 1 Programação Orientada a Objetos Herança em Java: O Segundo Pilar da Programação Orientada a Objetos
  • 2. 19/03/2024 2 Programação Orientada a Objetos Ementa da Aula Apresentação da Aula Professor João Marcos Livros Recomendados Revisão de Orientada a Objetos Introdução a Conceitos Orientação a Objetos: Herança Superposição de atributos e métodos Herança e Generalização Classes Abstratas Exemplo Prático de Herança em Java Exemplo Prático de Herança com Classe Abstrata em Java Pensando um Pouco Exercícios Referências Agradecimentos Sanando Dúvidas
  • 3. Professor João Marcos 3 Formação: • Pós-graduação em Engenharia de Software, Descomplica Faculdade Digital Descomplica, Cursando. • Pós-graduação em Redes e Segurança de Sistemas de Informação, Faculdade Sapiens, 2014 – 2015, Concluído. • Pós-Graduação em Metodologia do Ensino Superior, Faculdade Sapiens, 2013 – 2014, Concluído. • Tecnologia em Análise e Desenvolvimento de Sistemas, Universidade do Estado do Amazonas, 2007 – 2011, Concluído. Experiência Profissional: • Fóton Informática S.A. • Ilha Service Tecnologia e Serviços. • Instituto Conecthus - Tecnologia e Biotecnologia do Amazonas. • Grupo Yamaha Brasil. • Softplan Planejamento e Sistemas lotado no TJAM. • Patrimônio Tecnologia. • Retta Consultoria em Tecnologia . • Analista de Transmissão de Dados do TER/RO. • Escola SENAI Marechal Rondon · Tempo integral. • Centro de Educação Tecnológica do Amazonas – CETAM.
  • 5. Orientada a Objetos Revisão ... • Programação Orientada a Objetos é um paradigma de programação centrado em torno dos conceitos de classes e objetos. • Objetos são unidades de programa que abstraem dados e operações relacionados. • Objetos possuem características e comportamentos. 19/03/2024 5 Programação Orientada a Objetos
  • 6. Orientação a Objetos Revisão ... • Ex. Bicicleta: CARACTERÍSTICAS – atributos velocidade e marcha; COMPORTAMENTO – exposto pelos métodos: + mudarMarcha,aumentarVelocidade. 19/03/2024 6
  • 7. Orientação a Objetos Revisão ... Uma classe é uma abstração de uma coleção de objetos com características e comportamentos em comum. As características de uma classe se manifestam computacionalmente na forma de atributos. 19/03/2024 7
  • 8. Orientação a Objetos Revisão ... Uma classe fornece um esquema para construção de objetos com caracterísicas e comportamentos semelhantes. Um objeto é uma instância de uma única classe. 19/03/2024 Programação Orientada a Objetos 8
  • 9. Orientação a Objetos Revisão ... Um programa OO é um conjunto de objetos que colaboram entre si para a solução de um problema Objetos colaboram através de trocas de mensagens A troca de mensagem é realizada através da chamada de um método 19/03/2024 Programação Orientada a Objetos 9
  • 10. Orientação a Objetos Revisão... Encapsulamento: Princípio pelo qual cada componente de um programa deve agregar toda a informação relevante para sua manipulação. Ocultação da Informação: princípio pelo qual cada componente deve manter oculta sob sua guarda uma decisão de projeto única. Para a utlização dessecomponente, apenas o mínimo necessário para sua operação deve ser revelado (tornado público). 10
  • 12. Orientação a Objetos Herança Diferentes classes podem ter diversas semelhança Duas ou mais classes poderão compartilhar os mesmos atributos e/ou os mesmos métodos. Herança: Permite a uma classe herdar o estado (atributos) e o comportamento (métodos) de outra classe. – Superclasse – Subclasse – Ancestral – Descendente 12
  • 14. Orientação a Objetos Herança Aluno Curso Matrícula Nota Média Professor Formação Área de interesse Departamento Pessoa Nome Idade 14
  • 15. Orientação a Objetos Herança Professor - nome: String - idade: int - formação: String +definirNome(nome: String): void +retornarNome(): String +definirIdade(idade: int): void +retornarIdade(): int +definirFormacao(f: String): void +retornarFormacao(): String ... Aluno - nome: String - idade: int - curso: String +definirNome(nome: String): void +retornarNome(): String +definirIdade(idade: int): void +retornarIdade(): int +definirCurso(c: String): void +retornarCurso(): String ... 15
  • 16. Orientação a Objetos Herança 16 Professor - nome: String - idade: int - formação: String +definirNome(nome: String): void +retornarNome(): String +definirIdade(idade: int): void +retornarIdade(): int +definirFormacao(f: String): void +retornarFormacao(): String ... Aluno - nome: String - idade: int - curso: String +definirNome(nome: String): void +retornarNome(): String +definirIdade(idade: int): void +retornarIdade(): int +definirCurso(c: String): void +retornarCurso(): String ...
  • 17. Orientação a Objetos Herança Aluno - curso: String Professor - formação: String +definirFormacao(f: String): void +retornarFormacao(): String +definirCurso(f: String): void +retornarCurso(): String 19/03/2024 Programação Orientada a Objetos 17 Pessoa - nome: String - idade: int +definirNome(nome: String): void +retornarNome(): String +definirIdade(idade: int): void +retornarIdade(): int
  • 18. Orientação a Objetos Herança Pessoa - nome: String - idade: int +definirNome(nome: String): void +retornarNome(): String +definirIdade(idade: int): void +retornarIdade(): int Aluno - curso: String +definirCurso(f: String): void +retornarCurso(): String João 25 Sistemas de Informação Instâncias de Aluno Maria 20 Sistemas de Informação 18
  • 19. Orientação a Objetos Herança //SuperClass.java public class SuperClass { // Atributos e métodos } //SubClass.java public class SubClass extends SuperClass { // Atributos e métodos } 19
  • 20. Orientação a Objetos Herança 19/03/2024 Programação Orientada a Objetos 20
  • 21. Orientação a Objetos Herança class Pessoa { String nome; int idade; void definirNome(String valor) { nome = valor; } String retornarNome() { return nome; } void definirIdade(int valor) { idade = valor; } int retornarIdade() { return idade; } } class Aluno extends Pessoa { String curso; void definirCurso(String valor) { curso = valor; } String retornarCurso() { return curso; } } 19/03/2024 Programação Orientada a Objetos 21
  • 22. Orientação a Objetos Herança Aluno joao = new Aluno(); joao.definirNome(“João”); joao.definirIdade(25); joao.definirCurso(“Sistemas de Informação”); Aluno maria = new Aluno(); maria.definirNome(“Maria”); maria.definirIdade(20); maria.definirCurso(“Ciência da Computação”); João 25 Sistemas de Informação Maria 20 Ciência da Computação 19/03/2024 Programação Orientada a Objetos 22
  • 23. Orientação a Objetos Herança Eletrodoméstico Liquidificador Voltagem Garantia Fabricante Cor Ligar Desligar Auto Limpeza Velocidade 19/03/2024 Programação Orientada a Objetos 23
  • 24. Orientação a Objetos Superposição de atributos e métodos public class Automovel extends VeiculoTerrestre { public String licenca; public Automovel(){ super.licenca="LAL1229"; } } 19/03/2024 Programação Orientada a Objetos 24 Atributos com mesmo nome de atributos de superclasses escondem o atributo da superclasse. O acesso ao atributo da superclasse se faz com o uso do operador super.
  • 25. Orientação a Objetos Herança e Generalização Uma generalização é um relacionamento entre itens gerais (superclasse) e itens mais específicos (subclasses). É representada por uma linha sólida com um triângulo vazado apontando para o item mais geral. “é um” “é um tipo de” superclasse subclasse 19/03/2024 Programação Orientada a Objetos 25
  • 26. Orientação a Objetos Classes Abstratas São classes que existem apenas conceitualmente para definir conjuntos de métodos e propriedades. Uma classe abstrata é uma classe que não tem instâncias diretas. Entretanto, suas classes descendentes podem ter instâncias diretas. 26
  • 27. 27 Exemplo Prático Exemplo Prático de Herança em Java Considere um exemplo simples de uma hierarquia de classes para representar formas geométricas:
  • 28. Orientação a Objetos Herança 19/03/2024 Programação Orientada a Objetos 28 public abstract class Empregado { public Empregado (String nome, double salario) { this.numero = ++contador; this.nome = nome; this.salario = salario; } public abstract void aumentaSalario(double percentual); } public class Vendedor extends Empregado{ public void aumentaSalario (double percentualDeAumento) { percComissao = percComissao * (1+percentualDeAumento/100);} } public class Gerente extends Empregado { public void aumentaSalario(double percentual) { double novoSalario = getSalario() * (1+2 * percentual/100); setSalario(novoSalario); } } Exemplo Prático de Herança com Classe Abstrata em Java
  • 29. 29 Pensando um Pouco Como os conceitos de Herança do paradigma da Programação Orientada a Objetos estão presentes no nosso dia a dia.
  • 30. 19/03/2024 Programação Orientada a Objetos 30 Exercícios 1) Modifique a classe Carro do alugacar conforme ilustra a imagem abaixo. 2) Altere a aplicação alugacar para permitir a locação de outros veículos, tais como: motos e ônibus. 3) Crie duas subclasses de Conta: ContaCorrente e ContaPoupanca.
  • 31. 19/03/2024 Programação Orientada a Objetos 31 Referências • DEITEL, H. M.; DEITEL, P. J. Java: como programar. 8. ed. São Paulo: Prentice Hall Brasil, 2010. • SANTOS, R. Introdução à Programação Orientada a Objetos Usando Java. 2. ed. Rio de Janeiro: Campus – Elsevier, 2013. • SCHILDT, H. Java para iniciantes. 5. ed. Porto Alegre: Bookman, 2013. • SIERRA, K.; BATES, B. Use a cabeça! Java. 2.ed. Rio de Janeiro, RJ: Alta Books, 2010. • TURINI, R. Desbravando Java e Orientação a Objetos: Um guia para o iniciante da linguagem. São Paulo: Casa do Código, 2014. • BARNES, D. J.; KÖLLING, M. Programação orientada a objetos com Java: uma introdução prática usando o BlueJ. 4. ed. São Paulo, SP: Pearson Prentice Hall, 2009. xxii, 455 p. ISBN 9788576051879.
  • 32. 19/03/2024 Programação Orientada a Objetos 32 Referências • BORATTI, I. C. Programação orientada a objetos em Java. Florianópolis: Visual Books, 2007. 310 p. ISBN 978857502199-6. • CARDOSO, C. Orientação a objetos na prática: aprendendo orientação a objetos com Java. Rio de Janeiro: Ciência Moderna, 2006. 175 p. ISBN 8573935383. • HORSTMANN, C. S.; CORNELL, G. Core Java. 8. ed. São Paulo, SP: Pearson, 2010. 400 p. ISBN 9788576053576. • LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento iterativo. 3. ed. Porto Alegre: Bookman, 2007. 695 p. ISBN 85-363-0358-1.
  • 33. 19/03/2024 Programação Orientada a Objetos 33 Obrigado pela sua Atenção!!!
  • 34. 19/03/2024 Programação Orientada a Objetos 34 Sanando Dúvidas!!!