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

Aula de Programação Orientada a Objetos - Java, Notas de aula de Programação para Java

Aula de Programação Orientada a Objetos usando Java

Tipologia: Notas de aula

2019

Compartilhado em 23/10/2019

silvanooliveira
silvanooliveira 🇧🇷

4.7

(3)

8 documentos

1 / 26

Toggle sidebar

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

Não perca as partes importantes!

bg1
POO -Java
Herança
prof.silvano.oliveira@gmail.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a

Pré-visualização parcial do texto

Baixe Aula de Programação Orientada a Objetos - Java e outras Notas de aula em PDF para Programação para Java, somente na Docsity!

POO - Java

Herança

prof.silvano.oliveira@gmail.com

Conceitos

A Programação Orientada a Objetos

conhecida como POO, é onde o

desenvolvedor tem de começar a pensar fora

da caixa, a imaginar uma forma aonde será

preciso recorrer ao mundo real para o

desenvolvimento das aplicações, pois hoje

toda a programação em Java é orientada a

objetos.

Abstração

É utilizada para a definição de entidades do

mundo real. Sendo onde são criadas as

classes. Essas entidades são consideradas

tudo que é real, tendo como consideração as

suas características e ações.

Classe

Uma classe é reconhecida quando tem a

palavra reservada “class”. Na Listagem 1 é

mostrada a classe “Conta” com seus atributos

(características) e métodos (ações). Para

saber mais sobre métodos acesse o link:

http://www.devmedia.com.br/trabalhando-

com-metodos-em-java/25917.

Encapsulamento

É a técnica utilizada para esconder uma ideia, ou seja, não expor detalhes internos para o usuário, tornando partes do sistema mais independentes possível. Por exemplo, quando um controle remoto estraga, apenas é trocado ou consertado o controle e não a televisão inteira. Nesse exemplo do controle remoto, acontece a forma clássica de encapsulamento, pois quando o usuário muda de canal não se sabe que programação acontece entre a televisão e o controle para efetuar tal ação.

Encapsulamento

Em um processo de encapsulamento os atributos das classes são do tipo private. Para acessar esses tipos de modificadores, é necessário criar métodos setters e getters. Por entendimento os métodos setters servem para alterar a informação de uma propriedade de um objeto. E os métodos getters para retornar o valor dessa propriedade.

Listagem 2 - Encapsulamento da classe Funcionario

public class Funcionario { private double salario; private String nome; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public void setSalario(double salario) { this.salario = salario; } public double getSalario() { return salario; } }

Colocando em prática

Na Listagem 3, é instanciado a classe

“Funcionario”, onde a variável de referência é

usada para invocar os métodos setters ,

informando algum dado. Ao final, é usado os

métodos getters dentro do “ System.out.println ”

para gerar a saída dos resultados que foram

passados nos métodos setters.

Herança

Na Programação Orientada a Objetos o significado de herança tem o mesmo significado para o mundo real. Assim como um filho pode herdar alguma característica do pai, na Orientação a Objetos é permitido que uma classe herde atributos e métodos da outra, tendo apenas uma restrição para a herança. Os modificadores de acessos das classes, métodos e atributos só podem estar com visibilidade public e protected para que sejam herdados.

Herança

Uma das grandes vantagens de usar o

recurso da herança é na reutilização do

código. Esse reaproveitamento pode ser

acionado quando se identifica que o atributo

ou método de uma classe será igual para as

outras. Para efetuar uma herança de uma

classe é utilizada a palavra reservada

chamada extends.

Herança

Para saber se estamos aplicando a herança corretamente, realiza-se o teste “ É UM ”. Esse teste simples ajuda a detectar se a subclasse pode herdar a superclasse.  Por exemplo , na Figura 3 , está mostrando que a classe “Gerente” herda da classe “Funcionário”, se for aplicado o teste “ É UM ” nota-se que o teste é aprovado, pois o “Gerente” também “ É UM ” Funcionário.

Herança

Na Listagem 4, existe a superclasse

“Funcionario” que servirá de base para as

subclasses usarem seus atributos ou

métodos.

Herança

No exemplo da Listagem 5, podemos ver que

a classe “Gerente” está herdando da classe

“Funcionario” através da palavra reservada

extends. Acontece também a mudança do

comportamento de herança, a partir do

método “calculaBonificacao” que é

sobrescrito, pois entende-se que o valor da

classe “Gerente” é diferente para as demais.

Listagem 5: Subclasse Gerente. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 public class Gerente extends Funcionario { private String usuario; private String senha; public String getUsuario() { return usuario; } public void setUsuario(String usuario) { this.usuario = usuario; } public String getSenha() { return senha; } public void setSenha(String senha) { this.senha = senha; } public double calculaBonificacao(){ return this.getSalario() * 0.6 + 100; } }