Buscar

Programação Orientada a Objetos

Prévia do material em texto

E-Book - Apostila
4-Organizandoe protegendoo código (DL)
E-Book - Apostila
Esse arquivoé uma versão estática. Para melhor experiência, acesse esse conteúdo pela m ídia interativa.
E-Book - Apostila
rga
rotege
cédigo
E aí, está preparado para esta nova unidade? Elavaiseruma aventura pelo mundo daorientaçãoa
objetos. Vejaa Figura 1, ela deve servir de base para tudo que está para acontecer.
FIGURA1 - Dois Cédigos
ELABORAÇÃO DO AUTOR, 2020.
2 - 12
E-Book - Apostila
Agora, vamos iniciar, vamos explorar conceitos indispensáveis para seu progresso: classese
objetos. Vamos entender como sãodefinidos, como sãousados, como interagem entre sie como
podemos interagir com eles. Para isso, vamos estudar os vários aspectos desse paradigmae como
implementá-los utilizando uma linguagem de alto nível.
Quer daruma espiada nos itens só para teruma ideia?
• Atributose métodos;
• Membros de instânciae de classe modificadores thise static;
• Alta coesãoe baixo acoplamento;
• Encapsulamento;
• Modificadores de acesso;
• Métodos de acessoe modificadores;
• Construtores.
Classese objetos
Para desenvolver um programa de computador em alguma linguagem orientadaa objetos,é
necessário criar um modelo que descreve as partes de interesse do mundo real. Essa descrição dá
origem ao que alguns autores chamam deminimundo. Porexemplo, um sistema acadêmico
poderia envolver alunos, professores, disciplinas etc. Um sistema usado por um banco poderia
envolver clientes, contas, produtos financeiros como empréstimos, investimentos, entre outros.
Uma vez detectadas as partes de interesse do mundo real, cabe ao programador descrevê-las de
modo quepossam serutilizadas posteriormente. Na orientaçãoa objetos, esses modelos são
conhecidos como classes.A partir desses modeloso programador pode construir objetos, os
quais, por sua vez, interagem entre sia fim de fazer com que o sistema funcione.
Reflexão
“Cada macaco no seugalho!”. Jonas ouviu essa frase ao longo de todaa sua vidae nunca
a compreendeu muito bem. Com o passar do tempo, começoua estudar programaçãoe a
entendero conceito de encapsulamento dentro de programação orientadaa objetos. Em
um primeiro momento eradifícil entendero impacto real que restringir diferentes partes
do código teria em suas soluções. Porém, quando começoua desenvolver programas mais
complexose a trabalhar em equipe, compreendeua necessidade de criar restrições de
acessos em atributose métodos, além de disponibilizar acessos de forma controlada,
onde uma classe não enxergaa maioria das implementações da outra.
3-12
E-Book - Apostila
Vamos trabalhar conceitos de programação orientadaa objetos, como encapsulamento,
para desenvolver soluções tão complexas quanto as de Jonas?É a hora de deixar 'cada
macaco no seugalho' dentro da sua solução!
Ao final deste conteúdo, você será capaz de:
• Diferenciar tipos de métodose aplicabilidade através de diferentes níveis de
acesso;
• Constituir classese objetos que utilizem construtores em sua estrutura;
^ Implementar soluções com encapsulamento bem aplicado.
4 - 12
undefined
E-Book - Apostila
Uma classeé uma mera descrição. Nesses exemplos, uma casa propriamente dita (concreta) ou
um carro propriamente dito (concreto) são objetos construídosa partir de suas descrições, ou
seja, suas classes.
Atributos
Cada classe descreve as características (atributos) de seus objetos, que por sua vez definem seu
estado.
undefined
Variáveis de instânciae variáveis de classe
Quando criamos uma classe, definimos suas características por meio de seus atributos, também
chamados variáveis de instância. Comoo próprio nome revela, cada objeto pode terum valor
diferente para cada um desses atributos.
Em determinados modelos, pode serinteressante definir alguma característica comuma todas as
instâncias daquela classe, isso significa que ao mudaro valor dessa característica em um objeto
membro automaticamente mudao valor para todos os objetos membros da classe. Nesse caso,
temos uma variável de classe. Para declarar uma variável de classe, acrescenta-sea palavra-chave
static.
Estudo Guiado
Qualquer objeto pode fazer referênciaa si mesmo.A linguagem
Java utilizaa palavra-chave this. Quer saber mais? Veja as páginas
252a 254.
5-12
Cl1que no linke leiao livro
E-Book - Apostila
DEITEL, P.; DEITEL, H.J ava - Como Programar. 10.ed. São Paulo: Pearson Education do Brasil, 2017.
Métodos
Asclasses também descrevem os comportamentos de seus objetos que são implementados por
métodos. Os exemplosa seguir podem deixaro conceito mais claro.
• Mesmo quecarro seja algo inanimado, outros objetos podem interagir com ele,
fazendo com que eleacelere, vireà esquerda, dê seta, estacione etc. Esses são
alguns comportamentos possíveis de um carro.
• Uma casa tambémé inanimada. Porém, outros objetos podem interagir com ela
fazendo com que seja fechada uma de suas portas, seja aberta uma janela etc.
Também podemos fazer uma casa falar ou dormir, caso elapertençaa um jogo (um
tanto criativo). Tudo depende do contexto (o minimundo) de interesse.
• Um ser humanoé capaz de falar, dormir, estudar, namorar, piscar os olhos,
escrever, entre muitas outras coisas. Cada uma dessas atividadesé um de seus
possíveis comportamentos.
Resumindo:o estado de um objetoé descrito por um conjunto de atributose seus
comportamentos sãoimplementados pormétodos, que operam sobreo estado de um objeto
e sãoo mecanismo primário de comunicação entre eles. Quando desejamos instruir um objeto
a realizar determinada tarefa, enviamos uma mensagema eleouchamamos um método
sobre ele, essas duas expressões são sinônimas.
Estudo Guiado
6-12
https://plataforma.bvirtual.com.br/Acervo/Publicacao/39590
E-Book - Apostila
Assim como podemos tervariáveis de classe, podemos termétodos
de classe. Para invocarmos esses métodos, nãoé necessário
instanciarmos um objeto da classe. Veja como utilizar esse recurso
em Java, nas páginas 160e 161.
DEITEL, P.; DE IT EL, H. J ava - Como Programar. 10.ed. Sáo Pau lo: Pearson Education do Brasil, 2017.
Princípios da alta coesãoe baixo acoplamento
O princípio conhecido como alta coesão define que uma classe ten ha propósitoú nico, uma ú nica
razão de ser, que resolva um ú nico problema.
Já baixo acoplamento indica que duas classes que interagem entre si devem saber poucos detalhes
de implementação uma da outra,o que quer dizer que, se uma tiver sua implementação alterada,a
outra pode continuar funcionando sem precisar ser alterada também.
Existem vários recursos das linguagens que permitem implementar esses princípios.
Encapsulamentoe modificadores de acesso
Na programação orientadaa objetos,o encapsuiamento refere-se ao agrupamento dos atributos
com os métodos que operam sobre eles, ou seja,à restrição de acesso direto aos elementos da
classe. lsso mantém osdadose o código protegidos contra interferências externas.O
encapsulamentoé implementado utilizando-se os modificadores de acesso tanto para atributos
quanto para métodos. Normalmente asvariáveis de instância são marcadas como modificador de
acesso private. Ele indica que aquela variável somente pode seracessada pelos métodos da classe
em que foi declarada.A Tabela1 mostra os quatro níveis de acesso possíveise quem pode acessar
cada nível.
Níveis de acesso
7 - 12
https://plataforma.bvirtual.com.br/Acervo/Publicacao/39590
modificadores
private
default
protected
public
E LABORAÇAO DO AUTOR,2020.
classe
sim
sim
sim
sim
Estudo Guiado
E-Book - Apostila
pacote
não
sim
Sim
sim
subclasses
não
não
sim
sim
mundo
não
não
não
sim
Ficou curioso(a) sobre pacotes? Quer saber mais? Veja as páginas
71a 73 deste livro!
HOR ST MAN N, C.; CORNEL, G.CoreJ ava, Vol. I: Funda mentos, 8. ed. São Paulo: Pearson Prentice
H all, 2010.
Acessoa uma informação
8-12
https://plataforma.bvirtual.com.br/Acervo/Publicacao/1238
ELABORAÇÃO DO AUTOR, 2020.
E-Book - Apostila
Para permitir que as classes clientes manipulem indiretamente suas variáveisde instâ ncia, uma
classe pode oferecer métodos de acessoe métodos modificadores.
Construtores
Quando inicializamos um objeto, dizemos que estamos construindo esse objeto da classe envolvida
na instrução. lssoé feito por um bloco denominado construtor.
9 - 12
E-Book - Apostila
Podemos utilizar um construtor padrão da classe, que o compilador nos entrega gratuitamente.
Esse construtor zera todas as variáveis da classe, seja qual forseu tipo:
• 0 para valores numéricos;
• false para boolenas;
• null para referências.
Porém, por meio da escrita de um construtor personalizado, podemos construir um objeto
realizandoa atribuição de valores às variáveis de instância.
Então agora você deve estar se perguntando...
FIGURA3 - Dois Cédigos
ELABORA$ÃO DOAUTOR,2020.
Neste caso, estamos utilizandoo recurso da sobrecarga, que consiste em passar diferentes
conjuntos de parâmetros para um bloco, seja ele um construtor ou um método.
Estudo Guiado
ATENÇÃO
Podemos termais que uma sobrecarga tanto de um construtor quanto de um método.
R o sta nile seism rlefinirJ ns \/ú rins rnniii ntns ne na rémetrns rliferentes Fsses rnniii ntns
10-12
E-Book - Apostila
Diferenciar os tipos de métodos, sua construção, níveis de acesso, além de construir classes que
utilizem construtoresé - sem dúvida - um desafio. Ainda assim, para implementar soluções que
apliquem adequadamente osconceitos de encapsulamento, dominar alguns tópicos estudadosé
essencial. Apesar dos desafios, estudar adequadamentea programação orientadaa objetos trará
benefícios enormese será um diferencial na formação de um programador. Para isso, estudamos:
Refe i
11-12
https://plataforma.bvirtual.com.br/Acervo/Publicacao/39590
e .
I I
E-Book - Apostila
DEITEL, P.; DEITEL, H. Java - Como Programar. 10.ed. São Paulo: Pearson Education do Brasil, 2017.
HORSTMANN,C.; CORNEL, G.Core Java, Vol. I: Fundamentos. 8. ed. São Paulo: Pearson Prentice
Hall, 2010.
12-12

Continue navegando