Olá pessoas Então deixa eu te fazer uma pergunta tu já reprovou em Java cara tu tu sabe alguma coisa de Java e eu tô te fazendo essa pergunta porque hoje eu quero falar de Java com vocês filha da [ __ ] rapaz e você vai aprender java com uma pessoa que não reprovou uma vez em Java na faculdade eu reprovei duas vezes em Java na faculdade por o bicho é bom mesmo pô o bicho é diferenciada duas foc em vezes então eu sei todas as perguntas idiotas que passam na tua mente todas as dificuldades que
tu pode ter e todo esse conteúdo aqui eu vou D ele completamente bêbado então vai lá na cozinha pega o teu Danone que eu já tô com o meu aqui que eu vou tentar passar alguns conceitos básicos para você iniciar em Java se você já tem alguns conhecimentos eu vou entrar em tópicos mais intermediários e mais pro final do vídeo eu vou tentar entrar em alguns tópicos avançados o único objetivo desse vídeo não é você se tornar um profissional em Java é você não repetir duas vezes na faculdade em Java que nem eu repeti Se
você repetir só uma eu tô feliz abre a tua ideia favorita e bora codar em Java porque esse aqui não vai ser um tutorial típico de Java que você vê na Internet isso aqui é Java das ruas [ __ ] pi que cerveja não é gostosa vi então vamos lá primeira coisa que tu precisa saber em Java que Java tu tem dois tipos diferentes de dados Você tem os dados não primitivos e os dados primitivos a gente vai começar pelos dados primitivos que eles são os mais fáceis de entender P [ __ ] S um
dado primitivo um dado primitivo por exemplo é um tipo de dado que você consegue colocar numa var ável para armazenar por exemplo sua idade por exemplo você pode chegar aqui botar o tipo de dado que é o Wi e você pode armazenar a tua idade Sei lá eu tenho 32 anos Isso é o suficiente para tu entender de Java e codar em Java Então se tu vier aqui em cima nesse botãozinho de play aqui e tentar dar Run no teu código você simplesmente tomou no cu porque você caiu na primeira regra do Java padrinho a
regra do Java é a seguinte Java é uma linguagem feita de um corno para outro corno corno gosta de coisa pontuda e sabe o que que com coisa pontuda ponto e vírgula então todo final de trecho de código você tem que incrementar ele um ponto e vírgula você tem que falar pro pro Java pra sintaxe do Java que aquele trecho de código acabou colocando ponto e vírgula senão ele não vai conseguir compilar senão ele não vai conseguir entender se aquele trecho acabou se ele tem que ler a linha seguinte e você vai ter erros como
esse e eu sei que isso é contraintuitivo ainda mais se você vier de linguagens um pouco mais simplistas tipo Python tipo JavaScript onde você simplesmente vai colocando qualquer bosta lá e a linguagem trata de entender o que você tá tentando fazer mas no Java ela é fortemente tipada como você pode ver você sempre tem que colocar o tipo da variável por exemplo a sintaxe dela também é bastante chatinha nesses tipos de de erros então sempre no final de cada trecho de código coloca um ponto e vírgula essa é a primeira regra do Java e se
você der Play de novo aqui se você der Build de novo no seu no seu arquivo nenhuma mensagem de erro porque tá tudo certo outros tipos primitivos que você tem por exemplo você tem tipo Double que você vai poder armazenar um número fracionário se você quiser um número quebrado a gente pode botar a altura e essa altura vai ser 1,83 isso é o suficiente ah você tem outros tipos primitivos que você pode procurar no Google porque isso aqui não é um tutorial de Java é só para você tirar um seis ou um sete na faculdade
a gente tem shar que você pode armazenar uma letra por exemplo letra a a Eita por exemplo letra A não número um o shar ele vai armazenar apenas uma letra e sempre dentro de aspas simples você você tem por exemplo long e essa foi a primeira dúvida que eu sempre tive quando eu tava aprendendo Java principalmente na faculdade qual era a diferença de um long para um Wind o long ele também armazena números você pode colocar aqui números grandes Só que essa é a grande diferença do long Você tem que sempre terminar o long colocando
um l no final Então faz o l Mas qual é a diferença prática de um long para um Win cara um Win ele armazena um número de até 2 bilhões e [ __ ] sei lá procura no Google e qualquer número acima desse número você tem que trabalhar com Long Deixa eu pesquisar aqui rapidinho e como eu sou um cara super culto super informado e quero trazer um conhecimento completamente preciso aqui para vocês eu tô te falando eu acabei de pesquisar aqui o w ele armazena no máximo esse número qualquer coisa acima disso se a
gente trocar esse S por um oito por exemplo a gente já vai receber uma mensagem de erro falando que a interger não consegue segurar um valor tão grande quanto esse então é sempre indicado você chegar aqui e passar esse valor para Elen e agora você pode estar se perguntando é uma pergunta super válida que eu sempre sempre me fiz por [ __ ] eu não boto um long tudo e [ __ ] o Win eu boto a minha idade como long E aí a gente entra em um outro conceito bacana de Java que eu vou
pincelar aqui mas eu vou falar mais a fundo também lá na área de membros que é memória cara você por exemplo com end você vai ter que alocar 32 bits tá ligado já num Double se eu não me engano são 16 bits já não long são 16 bits o shar ele vai armazenar se eu não me engano são 16 bits também e quando a gente tá tratando de de long o que acontece é que o long ele aloca 64 bits cara e como você pode ver nem sempre a sua solução mais simples vai ser a
mais performática eu vou entrar mais a fundo sobre memória de Java como isso funciona garbage Collection qual é a diferença por exemplo de um stack para um hiap como é que isso funciona no Java mais a fundo lá dentro da área de membros eu não vou conseguir resumir isso aqui para vocês porque eu tenho que abordar outros tópicos mas dentro da área de membros eu já tô separando um vídeo completo falando só disso mas a primeira coisa que você tem que saber é isso o alocamento da tua memória cara isela agora vamos para aquela segunda
parte papai aquela parte gostosa tipos não primitivos na tela para você e que [ __ ] são tipos não primitivos fiasqueira você pode tá me perguntando o tipo não primitivo mais famoso que você tem é um string por exemplo você tem Array você tem outros tipos não primitivos mas um string é mais muito mais fácil de você entender um string você pode armazenar por exemplo o nome cara e eu posso chegar aqui e colocar qualquer nome dentro de aspas duplas por exemplo Naruto uso Mac e isso vai ser o suficiente para armazenar o Nossa string
E aí agora é outra pergunta de [ __ ] que você tá se fazendo qual é a diferença de um tipo primitivo para um não primitivo e agora eu vou trazer a resposta para você cara um tipo não primitivo ele também pode ser um objeto que pode receber atributos cara que caralhos é um atributo você pode estar se perguntando um atributo é exatamente isso aqui eu posso pegar o nome que é que é o nome dessa variável e simplesmente quando eu aperto ponto eu recebo aqui uma lista de infinitos atributos que eu posso trabalhar por
exemplo eu posso colocar ah toer Case que vai transformar toda essa string aqui em um texto de caixa alta você pode colocar T lower case para colocar tudo em texto de caixa baixa ou então você pode chegar aqui simplesmente colocar por exemplo sh at que você vai aqui encontrar por exemplo a letra no índice por exemplo o índice três e aqui é outra coisa em Java ou em qualquer outra linguagem de programação o índice sempre começa com zero Então se a gente começar aqui pela letra O índice dessa string aqui zero vai ser o n
1 2 3 então aqui a gente retornaria a letra U você pode fazer várias coisas o que você não conseguiria fazer com um tipo primitivo cara Então essa é a maior diferença que você tem de um tipo primitivo para um tipo não primitivo e você também pode por exemplo se a gente chegar aqui e botar isso aqui tudo to upper Case você pode simplesmente pegar a alteração que você tá fazendo nessa variável e alocar isso dentro de uma outra variável cara então você pode chegar aqui e colocar uma string do tipo nome uppercase e aqui
V outra coisa escolha tu ide eu estou completamente alcoolizado e o intellij sempre me sugere coisas novas você saber o seu shortcuts da sua ide trabalhar com a sua ideia de um jeito mais performático vai te ajudar muito no teu dia a dia cara e não importa se você tá codando num pedaço de papel no vs code no intelij no Eclipse não tem ideia melhor nem pior você pode codar em qualquer coisa com tanto que você saiba shortcuts por exemplo se você quiser printar isso aqui pro usuário você pode chegar aqui e colocar um System
do Out do print e passar aqui como parâmetro o nome da variável que tu quer no caso nome teer case e isso aqui simplesmente quando a gente der Run aqui ele vai aparecer aqui pro nosso usuário Naruto usum maac e tá tudo em uppercase porque a gente tá acessando essa variável aqui de nome nome to upper Case que tá recebendo esse atributo aqui que vai transformar toda a string em upper case e agora você pode estar se perguntando Porcão mas aí é foso pr [ __ ] eu tô ficando digitando system.out p println o print
para para colocar aqui então nome sim cara você tem que fazer isso você também pode colocar aqui em aspas por exemplo eh mostrando para o o usuário você pode fazer isso sim e e é bem verboso por mas também o que eu tô falando para você e a gente pode usar aqui por exemplo um print Alien para quebrar a linha e fazer isso daqui para uma linha de baixo como você pode ver agora tá em duas linhas diferentes porque o LN Ele sempre vai quebrar uma linha Mas uma pergunta [ __ ] que eu sempre
me fiz [ __ ] é verboso assim mesmo cara o Java é verboso é mas a gente tem muita abstração em Java tem muito boiler Plate que você com Framework tipo Spring por exemplo você consegue abstrair com a sua ide você consegue abstrair então por isso que eu tô te falando para escolher uma ideia legal não importa qual seja mas aprende o shortcut da sua ideia porque a gente precisa digitar Realmente isso tudo aqui para sair pro usuário Mas se a gente quiser a gente pode chegar aqui e colocar solto e simplesmente a mesma coisa
que a gente estava fazendo digitando aparece pra gente e aqui a gente só passa o nome aerc isso daqui é mais do que o suficiente para você saber que cara às vezes é melhor você entender mais a sua Idea tá ligado você saber assim tax da tua linguagem é bom mas entender a tua ide vai te dar muito mais performance tá ligado vai te dar muito mais velocidade no teu trabalho na hora de codar mas isso aqui é tudo que você precisa saber nesse momento para tirar um seis na prova sobre tipos de dados no
Java então agora bora para outro tópico porque esse daqui já tá chato PR [ __ ] e vamos para outro tópico para [ __ ] que pariu vou quebrar a mesa da minha mher então vamos para outro tópico básico de Java pra gente avançar um pouquinho mais essa tá gelada e a gente estava falando L método que tu podia colocar dentro dos teus objetos e tudo mais para fazer alterações Mas tu pode também criar o teu próprio método cara você pode fazer um Private Private static void porque vai ser um método que não vai precisar
retornar nada Private static void e a gente pode chamar aqui mostrar meu nome esse vai ser o nome do nosso método o que que ele vai fazer simplesmente o que diz o nome dele ele vai mostrar o nosso nome então a gente chega aqui e coloca meu nome Fas e como é que a gente vai chamar esse método dentro da nossa classe principal a gente simplesmente chega aqui e coloca o nome do nosso método cara o nome o nome do nosso método da nossa função é mostrar meu nome então simplesmente simples como assim se a
gente der build aqui na nossa aplicação ele já mostrou aqui meu nome é fiasco uma coisa que você tem que aprender cara é que você pode pegar tua função pegar teu método chame do [ __ ] de você quiser e passa parâmetros para ela o que [ __ ] é um parâmetro fiasc parâmetro é simplesmente uma uma peculiaridade que só aquela função vai ter ou então algo que ela vai precisar ter para funcionar direito então você por exemplo pode chegar aqui e não e eu não preciso talvez hard codar isso daqui eu posso simplesmente chegar
aqui e passar o parâmetro nome para ela só que como nossas variáveis elas também vão precisar de um tipo Então a gente vai passar aqui do tipo string E se a gente chegar aqui a gente não precisa colocar fiasco aqui de novo a gente pode chegar aqui a gente dá um espaço e a gente vai fazer alguma coisa que a gente chama de concatenação que é simplesmente botar a o sinal de adição e o o tipo o nome do parâmetro que a gente passou que no caso foi nome e com isso se a gente der
Run de novo vai a gente vai ter um erro porque a gente tomou no cu porque sempre que você passa um parâmetro e você faz a chamada dessa desse novo método desse novo atributo cara dessa nova função você tem que passar esse parâmetro aqui cara então para você não tomar no seu bumbum você chega aqui nome e aqui agora ele tá esperando o o parâmetro nome né do tipo string então a gente dá duas aspas duplas e passa aqui um nome pô fiasc é nome de fiasco isso é suficiente pra gente buildar de novo isso
daqui e a gente vê aqui embaixo que agora a gente tá passando o nosso nome como parâmetro e Cara isso é muito básico de qualquer linguagem de programação você vai ver isso daí você pode passar múltiplos parâmetros Você pode passar um parâmetro do tipo ent por exemplo para passar idade e aqui de novo ele vai esperar um parâmetro no caso você separa eles por vírgula tanto aqui quanto aqui e a gente passa simplesmente A Nossa Idade 32 anos só que se você perceber se você der build nada vai acontecer porque a gente não tá chamando
o nosso parâmetro aqui a gente não tá interpolando para interpolar ele você faz um outro um outro sinal de adição a gente chega aqui dá um espaço e escreve e minha idade é espaço sinal de edição para interpolar para concatenar e aqui a gente passa o nome da do nosso parâmetro idade se a gente der Play de novo vai e Cara outra coisa isso é muito simples como que que você vai repetir esse TR de código você pode fazer isso com várias maneiras a gente chama de laço de repetição procura no Google que tu gosto
faça meu irmão isso aqui é só para tu passar na faculdade mas o que tu vai mais usar no dia a dia principalmente em prova no teu dia a dia de trabalho vai ser o for você pode usar o for it vamos lá a gente copia esse trecho de código aqui e o que a gente vai est dizendo nesse trecho de código aqui é que é que enquanto o I for menor por exemplo do que 10 a gente vai repetir esse trecho de código e a gente começa o i como zero e a cada loop
ele vai incrementar um Então esse trecho de código aqui vai vai repetir 10 vezes até é ele simplesmente chegar a 10 e parar Então se a gente chegar aqui der Play simplesmente que aconteceu é que o nosso trecho de código foi repetido você pode fazer isso com while com for com for it Não livo procure no Google que mais te apetece e faça e agora esse daqui é o mais do que o suficiente para você saber coisas básicas de Java agora vamos para um nível mais intermediário um nível mais gostoso orientação objeto papai aquele que
[ __ ] todo mundo aquele que se você assistir 10 vídeos de 10 horas cada você não vai entender porque você precisa de prática em orientação objeto mas o teu pai vai pegar mais uma cerveja e vai trazer isso aqui para você eu vou tentar mastigar isso aqui de um jeitinho que vai caber na sua boca orientação objeto orientação objeto papai é aquilo que me reprovou duas vezes eu nunca entendi orientação objeto orientação objeto Eu só fui entender mais a fundo com Dart orientação objeto não é algo específico do Java é algo que você tem
em várias linguagens o cotlin por exemplo e tem orientação objeto o próprio Java Você tem o Dart Você tem o Swift com orientação objeto e você tem outras linguagens aí Aí você procura no Google que eu já tô bêbado demais eu vou falar besteira mas o que você precisa saber sobre orientação objeto é que você não vai entender nesse vídeo e nem em nenhum vídeo que você vê por aí no YouTube porque orientação objeto é algo que você só entende com a prática praticando aplicando orientação objeto e tem vários tópicos dentro de orientação objeto que
eu vou pincelar aqui mas eu vou chegar mais a fundo com eles num num vídeo que eu vou largar lá na área de membros Então se inscreve no canal porque o cara aqui tá bebendo e nenhuma empresa vai querer mais Patrocinar o meu canal então se você tá aprendendo java com um cara bêbado vai lá na área de membros que [ __ ] você vai ajudar a Patrocinar o projeto Então vamos lá pra gente criar um objeto A primeira coisa que você tem que saber é o que [ __ ] Us é um objeto um
objeto é o que o próprio nome diz é um objeto é algo que a gente vai manipular depois assim como a gente tinha a nossa string lá que depois a gente consegir colocar métodos lá ali dentro a gente tem nosso objeto que a gente também vai botar métodos a gente vai poder criar nossos próprios métodos para chamarem para chamar eles dentro do nosso objeto mas como é que caralhos a gente cria um objeto fiasc vamos lá e para criar um objeto A gente vai começar com uma classe A classe Ninja padrinho e todo Ninja vai
precisar de um nome cara a gente vai criar um ninja a gente vai colocar um nome a gente também vai precisar de uma aldeia para esse Ninja que também vai ser do tipo string Aldeia e a gente vai precisar também de umid esse ní que a gente vai botar aqui idade se você for perceber os valores não estão sendo passados sabe por por que disso por que [ __ ] os valores não estão sendo passados porque eu não tô criando meu objeto ainda a gente tá trabalhando com classes cara e a classe O que que
é uma classe fiasão A classe é só um molde pra gente fazer um objeto e a gente vai entender isso mais a fundo então a gente não precisa passar os valores aqui tá ligado a gente só precisa setar o que a gente vai usar nos Então a gente vai usar um nome uma aldeia e uma idade para criar um novo Ninja E aí se a gente voltar lá pra nossa classe principal como é que a gente vai criar um novo Ninja fão tu me pergunta e para criar um novo Ninja é muito fácil é mais
fácil ainda se tu beber mais um pouco bebe [ __ ] me caguei inteiro vamos embora e para criar o novo Ninja vai ser simples a gente vai passar aqui o ninja e o ninja a gente tem que passar um nome desse novo ninja o ninja vai ser por exemplo Naruto deixa eu passar aqui Naruto e o Naruto vai ser igual ao novo Ninja ao New Ninja esse daqui é o boiler Plate que você precisa para criar um novo objeto sempre que você for criar um novo objeto você vai criar em cima desse boiler Plate
aqui usando primeiro o nome da tua classe depois a como é que vai ser chamado esse objeto isso daqui vai receber um novo um New E aí vai o nome da classe de novo referenciando como método o que vai acontecer agora diferente do que tá acontecendo antes é que a gente vai poder acessar os atributos dessa classe cara então se a gente chegar aqui e colocar Naruto P nome a gente vai poder setar um nome para ele por exemplo e colocar Naruto Us umac e a gente pode fazer isso com idade com a aldeia com
tudo a gente pode criar um objeto personalizado Mas qual é a diferença disso pro que a gente já tava fazendo a diferença é que a gente pode criar simplesmente um novo objeto com as mesmas características cara a gente pode chegar aqui e colocar um criar um novo objeto colocando um objeto ninja com o nome sask sask e isso vai ser igual a um objeto Ninja e simples como assim a gente pode chegar agora e botar sask P nome e a gente vai poder setar um nome diferente para esse objeto sask o tira o tira a
gente vai poder setar um nome objeto tá ligado E simples como assim a gente tem dois objetos distintos completamente distintos cara a gente tem o objeto um aqui que é o Naruto a gente pode botar aqui objeto um e a gente tem o objeto dois aqui que é o sask cara e sabe uma coisa legal que a gente pode fazer agora que a gente já tem um objeto sabe criar um objeto A gente pode criar uma um atributo próprio para esse objeto cara e já que a gente tá falando de ninjas e de Naruto e
s que a gente pode por exemplo criar um atributo chamado Sharingan por exemplo então a gente pode chegar aqui botar um Public void Ah um Public void charingan charingan ativado e esse Sharingan isso daqui simplesmente vai mostrar pro usuário Sharingan ativado e se a gente voltar aqui pra nossa classe principal a gente consegue chegar agora por exemplo no sask e botar um ponto e a gente vai ter acesso a esse novo método método Sharingan ativado e se a gente colocar esse método Sharingan ativado e tentar dar Run na nossa aplicação a gente vai ver que
o Sharingan tá ativado só que aí a gente tem um problema cara porque se a gente chegar agora no narutão e chegar aqui no Naruto e botar Sharingan ativado ele também vai ter acesso a esse método e aí você vai ver que deixa eu só tirar aqui para você ver você vai ver que o o Sharingan também ativando Naruto E aí tá um erro cara porque você tem objetos distintos que deveriam ter características distintas então você não pode deixar por exemplo Naruto acessar o xaringan devia ser um método específico um atributo específico uma função específica
apenas pros usuários por exemplo pros uas por exemplo então a gente poderia arquitetur o nosso código para fazer apenas os uas terem acesso ao Sharingan se você fosse o zumak você não teria acesso E aí agora a gente vai entrar em outro tópico de orientação objeto que se chama herança papai bota na tela Então vamos pensar a gente tá com esse problema de que a gente criou dois objetos mas a gente quer que um objeto apenas tenha acesso àquela aquela específica parte tá ligado que só um um dos nossos Ninjas consiga mandar um Sharingan por
exemplo ativar um Sharingan que que a gente pode fazer com isso a gente tem uma coisa na orientação objeto que se chama herança e o que que é herança cara herança é simplesmente você criar uma nova classe que vai ter acesso a atributos de outra classe Então como a gente pode fazer isso a gente pode fazer por exemplo uma classe utira que vai ter acesso ao Sharingan mas ela também vai ter acesso a todos os atributos e tudo que tá acontecendo na classe Ninja então apenas o nosso objeto que foi criado na classe utira vai
ter acesso ao xaringan e também a tudo que tá acontecendo na classe nía Então vamos lá vamos vamos já que a gente tá falando de ninja já que a gente tá falando de tudo de utira de Uzumaki vamos chegar aqui no nosso código cara vamos is pra código que código é muito mais fácil de tu entender tá ligado de novo o que eu falei para você não tenta entender orientação objeto Nunca tente entender orientação objeto tenta aplicar orientação objeto tenta levar isso pro teu código que só assim você vai saber eu tô tentando te dar
um exemplo que eu gosto do mundo que eu gosto se eu for te dar esse exemplo com número você não entender [ __ ] nenhuma que Ero que o meu professor na faculdade fazia e por isso eu reprovei então eu tô tentando te dar esse exemplo com coisas que eu gosto por exemplo Naruto eu sei sobre Ninjas eu sei sobre tudo sobre o mundo Naruto então isso para mim é muito entendível mas tenta levar isso para para uma coisa que tu goste tá ligado e aplica isso num código que aí você vai entender e lembrando
isso aqui é só um nível intermediário de Java a gente vai avançando muito mais e lá na área de membros esse tópico sobre orientação objeto sobre herança que a gente vai entrar agora eu vou aplicar isso de uma forma muito mais didática e muito mais profunda porque isso aqui é só superfície que a gente tá arranhando Mas vamos lá vamos resolver esse problema cara se a gente voltar aqui pro nosso código a gente tá vendo que a nossa classe Ninja ela tem um nome ela tem uma aldeia ela tem umidade por exemplo e ela também
tem um método aqui que coloca Sharingan ativado e aí a gente tem o problema porque todo nía que a gente criar nessa classe aqui ele vai poder ativar um charingan e não é o que eu quero Então vamos para resolver esse daqui vamos fazer o simples vamos chegar aqui vamos criar uma nova classe e a gente pode chamar essa classe de o tira o tira o tira se a gente chegar aqui criar uma nova classe chamado o tira o que que vai acontecer deixa eu só dar um zoom aqui a gente vai ter uma classe
em branco Beleza a gente tá a gente tem uma classe em branco mas o que que a gente pode fazer a gente pode voltar aqui na nossa classe Ninja a gente pode retirar esse Sharingan ativado aqui a gente pode retirar isso do nosso código e deixar só no nosso ninja com nome Alde e idade e a gente pode voltar aqui na nossa classe utira e simplesmente passar isso daqui passar o Sharingan ativado a gente vai ter erros porque lá na nossa classe principal a gente tá utilizando isso mas a gente já vai resolver então se
a gente por exemplo passar o nosso charingan ativado O que que a gente vai est dizendo que só os objetos criados na nossa classe utira eles vão ter acesso a isso vão ter acesso a ativar o Sharingan então a gente pode chegar aqui por exemplo lá na nossa classe principal e aqui no nosso objeto dois que é o sask a gente pode deletar a gente deleta isso tudo aqui cara e a gente também tem que deletar aqui no Naruto porque se você for ver agora o Naruto não tem mais acesso a isso não tem mais
acesso a aquele atributo Ele só tem acesso ao nome ao D e idade então a gente pode deletar isso daqui e aqui no noss objeto dois a gente vai criar um outro objeto que é o sask um ninja ele também vai ser um ninja mas ele vai ser um ninja do tipo o tira a gente vai criar um Utirra um novo Utirra que vai se chamar sask e esse vai ser do tipo novo Utirra e isso vai ser o suficiente pra gente criar o novo o nosso Ninja só que se a gente chegar aqui e
colocar um tira e der um ponto A gente vai ver que a gente não tem acesso a muit das coisas que a gente tem que a gente tinha lá quando a gente estava criando um ninja e por Por que que isso acontece Cara isso acontece porque a gente precisa entrar num conceito que se chama herança e o que que é herança cara para mim te resumir isso seria mais ou menos como todo o tira é um ninja Mas nem todo Ninja é um utira Você concorda comigo que todo Ninja que existe ele é um ninja
beleza Mas nem todo Ninja que existe ele é um utira Então a gente vai querer que os nossos utir eles acessem esses atributos aqui de nome de Aldeia de idade Então o que a gente pode fazer é chegar aqui na nossa classe utira e botar um extend e essa classe utira vai estender a classe Ninja e eu tô dizendo pro Java que esse utira aqui ele é um utira ele vai ter acesso a tudo que eu colocar aqui se eu quiser colocar por exemplo um string Ah um string sei lá é nível do xaringan eu
posso colocar aqui nível do charingan é um é um charingan dois se eu quiser eu colocar eu coloco um xaringan aquele com duas bolin beleza ele vai ter acesso a isso aquii mas como eu tô estendendo ele pra classe Ninja ele também vai ter acesso a tudo que eu colocar na classe Ninja Então se a gente voltar aqui pros u tias pro tira que eu criei no caso sask se eu chegar aqui colocar o sask ponto e eu vou ver que eu vou ter acesso ao nome a aldeia a idade ao Sharingan ativado ao método
Sharingan ativado e ao método também nível do Sharingan então se eu chegar aqui e colocar um sask p nome e passar aqui o nome de sasque o tira eu tenho certeza que eu criei um novo objeto do tipo o tira mas que também acessa atributos do tipo Ninja entendeu isso é muito legal e esse conceito de orientação objeto se chama herança isso é herança é você ter uma classe que acessa outra uma classe que é filha de outra classe mas agora vem uma parada que eu nunca entendi eu fui entender anos depois os otirras eles
só podem ser Ninjas eles não podem ser ninjas e também estender eh por exemplo eh deixa eu ver ambu eles não não podem eles não podem fazer isso se você for ver vai dar um erro então cada classe ela só pode ter uma mãe ou um pai por exemplo é filho único Então isso é uma coisa que você tem que saber mas eu posso estender isso quantas vezes eu quiser então eu tenho uma classe mãe que é um ninja e essa classe mãe Ninja tem um filho que se chama o Tira e eu posso ter
infinitos filhos eu posso ter por exemplo uma classe zumak que eu já vou criar que estende também a classe Ninja eu vou ter acesso a todo os objetos a todas as características que o ninja tem mas eu também posso ter características únicas que são por exemplo uma característica dos uas que são chakra infinito entendeu então isso é um conceito bem legal que tu tem que entender de orientação objeto que é herança Isso se chama herança Então se a gente chegar aqui por exemplo na nossa classe principal e a gente setou um nome se a gente
chegar aqui e colocar sask pon Sharingan ativado a gente vai ativar o Sharingan Então se a gente Ativar o xaringan a gente vai ver aqui Sharingan ativado e se eu apagar isso daqui e tentar fazer essa mesma coisa com Naruto Naruto pon xaringan ativado o Aide já me mostra que eu não tenho acesso a esse método eu não consigo ativar o Sharingan sendo Naruto por quê Porque o Naruto eu criei ele como um ninja E aí vem a coisa a gente pode chegar aqui por exemplo e criar um uma nova Classe A gente pode criar
uma classe chamada uzac Cara o que que vai ter na classe zumak eu não sei o que que vai ter na classe zumak mas a gente pode chegar aqui por exemplo e copiar isso aqui só pra gente salvar algum tempo perdão copiar isso aqui só para salvar algum tempo e colocar aqui na classe zomac que a gente vai colocar e um método chamado deixa eu ver um método chamado chakra infinito e eu posso chegar aqui e colocar é um uzum Então você tem chakra infinito então se você chegar aqui e colocar isso cara você vai
ver que a gente agora criou um novo método pro pro Naruto que apenas os usum tem acesso que é o chakra infinito e a gente pode criar aqui também por exemplo um bullan falando tem Biju a gente pode colocar aqui um tem biju que vai ser é apenas True or false tá ligado E se a gente chegar aqui e deletar isso tudo aqui porque o Naruto tá criado como Ninja e se a gente criar um Naruto agora como realmente um zumak a gente criar um novo objeto chamado zumak um zumak vai ser do nome Naruto
e esse Naruto vai ser um novo o zumak um novo us zumak a gente pode chegar aqui por exemplo só que a gente tem que fazer uma coisa aqui lembra que a gente fez lá com os zuu tias a gente Estendeu pra classe Ninja a gente tem que fazer a mesma coisa aqui a gente pode estender a classe zumak pra classe Ninja E aí a gente vai ter acesso ao nome idade e Aldeia então a gente pode chegar aqui lá na nossa classe principal e colocar um agora colocar um Naruto ponto nome e setar esse
nome do Naruto como Naruto Uzumaki Cara isso daí é suficiente e como e se a gente quiser ativar a classe se tem ou não Por exemplo uma Biju a gente pode chegar aqui Naruto ponto tem biju que é uma pergunta e ele vai est esperando um True or false porque ele é um buller e tem biju true sim o Naruto tem biju mas se eu tentar acessar por exemplo a classe biju aqui com sask se a gente chegar aqui sask p tem biju eu não vou conseguir acessar isso daqui porque o sask não tem acesso
a isso porque o sask foi criado com um objeto Tira e os objetos utira se a gente voltar aqui eles não TM essa essa característica única característica que a gente setou aqui foi o Sharingan ativado e o nível do Sharingan tá ligado e é isso isso daí é o que você precisa saber por exemplo sobre herança Esse é um tópico bastante complicado de herança a gente só tá raspando a superfície e de novo eu vou falar lá na área de membros com mais profundidade sobre isso e tu vai tirar um seis na prova se tu
qu souber sobre isso daí mas uma coisa que tu precisa saber por exemplo é cara e se a gente quiser por exemplo mostrar um poder diferente para cada objeto Será que a gente precisaria escrever na mão um por um ou a gente teria um jeito de fazer isso e a resposta séria é que cara a gente tem um jeito de fazer isso e é um outro Pilar da orientação objeto que se chama polimorfismo cara que é um [ __ ] tópico que eu não entendi De jeito nenhum quando eu tava aprendendo essa merda e polimorfismo
nada mais é do que você usar a mesmo trecho de código para trabalhar com dois objetos ou mais ao mesmo tempo então a gente pode mandar mensagens diferentes com uma linha de código para vários objetos ao mesmo tempo mensagens personalizadas e a gente vai fazer isso usando umem conceito da programação orientada ao objeto que se chama polimorfismo papai vamos embora bota na tela Vamos trabalhar com polimorfismo e encapsulamento que são os outros dois pilares da orientação objeto que são extremamente chat de entender mas eu vou tentar resumir tudo aqui para você e lá na H
de membros eu vou trazer isso de uma forma mais explicada vamos lá cara então a gente tá com um problema aqui a gente tem o nossos dois objetos um é o Naruto o outro é o sask eles tem características especiais por exemplo o sash ele por ser umra ele consegue ativar o Sharingan o Naruto por ser um uzum ele consegue ter uma um acesso a chakara mais maior mas eu quero algo que todos os ninjas podem fazer porque tanto a classe Uzumaki quanto a classe Naruto elas são filhas da mesma classe que é a classe
Ninja a classe mãe então uma coisa que tu pode fazer por exemplo para treinar polimorfismo que é o que a gente vai abordar agora é por exemplo chegar aqui na nossa classe mãe na nossa classe mãe que é a classe Ninja e criar um método um método para ela que todos os ninjas vão poder ter acesso por exemplo a gente vai criar um Public vo e ataque base e esse ataque base vai ser um ataque que todo Ninja tem acesso a gente vai simplesmente falar que não sei por exemplo eu sou um ninja e taquei
uma kunai simples todos os ninjas podem tacar uma Kunai tu concorda comigo tanto um tira quanto um Uzumaki ele é um ninja ele pode tá com cunai Então se chegar aqui no sask por exemplo e botar um ataque base você vai ver que o sask tem acesso a esse ataque se a gente der Run aqui na nossa aplicação sask eu sou um ninja tá aqui é um AK Kunai se a gente chegar aqui no Naruto fizer exatamente a mesma coisa Naruto pon atque base o Naruto também tá com Kunai cara porque o Naruto é um
ninja o s que é um ninja os Zu tias são ninja os Uzumaki são ninja beleza mas e se eu quiser botar alguma coisa específica Só que os Uzumaki conseguem fazer um ataque específico que só os uas conseguem fazer e aí a gente entra num conceito bacana da da programação orientada a objeto que é o polimorfismo cara e o polimorfismo ele funciona da seguinte maneira você vai economizar muito código trabalhando com a mesma linha de código para diferentes objetos que vão ter diferentes atributos Então você por exemplo pode chegar aqui e colocar por exemplo aqui
no Ninja não mas se você chegar aqui na classe utira por exemplo se chegar na classe Ninja copiar isso daqui o ataque base não vou retirar eu só vou copiar então a gente ainda tem copiei e Colei a gente ainda tem na classe Ninja o nosso ataque base todos os ninjas podem atacar a gente concorda agora uma coisa que a gente também concorda é que um ninja por exemplo que é o tira ele pode atacar uma cunai de de um elemento do elemento fogo e o ninja US zumak por exemplo ele não pode tacar uma
cunai do elemento fogo ele tá com uma cuna do elemento vento mas como é que a gente vai dizer pro Java cara que por exemplo a gente quer sobrescrever isso daqui e a classe otira ela consegue também tacar uma Kunai normal mas ela consegue tacar uma Kunai de Fogo porque ela é um otirra como é que a gente vai fazer isso e a gente tem uma anotação no Java que a gente chama de override tá ligado e o que que esse override vai fazer ele vai simplesmente dizer pro Java cara eu sei que eu sou
um ninja eu sei que eu sei tacar uma munai mas eu por ser um Luti eu taco munai de fogo e Paul no se seu cu e isso é polimorfismo E se a gente der um Play agora falando aqui o ataque base a gente vai ver aqui embaixo que sim os dois estão tacando Kunai Mas se a gente der rerun aqui a gente vai ver que aqui embaixo sask o ataque base do SAS é uma munai do elemento fogo e isso é polimorfismo e se tu pegar o mesmo conceito e a gente copiar isso daqui
override e levar isso daqui por exemplo pro pra classe usum maac e a gente trocar isso daqui eu sou um ninja e taquei uma kunai de ah a gente vai ver que o Naruto agora em vez dele tacar uma Kunai normal ele vai est dizendo pro Java cara eu sei tacar uma Kunai normal mas por eu se um zumak eu também taco munai de ar e aí você vê o conceito de polimorf me explicado de uma maneira simples cara que simplesmente a mesma linha de código o ataque base ele tem diferentes atributos para diferentes objetos
e você pode brincar muito com isso cara de novo isso daqui não é um tutorial de indiano de Java é só um tutorial para você passar na tua faculdade aqueles conceitos básicos de Java que passa na tua cabeça tu nem percebe lá dentro da área de membros eu vou entrar muito mais a fundo sobre isso então você tem que saber que esses conceitos são conceitos que cara você pode cada vez mais se aprofundando nisso então por exemplo se a gente chegar aqui na classe utira Posso copiar isso daqui o base por exemplo e eu posso
colar aqui só que aí eu vou ter um erro porque eu não posso ter duas dois atributos com o mesmo nome por exemplo dois métodos com o mesmo nome eu poderia colocar aqui um ataque base dois mas eu quero que eles façam praticamente a mesma coisa então posso chegar aqui lembra que a gente estava falando de parâmetro eu posso chegar aqui e passar um parâmetro para ele se eu tiver por exemplo com uma com nível de chakra se eu tiver com nível de chakra E aí eu posso copiar isso daqui eu posso passar um parâmetro
do do nome nível de chakra que vai ser do tipo int então se eu chegar aqui eu posso fazer por exemplo eu posso fazer por exemplo aqui uma condição se o nível do meu chakra for maior do que dois eu simplesmente posso chegar aqui e falar eu M eu posso chegar aqui entre aspas duplas e falar Susano ativado porque o nível do meu chakra é maior do que dois se o nível do meu chakra for algo menor dali do que por exemplo se o nível do meu chakra for menor do que um eu posso chegar
e falar que eh eu posso chegar e printar que eu só eu só consegui ativar o charingan e qualquer coisa diferente disso eu posso chegar e falar eu tô sem chára Cara isso daqui é o suficiente por exemplo pra gente passar um parâmetro lá a gente vai ter E aí agora você pode ter se tando cara mas a gente tem a mesma o mesmo o mesmo atributo o mesmo a mesma função como é que com o mesmo nome até como é que o Java vai saber qual usar quando eu tiver Chamando por exemplo um tira
e o Java vai saber isso cara na hora que você passar um parâmetro se você não passar parâmetro nenhum ele vai ativar justamente essa essa esse método aqui se você passar um parâmetro do tipo int ele vai utilizar esse método tudo aqui então se a gente quiser testar isso daqui a gente pode simplesmente copiar isso daqui colar de novo e a gente agora a gente pode chegar aqui e passar um dois e se a gente for ver o nível de chakra agora nosso é dois e se o nosso nível de chakra é dois eu tô
sem chakra por quê Porque aqui nos u tias eu falei que o nível de chakra tem que ser maior do que o dois para falar que o Suzano tá ativado como ele é menor do que dois ele tá o su o eu tô sem chakra então se eu passar aqui por exemplo três eu vou ter o Suzan ativado Susan tá ativado e então isso é polimorfismo cara isso daí é um jeito [ __ ] de você trabalhar com polimorfismo e um jeito simples de você entender polimorfismo mas de novo a gente tá arranhando a superfície
você tem mais jeitos mais mais elaborados de você trabalhar com polimorfismo Ainda mais se você trabalhar em aplicações reais sobre isso você pode por exemplo usar polimorfismo para trabalhar com aplicações de banco por exemplo níveis de autorização eles são usados como polimorfismo por exemplo você tem o mesmo objeto usuário que tem diferentes níveis de acesso dependendo do tipo de usuário que ele é isso é polimorfismo cara tudo que a gente tá aprendendo aqui com Naruto você pode usar na vida real tá ligado com aplicações da vida real e agora a gente vai entrar em um
outro conceito também que a gente usa bastante na vida real que é o encapsulamento papai e cara a última coisa que eu quero cobrir aqui para vocês seria encapsulamento falar um pouco sobre construtores e o que que vocês têm que saber mais de Java assim para você tirar o seis na prova porque é o objetivo desse vídeo e um outro Pilar que a gente tem na orientação objeto é o encapsulamento e o que [ __ ] é o encapsulamento fash cão [ __ ] encapsulamento cara é um jeito que a gente tem de blindar os
nossos objetos de por exemplo a gente fazer uma merda muito grande e eu vou te explicar isso aqui com código cara porque de novo não tente entender a orientação objeto tenta aplicar por enquanto a gente tem aqui nosso obje Dinho narutinho que ele é da Classe zumak A classe zumak também estende a classe Ninja como a gente já viu aqui a classe Ninja tem essas características de nome de Aldeia de idade a gente não tá usando idade nem Aldeia agora porque eu tô tentando só salvar algum tempo pra gente ir avançando mas lá na área
de membros eu vou tentar explicar isso aqui de uma maneira muito mais aprofundada tá ligado como é que a gente vai trabalhar encapsulamento aqui com o código que a gente tem cara vamos lá vamos pensar assim a a gente tem aqui a gente tá setando o nome do nosso usuário do nosso do nosso objeto por exemplo Naruto a gente tá fazendo aqui um Naruto P nome e esse nome aqui ele tá vindo lá da classe Ninja e a gente tá setando o o nome do Naruto como Naruto zumak e se a gente quisesse fazer o
mesmo por exemplo chegar aqui e tentasse setar o nome a idade por exemplo do Naruto a gente poderia passar aqui 16 anos sabe a idade do Naruto é 16 anos tá perfeito a gente tá usando idade usando nome só que [ __ ] e se a gente tiver o nosso código aqui por exemplo e tudo isso daqui tá Público aqui na nossa na nossa classe Ninja se você for ver todos esses aqui são atributos públicos sabe isso daqui então é implícito que isso daqui é público e não seria o ideal não é uma boa prática
e não seria o ideal da gente trabalhar por exemplo com essa forma pública o ideal seria sempre a gente encapsular por exemplo o nosso nome a nossa aldeia a nossa idade e qualquer outra característica que a gente tem aqui dentro dos nossos ninas para proteger por exemplo de um erro humano de eu chegar aqui por exemplo e botar Naruto zumak com Y por exemplo sei lá porque eu digitei errado e simplesmente ele vai alterar o nome do meu novo objeto ele vai criar um novo nome pro objeto não é isso que eu quero Então o
jeito da gente proteger é a gente encapsular e [ __ ] como é que a gente faz isso cara simples o encapsulamento você vai entender fazendo de novo então vamos lá a primeira coisa que a gente tem que fazer aqui vamos tentar começar a fazer isso com nome a gente por por enquanto como eu falei isso daqui tá sendo acessado publicamente o que a gente pode fazer isso daqui para evitar que isso aqui seja público seria setar aqui uma palavra reservada do Java que se chama Private e como o próprio nome diz ele vai deixar
esse trecho privado então é por isso que a gente recebe aqui duas mensagens de erros porque a gente tá setando dois nomes a Gente Tá acessando essa parte da nossa classe duas vezes lá na nossa classe principal a Gente Tá acessando aqui pro objeto Naruto e outra vez aqui pro objeto sask então a gente já recebe essa mensagem de erro aqui e como é que a gente vai consertar isso cara não tem como consertar isso se a gente setou a nossa classe lá como privada a gente não tem como acessar mais esse esse atributo a
gente não tem como setar o nosso nome e aí que entra o encapsulamento o encapsulamento a gente pode trabalhar com duas coisas que a gente chama de getters e setters que se você for trabalhar com Java cara você vai usar isso todos os dias da sua vida pro resto da sua vida e como é que funciona getters and setters para que que serve getters and setters e Que porcaria é um getters setters getters and setters são duas duas coisas diferentes tem os getters e tem os setters os getters você usa para mostrar pro usuário e
os setters Como o próprio nome diz você usa para setar o a característica por exemplo da tua do teu nome para setar o nome para colocar um nome você vai usar um Setter e para mostrar esse nome você vai usar um getter mas bora pro código que fica mais fácil cara ah o que que você pode fazer vamos vir aqui vou vir aqui aqui em cima o que que a gente pode fazer a gente aqui o nosso nome a nossa string nome e uma coisa que a gente pode fazer aqui só para começar seria criar
o nosso getter por exemplo getter Então a gente vai criar o nosso getter criar getter para mostrar para o usuário e a gente vai encapsular isso daqui como é que a gente vai encapsular essa nossa string nome a gente simplesmente vai chegar aqui e vai colocar um Public Deixa eu só dar um espaço aqui Public a gente vai passar o tipo da nossa variável Public string e a gente vai botar n nome só que aqui o própria ide já me mostra aqui uma já me sugere um nome para colocar aqui e é por convenção do
Java a gente colocar os nossos getters com o nome de get e o nome depois que a gente coloca na nossa variável Então se ali tava nome o a própria ideia já vai vai me sugerir pra gente juntar get nome se tiver por exemplo outra coisa tipo idade ele vai me sugerir para colocar get idade get tempo então é uma convenção do Java que você tem que prestar atenção e seguir obviamente e outra coisa que a gente vai fazer aqui o que que a gente vai fazer a gente tá tentando fazer um Gets aqui para
esse nome e a gente simplesmente vai retornar agora porque ele não é mais do tipo void ele é do tipo string então ele tem que retornar uma coisa alguma coisa ele tem que retornar uma string e a gente simplesmente vai retornar o nosso nome e simples assim o nosso get está feito e eu já vou te mostrar mostrar como é que a gente vai usar isso daqui mas agora eu vou te mostrar como que a gente faz um set Esse é o get para mostrar pro usuário já o set pra gente mostrar pro usuário o
Setter o Setter é isso aqui vamos botar aqui Vamos separar aqui Setter vamos lá setar setar o valor da variável e a gente vai encapsular agora de novo o nome então a gente tem que fazer isso duas vezes uma para encapsular como getter e outra como Setter Então a gente vai trabalhar isso daqui da seguinte maneira a gente vai criar de novo um método público só que dessa vez ele não vai ele não vai precisar retornar nada e a gente vai criar aqui um Public void porque ele não vai precisar retornar nada a gente vai
passar agora o nosso set que vai ser set nome a própria ide já me sugere um nome de eu colocar set nome por convenção só que aqui tem uma coisa diferente aqui dentro a gente vai passar como parâmetro o que a gente tá tentando setar que no caso é o nosso nome então a gente abre e fecha com shet e aqui a gente vai precisar passar do mesmo jeito que a gente passou ali só que aqui a gente não tá retornando nada então a gente vai colocar o nome vai ser igual a nome porque eu
vou setar que esse nome aqui vai ser igual ao nome que a gente tem aqui em cima mas você tá vendo que tá muito confuso a gente a gente passou um atributo nome a gente a gente tem nome aqui a gente tem nome aqui n nome aqui como é que o Java vai saber qual é qual qual tem que usar então uma coisa que você pode fazer é usar uma outra palavra reservada que chama D th i s se você botar this pon nome o Java vai saber que você tá se referenciando a Exatamente esse
daqui a essa variável aqui e simples assim a gente criou um getter e um Setter pro nosso nome e Cara tu pode estar me perguntando [ __ ] fiasão se eu tiver 300 300 coisas aqui se eu tiver aqui dentro por exemplo um int eh nível nível de de Missão por exemplo [ __ ] fão vou ter que criar também um getter um Setter para nível de Missão cara você vai criar se você tiver 300 atributos ali se você tiver sua sua classe for gigante Você vai precisar criar um getter e um Setter para cada
um isso é extremamente verboso mas aí entra uma coisa chamada abstração a gente tem jeitos mais fáceis de fazer isso que eu já vou ensinar tô te ensinando de jeito difícil Sei lá porquê só para você saber que ele existe mas tem jeitos mais fácil de fazer isso que eu já vou falar mas vamos lá a gente tem get un Setter pro nosso nome Mas a gente continua com a nossa mensagem de erro e se a gente voltar aqui a nossa mensagem de erro tá porque a gente tá usando duas vezes aqui o nosso nome
que agora tá privado Então se a gente excluir isso daqui o nosso erro vai embora só que agora como é que a gente vai usar o nosso getter Setter lembra que o getter é para mostrar pro usuário o Setter é para para mim colocar um valor nessa variável então Primeira coisa eu preciso colocar um valor nessa essa variável eu vou fazer a mesma coisa Naruto P nome só que dessa vez eu vou acessar não Naruto P nome eu vou acessar Naruto P7 nome porque eu quero setar um nome pro Naruto e diferente do que eu
tava fazendo antes eu não venho aqui boto sinal de igualdade e passo aqui o valor da minha variável não vai funcionar assim eu vou ter que passar praticamente com um parâmetro então uma coisa que eu posso fazer é simplesmente chegar aqui dentro das nossas dos nossos parênteses e colocar um Naruto e do mesmo jeito que a gente estava fazendo antes eu tô setando aqui o nome Naruto e [ __ ] como é que eu vou mostrar isso pro usuário cara para mostrar isso pro usuário é com o nosso getter então a gente chega aqui Naruto
pon ah get nome e simples assim a gente não precisa passar mais nada a gente com set a gente tá setando o nome e com get mostrando o nome então se eu quiser mostrar isso aqui pro usuário eu posso chegar aqui e botar um sal para criar um um System P out P print LN e aqui eu passar o Naruto ah pget nome por exemplo eu não vou botar isso dentro de uma variável só para ganhar algum tempo ele vai e eu posso colocar aqui deixa eu ver ah deixa eu ver o que eu coloco
aqui meu nome é e simples assim a gente dá um pronto aqui ah meu nome é Naruto zumak e eu criei um getter e um Setter e é sempre assim que você vai fazer se você vier aqui na nossa classe Ninja a gente tem um getter a gente tem um Setter e simples como assim a gente tem que fazer isso em todas e se a nossa classe for gigante tiver vários atributos aqui o nosso Ninja tiver 300 atributos aqui dentro 300 coisas a gente tem que fazer 300 getters 300 setters isso é uma coisa do
Java que você tem que trabalhar que você vai aprender a trabalhar e você vai trabalhar com isso todo dia mas para isso a gente tem também alguns shortcuts Lembra que eu te falei de escolher uma ideia legal a gente pode vir aqui ó eu só queria te mostrar que como você pode fazer isso na mão você Teoricamente teria que fazer um para agora pra aldeia um pra idade e se a gente tivesse mais teria que fazer mais a gente pode fazer isso na mão se você vier aqui por exemplo na sua na sua IDR Você
pode procurar o shortcut aqui na no intellij eu boto control n ou Command n e aqui eu vou ter algumas opções que eu vou poder trabalhar quando eu aperto esses comandos eu posso por exemplo trabalhar aqui para criar e todos os getters da minha aplicação E se eu chegar aqui eu automaticamente criei todos os getters e os setters automaticamente não na verdade todos os getters agora venho aqui dou um Command n de novo e crio os setters e agora eu vou criar todos os setters da minha aplicação todos os setters estão criados Então cara procure
saber qual a ideia que tu vai usar não importa qual ideia tu vai usar todas as ideias devem ter o mesmo os mesmos shortcuts assim só que eles estão em em teclas diferentes por exemplo então é sempre bom você procurar saber tá ligado que vai te poupar muito tempo e esse daqui é um jeito de você fazer getters andc você já te ensinei dois você pode fazer na mão que nem a gente fez o primeiro ali a gente pode fazer gerando assim pela própria ide ou então se você for trabalhar com frameworks mais avançados aí
é um pouquinho mais avançado se você for trabalhar com Spring boot por exemplo você tem Abstrações tipo long boock que você simplesmente vai chegar ali passar uma uma anotação de getter uma anotação de Setter e ele automaticamente vai gerar para você todos os getters e setters por baixo dos panos e você nem vê isso tá ligado Então é sempre importante você saber as ferramentas que tu vai ter que usar D para trabalhar isso é encapsulamento cara agora com isso a gente protegeu aqui agora que a gente criou todos os o os os gatos do Set
a gente pode chegar aqui e proteger a nossa as nossas variáveis aqui por exemplo e colocar elas como privadas e colocando elas como privadas eu simplesmente tô protegendo elas deixa só fechar isso aqui eu tô protegendo elas e por exemplo eu chegar aqui como eu tava aqui botar qualquer idade aqui na mão sabe eu para chegar aqui para alterar a idade por exemplo eu vou ter que colocar um sete idade e o sete idade eu vou ter que passar a idade aqui dentro agora eu boto aqui que o Naruto tem 26 anos que tem 16
anos perdão e assim a gente trabalha com encapsulamento esse daí é um pilar é um dos pilares mais tranquilos de você aprender de Java Mas tem como a gente ir mais fundo nisso principalmente da gente trabalhar com construtores por exemplo a questão dos getters etcs a gente pode ir mais a fundo nisso e eu tô fazendo isso lá dentro da área de membros Então esse vídeo aqui foi só para você vê que cara dá para você tirar um seis na prova você não precisa reprovar e nada do que eu sei aqui eu sabia na faculdade
você pode achar fácil mas na faculdade eu não sabia e reprovei duas vezes porque eu não consegui entender esses conceitos eu fui entender esses conceitos muito depois com Dart cara para tu ter uma noção fui entender isso só com Dart que tinha uma orientação objeto ali e era muito e era completamente diferente de tudo que eu tava aprendendo na faculdade eu eu tô tentando explicar para vocês aqui de um jeito que eu entenderia e de novo a gente só tá ganhando a superfície lá dentro da área de membros a gente vai falar um pouquinho mais
sobre list hashmap a gente vai falar sobre alocamento de memória lá dentro garbage Collection também que é uma coisa que sempre me confundiu então lá dentro da área de membros vai ser interessante a gente bater um papo um pouco mais a fundo porque senão o vídeo vai ficar maior do que já tá agora então eu espero que você tenha entendido que pelo menos você tira uns seis na sua prova de Java eu espero que a minha explicação tenha sido a mais simples possível porque eu tentei explicar da maneira mais simples possível alguns conceitos básicos ali
de Java até o nível intermediário mas lá na área de membros eu vou entrar mais a fundo nos conceitos mais avançados de Java se vocês quiserem dar uma olhada O valor é ridículo mas é só para apoiar o projeto do fiasco então a gente se vê por aí cara até o próximo vídeo e tchau