Baixe o app para aproveitar ainda mais
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
Compartilhar