[Música] Olá pequeno gafanhota seja bem-vindo a mais uma aula do seu curso de programação orientada objeto com Java meu nome é Gustavo Guanabara eu sou o seu professor e agora nós chegamos a aula 15b e se você viu a aula 15 a você sabe do que se trata a gente viu a última aula essa última aula Ela vai tratar sobre o exercício é a finalização do exercício que a gente começou lá na aula 14 Então essa aula é uma aula de exercícios é a terceira parte então nós temos aqui a aula 09 aula 14 e
aula 15 que são S aulas exclusivamente de exercícios e são aulas patrocinadas pelo sistema educando de ensino e se você viu a aula 15 a você sabe o que que tá melhorando né a gente tá pegando o exercício que a gente fez lá na aula 14 onde a gente preparou lá as classes de gafanhoto e vídeo então nós temos aqui esse diagrama que tá aparecendo aqui do lado ó nós temos uma interface que se chama ações de vídeo e eu tenho a classe vídeo que implementa essa interface temos também a classe pessoa e nós temos
a classe gafanhoto que herda de pessoa gafanhoto é uma pessoa que assiste vídeo e nós vimos na aula 14 que nessa aula a gente ia fazer uma ligação entre essas duas classes e é exatamente o que nós vamos fazer agora então nós temos a ligação aqui nós vamos fazer com que um vídeo seja assistido seja visualizado por um gafanhoto Então nós vamos criar a classe visualização que tá aqui embaixo ela tem os atributos espectador e filme sendo que espectador é um gafanhoto e filme é um vídeo então nós temos aqui a relação de agregação entre
eles e nós temos o método avaliar o único o método da visualização é avaliar e essa avaliação pode ser feita de três maneiras então nós temos uma sobrecarga do método avaliar e eu não preciso nem dizer se você não fez se você não assistiu a aula 14b e não fez o exercício você não vai conseguir fazer essa 15b isso porque ela é o complemento da aula e se você tá com tudo ok já tá com seu código digitado abre o seu Net bein e vamos trabalhar então nós já estamos aqui dentro do Net Bin aqui
do lado está o diagrama de classes que a gente vai implementar então nós temos ali do lado a visualização Então nós vamos ter que ter a classe visualização nesse caso aqui ó apenas recordando eu declarei três instâncias de vídeo e declarei duas instâncias de gafanhoto já que todas elas vão ser do mesmo tipo eu utilizei vetores aqui então nós temos a interface ações de vídeo nós temos a classe vídeo que implementa ações de vídeo nós temos a classe pessoa com os atributos e seus métodos e nós temos a classe gafanhoto que extends essa classe pessoa
então nós vamos aqui na no projeto do YouTube e vamos rodar e ele vai lá ó nós temos três vídeos e dois gafanhotos eu fiz essa essa parte aqui de baixo colocar essa parte de baixo como comentário só pra gente ficar com exercício limpo isso ó foi construído com sucesso já tenho três vídeos e dois gafanhotos Então nós vamos clicar em projetos e vamos no projeto do YouTube dentro do pacote projeto YouTube botão direito novo Classe Java nós vamos ter a classe visualização não coloque acento não ficou visualizar cal com o v maiúsculo finalizar nós
temos aqui a classe iação que não vai herdar nada então vou ficar exatamente dessa maneira se você perceber aqui no diagrama do lado Nós temos duas relações de agregação e essa agregação é feita da seguinte maneira nós vamos criar um Private nós vamos ter espectador e nós vamos ter o filme aqui tá dando erro porque eu não disse o tipo né o espectador vai ser do tipo gafanhoto e o filme vai ser do tipo vídeo nós temos os dois atributos espectador e filme Vamos criar aqui inserir código Vamos criar um Construtor para espectador e filme
vou passar os dois e também vou criar aqui os getters e setters inserir código get resetter Vamos criar todos vou criar também o t string aqui inserir código T string beleza Tá dessa forma aqui eu não mexi em nenhum código que foi gerado aqui pelo netbeans a gente vai personalizar já já isso porque você vai começar a ver que ele vai começar a ter problemas vamos criar uma visualização aqui para começar vamos aqui no projeto YouTube Vamos criar uma visualização Vamos criar aqui visualização V é um New visualização se eu fizer assim ele vai dar
erro porque a visualização tem que informar duas coisas então eu vou fazer com que o Jubileu que na visualização eu vou informar primeiro o gafanhoto depois o vídeo então o gafanhoto aqui que vai assistir é o Jubileu então é g0 e tenho que passar também o vídeo vai assistir a aula 10 de HTML5 que é V2 ae tá dizendo aqui que V já foi utilizado chamar de V então eu tenho aqui vis que é uma visualização de g0 com V2 então g0 que é Jubileu tá assistindo o V2 Se eu mandar fazer com que vis
P string vamos executar e ele não me mostrou absolutamente nada por que o vi não não me mostrou uma string Ah tá tem que mandar escrever eu vou botar aqui ó o v. string para ele me mostrar quem está vendo Qual filme então vou apertar aqui ele vai mostrar que a minha visualização é um espectador que é o Jubileu e ele tá assistindo a aula que é a aula 10 de HTML5 exatamente o que eu tinha feito aqui ó em visualização ele tá me mostrando o espectador e o filme Vol tô exatamente com o Ti
string que eu queria viu como funciona a agregação eu consegui ligar uma Instância de um objeto como um atributo então eu tenho o atributo espectador e o atributo filme e eles são instâncias de outras classes isso é agregação agora nós vamos fazer uma pequena alteração aqui no no meu Construtor dá uma olhada Então eu tenho aqui a visualização o gafanhoto e vídeo um gafanhoto ele tem um atributo chamado Total assistido isso é quantos vídeos ele assistiu Então tem que fazer mais um né então eu vou fazer com que this P espectador P set Total assistido
vai ser o total assistido que ele tem agora mais um Então vai ser o total que ele tem agora é 10.on espectador pon get Total assistido mais um isso é eu mudei o est assistido do espectador eu também vou ter que dar mais um View pro vídeo não é isso o espectador viu um vídeo e o vídeo foi assistido mais uma vez Então eu tenho a propriedade view do vídeo dá uma olhada aqui dentro do vídeo eu tenho também a visualização então eu tenho views começa com zero então eu vou ter que quando começar uma
visualização eu vou fazer com que this pon filme pon set views vai ser o View atual this. filme.get viws mais mais uma visualização do vídeo Beleza então olha só quando eu executar o programa automaticamente eu tenho com que o vídeo total de aula C ele já tem uma visualização o gafanhoto Jubileu ele já tem o total de assistido um aqui ele já assistiu um vídeo também se eu fizer por exemplo aqui logo em seguida visualização eu vou chamar o visz aqui vou criar um vetor um vetor de cinco posições sei lá vis zero é uma
visualização mandar mostrar V zero aqui vou fazer com que vis um vis um é uma nova visualização se você perceber eu vou fazer o seguinte aqui eu vou fazer com que o mesmo gafanhoto veja outro vídeo certo então o mesmo gafanhoto que é o Jubileu tá vendo v1 que agora é a aula 12 de PHP e vou fazer a mesma coisa para que o vis 0 P string Então olha só Ó presta atenção aqui ó o Jubileu assistiu um vídeo quando ele assistiu o de HTML5 quando ele assistiu o segundo vídeo que foi o PHP
o PHP tem um View e o d HTML tem um View o Jubileu aqui ó ele vai ter dois total assistido isso porque agora ele assistiu o segundo vídeo Beleza então quando eu começo a visualização eu dou um View pro vídeo e dou um total assistido pro aluno isso automaticamente sem eu precisar dar comando nenhum agora vamos fazer a avaliação isso porque um gafanhoto na hora que ele avaliar depois da visualização do vídeo ele pode avaliar de três maneiras diferentes pra gente utilizar sobrecarga aqui vamos pra visualização e vamos criar três métodos avaliar então vou
ter lá Public void avaliar sem parâmetro nenhum tenho também Public void avaliar com uma nota inteira e eu tenho também Public void avaliar uma porcentagem que é real note aqui o seguinte ó eu tenho três métodos com o mesmo nome e com assinaturas diferentes dentro da mesma classe isso é sobrecarga se eu simplesmente chamar o avaliar eu vou fazer o seguinte vou fazer com que p filme Ponto 7 avaliação é c é se eu não chamar nada a minha avaliação vai ser C se eu passar uma nota vai ser filme ponto s avaliação vai ser
a nota se eu passar uma porcentagem eu vou fazer o seguinte se essa porcentagem for menor ou igual se o cara assistiu sei lá menos de 20% do do vídeo vou criar um parâmetro interno aqui tot tot começa com zero se a porcentagem for abaixo de 20 20 ou menos o meu tot vai vale TR senão se a porcentagem for acima de 20 mais abaixo de 50 o total é 5 senão se a porcentagem for acima de 50 e abaixo de 90 o total é 8 senão is é se for acima de 90 né 91
ou mais vamos fazer o total valer 10 certo então botei notas Aqui de acordo com uma porcentagem e aqui no final eu faço com que this pon filme ponto sete avaliação receba o total Beleza então olha aqui ó eu tenho três formas de avaliar Eu Posso avaliar sem parâmetro se eu avaliar sem parâmetro ele já vai dar nota CCO se eu passar uma nota ele vai dar essa nota e se eu assistir porcentagem do vídeo is é se eu não ass se eu assistir menos de 20% vou dar nota 3 se eu assistir até 50%
vai ser uma avaliação 5 e se for abaixo de 90 8 e se for acima de 90 avaliação 10 Beleza então a avaliação do vídeo vai ser de acordo com isso eu vou fazer o seguinte também eu vou mudar o método S avaliação lá do vídeo para que quando ele receber uma avaliação nova ele calcule a média das avaliações né Eu quero que ele fique com a média Então vamos lá aqui no meu vídeo eu vou procurar o s avaliação tá aqui ó o s avaliação ele vai receber uma avaliação né que vai ser um
valor de 1 até 10 o que eu vou fazer se que o seguinte ó vou criar uma variável inteira nova avaliação chamar de Nova a minha nova avaliação vai ser o seguinte minha nova avaliação vai ser igual a avaliação antiga dis ponto avaliação mais a avaliação que eu passei né que é essa daqui de cima tá até amarelinha tudo isso entre parênteses dividido pelo total de visualizações vai ser l ponto views aqui não vai poder ser inteiro né vai ter que ser real então a nova vai ser isso daqui vou deixar inteiro quero só a
parte inteira disso aqui certo Então essa daqui seria minha nova avaliação então a avaliação aqui seria nova então a avaliação do meu vídeo vai ser a média de avaliações que ele tem Então sempre que eu modificar avaliação você vê ó eu não considero o padrão né esse o padrão foi o que eu já tinha colocado né o padrão era alguma coisa parecida com esse aqui e eu fiz uma alteração Sem problema nenhum eu posso calcular a média de acordo com a quantidade de visualizações de um vídeo que eu acabei de colocar vamos salvar aqui e
vamos fazer o seguinte ó quando eu fiz a visualização ó o Jubileu avaliou o vídeo e o Jubileu vê o outro vídeo ISS é esse daqui é jubileu assiste HTML né que é V2 esse daqui é Jubileu assiste o v1 v1 é PP assiste PP Então tá lá vou fazer aqui também com que o Jubileu avalie então vou fazer aqui minha visualização zero ponto avaliar quando eu boto avaliar ele me dá três opções se eu simplesmente botar avaliar ele vai considerar nota C pra avaliação aqui embaixo eu posso fazer com que o Jubileu na aula
de PHP o v z0 ponto avaliar vou avaliar Aqui de acordo com a porcentagem ele assistiu 35% do vídeo 35% do vídeo vou chamar lá um valor float certo então ele assistiu 35% e ele vai dar uma nova média vamos salvar 35% ele estaria nessa faixa aqui acima de 20 e abaixo de 50 então eu receberia nota 5 vou dar nota 8 para ele calma aí vamos colocar aqui ele assistiu 87% certo então tá lá quando eu executar ele vai me mostrar lá ó o Jubileu a primeira avaliação foi o Jubileu ele tem uma visualização
no vídeo e a avaliação dele é seis isso porque ele tava com a avaliação um e logo em seguida ele fez a outra modificação e aqui eu fiz o Jubileu assistir outro vídeo eu tenho a modificação de acordo com a minha classe esse avaliar aqui foi o avaliar sem parâmetro esse avaliar aqui é o avaliar com um parâmetro flutuante Eu posso também criar outra visualização e avaliar com um número inteiro E aí conseguiu entender eu espero que você tenha compreendido como funciona um exemplo orientado a objeto como um todo e você agora chega ao próximo
passo que que você vai fazer quando terminar esse curso a minha recomendação é que você comece a aprimorar a sua programação orientada objeto principalmente declarando utilizando criando um pequeno sistema que acesse por exemplo um banco de dados isso porque existem classes na linguagem Java que vão permitir que usando a orientação objeto você faça acesso a banco de dados Esse é o seu próximo passo Essa é sua principal tarefa a partir de agora que você terminou o seu curso de programação orientado a objeto Então é isso pequeno gafanhoto eu me despeço por aqui outro curso já
está sendo montado e eu quero lhe fazer o convite o próximo curso só vai conseguir sair se você for nosso apoiador então faça sua colaboração entra aqui no site que tá aparecendo na sua tela e torne-se um colaborador do projeto novos cursos só sairão com a ajuda de todos vocês então é isso me despeço por aqui um forte abraço treine pratique sempre e até a [Música] próxima n