Olá seja bem-vindo à aula pessoal hoje nós vamos trabalhar com um conceito importante da programação orientada ajet que são os modificadores de visibilidade eu vou explicar com mais detalhes para que que servem né esses modificadores de visibilidade só que primeiro Vamos abrir aqui o o nosso arquivo a nossa classe caneta C2 pont champ HT dox po então aqui eu tenho a classe caneta eu vou abrir esse arquivo aqui da classe caneta só para relembrarmos os atributos os métodos que temos aqui pessoal o ideal na hora de montar ou criar uma classe o ideal é planejar
antes não sair codando codificando e sim planejar isso antes Lembrando que a classe é o molde como que será esse molde o ideal é planejá-lo então eu vou abrir aqui o Word tem vários softwares na internet que permitem fazer isso mas eu vou fazer no Word mesmo acredito que vocês já tiveram aula de uml que é a linguagem de modelagem unificada o ML no ML é muito utilizado o diagrama de classe na programação orientado ao objeto esse diagrama de classe ele também é muito utilizado para representar uma classe seus atributos e seus métodos além dos
modificadores de visibilidade que é o que nós vamos trabalhar aqui hoje então eu vou pegar aqui por exemplo Como que é o nome da nossa Classe A nossa classe é a classe caneta perfeito só vou criar uma tabelinha aqui com três colunas aí Então a nossa classe isso daqui é como se fosse um diagrama de classe Então eu tenho aqui a classe caneta por convenção normalmente o nome da classe ele é com letra maiúscula normalmente nos diagramas o nome da classe é para aparecer com letra maiúscula vou aumentar essa área aqui um pouquinho e essa
aqui de baixo também por pessoal Quando nós vamos criar uma classe nós normalmente fazemos dessa forma primeiro antes de programar Nós criamos um diagrama de classe colocando aqui o nome da classe classe caneta Quais são os atributos que a classe caneta possui tem vou copiar aqui modelo modelo ponta marca e tampada vou desfazer aqui a capitalização automática para ele voltar pra letra minúsculas porque eu quero que os atributos fiquem com letras minúsculas então eu tenho aqui a classe caneta e aqui as características dessa caneta os atributos dessa caneta e aqui embaixo os métodos o que
a caneta faz as funções da caneta nós temos aqui a função rscar rscar tampar e destampar Então pessoal usando esse simples diagrama eu consigo representar uma classe observem que tanto os atributos quanto os métodos começam com letr minúsculas então se você tem um diagrama desses com várias classes Por exemplo quando você olha para um retângulo desse o retângulo na no diagrama de classe representa a classe Então eu tenho aqui a classe caneta os atributos e os métodos o que que diferencia os atributos dos métodos os parênteses ambos começam com letra minúscula mas os métodos as
funções T os parênteses então visualmente eu bato o olho eu consigo compreender que é uma classe Quais são os atributos e quais são os métodos então o ideal é primeiro planejar fazer isso no papel no caderno ou via software tem programas que permitem a criação desses diagramas agora nós vamos entrar no conceito na definição do que eu quero mostrar para vocês hoje que são os modificadores de visibilidade o que que são esses modificadores de visibilidade eles servem para para indicar o nível de acesso aos componentes internos de uma classe Quais são os componentes internos de
uma classe atributos e métodos Então os modificadores de visibilidade eles permitem eles indicam qual que é o nível de acesso aos componentes um determinado componente da classe pode ser do tipo público do tipo privado ou do tipo protegido e nós vamos representar com esses símbolos usando essa simbologia o atributo ou método que for público nós iremos colocar o sinal de mais o que for privado o sinal de menos e o que for protegido hash Qual que é a diferença entre esses modificadores quando euo por exemplo como público o que que acontece quando ele é público
pesso a classe atual e todas as outras classes podem acessar esse atributo ou método agora se esse atributo ou método for do tipo privado somente a classe atual pode acessar ver esse atributo a métod E se ele for protegido somente a classe atual e todas as suas subclasses mais paraa frente nós vamos entender melhor esse conceito de subclasses eu vou mostrar para vocês o conceito a definição nós vamos fazer na prática também a parte de herança então eu tenho lá uma classe mãe e vou ter uma classe filha a classe filha vai herdar características da
mãe parte de herança que é um dos pilares também aí da progamação Orient a objetos só que isso mais prente eu quero que vocês entend que fique M Claro agora é que umbo ou método pode públic privado ou protegido Ah mas qual que é a diferen aqui ó do privado eivado exclusivo acesso dele é exclusivo de uma classe fazendo uma uma analogia aí com pessoas Eu por exemplo o meu celular só eu posso acessar o acesso é privado o protegido é quando eu posso acessar e meus filhos também podem por exemplo e o público o
público é quando qualquer um pode ter acesso Então nós vamos definir aqui no diagrama de classe os modificadores de visibilidade o modelo da caneta ele vai ser o quê maisin o que que é o maisin público a cor vai ser privada a ponta privada a marca protegida tampada pública então quando eu faço isso eu estou definindo aqui os modificadores de visibilidade de cada atributo ou de cada método o método rsar eu quero que ele seja um método o tampar eu quero que ele seja privado e o destampar Também é lógico pessoal que eu tô colocando
aqui de forma aleatória por didática se fôssemos estivéssemos programando um sistema algo real nós teríamos que analisar cada um desses atributos e métodos e ver qual deve ser público qual deve ser privado protegido enfim só que aí por exemplo aqui ó vamos pegar eu defini aqui por exemplo o modelo o modelo é público eu posso alterar o modelo aqui eu criei um objeto C1 modelo não estou alterando eu poderia fazer isso daqui C1 setin é modelo Bic modelo Bic eu posso fazer isso posso fazer essa atribuição eu posso acessar o modelo posso por porque ele
é público posso fazer isso perfeito agora a cor eu estou alterando o atributo da cor estou aqui ó do objeto C1 a cor é azul eu posso fazer isso posso fazer isso se o atributo cor é privado eu não posso pessoal não vai dar certo quando o modificador de visibilidade é privado eu não consigo fazer essa atribuição direta dessa forma desse jeito que eu estou fazendo não consigo consigo fazer essa atribuição de uma outra forma só que aí nós vamos ter que usar os métodos acessores e métodos modificadores para fazer essa alteração Então quero que
vocês entendam isso se o atributo for privado eu não consigo alterar ele dessa forma se for público sim consigo fazer isso vamos pegar aqui marca marca eu não alterei em lugar nenhum então vamos colocar por exemplo objeto C1 setinha marca marca igual a Faber Castel então eu posso fazer isso marca hash é o qu protegido eu posso fazer alterar a marca dessa forma diretamente não posso por qu porque a marca é um atributo protegido então eu não consigo fazer isso eu só vou conseguir fazer iso se o atributo for público nesse caso aqui o modelo
o tampada e o método rscar eu vou conseguir chamar dessa forma eu consigo alterar o modelo por quê Porque o modelo é público consigo alterar o tampada consigo por quê Porque o tampada é um atributo público e chamar o método rscar dessa forma consigo por quê Porque ele é um método público agora todos os atributos ou métodos que forem privado ou protegido eu não consigo chamar ou atribuir um valor dessa forma como nosso fizemos aqui nós precisamos utilizar um método acessor ou um método modificador isso nós vamos ver na na próxima aula então na próxima
aula só para não não me alongar muito nós vamos fazer na prática nós vamos definir vocês vão ver que é é bem simples como que eu faço para definir um um atributo como público privado protegido é bem simples aqui no código E aí nós vamos usar também os métodos acessores e modificadores Tá bom então quero que vocês entendam nessa aula O objetivo dessa aula é é esse mostrar para vocês que vocês podem utilizar o diagrama de classe para representar uma classe seus atributos e métodos e também indicar os modificadores de visibilidade que são três público
privado e protegido público a classe atual e todas as outras classes tê acesso privado somente a classe atual e o protegido somente a classe atual e as suas subclasses a classe mãe e as classes filhas o privado e protegido nós não conseguimos alterar diretamente só o público o privado e o protegido nós precisamos utilizar os acessores e modificadores para manipulos mas isso nós vamos ver na aula que vem tá bom esse é o conceito que eu queria deixar para vocês na aula de hoje e até a próxima aula um abraço