[MÚSICA] Meu nome é Eduardo Guerra. Estamos aqui no curso de Orientação a Objetos com Java. Hoje vamos falar, vamos ver na prática como que funcionam as variáveis estáticas, e como que elas são diferentes das dinâmicas. Então eu vou criar exemplo aqui que a gente vai criar uma variável de cada tipo, vai modificar cada uma delas, e vai ver como que elas funcionam aí. Eu vou criar aqui projeto Java, vou chamar aqui de EstaticaVsDinamica Dinamica não, "vsInstancia", certo? Então, eu vou fazer o seguinte, eu vou criar aqui uma classe, certo? Que ela vai chamar de Somador, a classe Somador, ela vai ter duas variáveis: uma variável estática e uma variável de instância. Toda vez que eu mandar ela somar, ela vai somar 1 nas duas variáveis. Aí já já eu mostro pra vocês o experimento que a gente vai fazer pra ver qual o resultado que a gente obtém. Então eu vou chamar aqui de somador, certo? Então a minha classe somador, ela vai ter nome, certo? Eu vou chamar aqui de nome, ela vai ter valor instância, certo? Que eu estou criando uma variável de instância, e vou criar aqui uma variável estática que eu vou chamar de valor estática, certo? Eu vou fazer o seguinte aqui eu vou inicializar as duas variáveis com o zero, okay? E aí eu vou ter esse método aqui que eu vou chamar de somar, certo? O meu método somar, ele vai somar no valor da variáriel de instância, certo? Então, valorInstância++ e vai somar no valor alí da variável estática. Note que a única coisa que muda de uma pra outra é o fato de uma ser estática e a outra ser dinâmica. Ou ser de instância, certo? E aí eu vou criar também método aqui que eu vou chamar de imprimir, certo? Que vai imprimir o somador. Então eu vou fazer aqui o meu "sysout'', então eu vou colocar aqui o somador, o nome dele, tem vou colocar aqui o valor da instância, certo? Pra fazer, pra ficar mais fácil aqui, vez de descrever isso tudo eu vou escrever aqui "instância="+valorInstância+" "e estática="+valorEstática+" Ao valor da estática, certo? Então, criei alí o meu somar, criei o meu imprimir. Vamos ver agora o que que acontece por exemplo se eu criar três instâncias dessa classe somadora e chamar o método somar todas elas. Que será que acontece com cada uma das variáveis? Depois eu vou mandar imprimir e vou ver qual que é o valor de cada uma, está certo? Então vamos lá. Eu vou ver aqui, vou criar o meu método principal, certo? Vou criar uma nova classe, método não, vou criar uma classe principal que tem o método "main" onde eu posso executar isso que eu falei. Então vou criar aqui o somador s1, certo? "New somador" [SEM_ÁUDIO] Vou fazer aqui "s1.nome" "= 'somador1" E vou criar três somadores aqui, certo? Então vou colocar aqui s2 s2, s3 s3, está faltando modificar o nome de cada. Então, vou chamar aqui de somador 2, e somador 3. Aqui eu vou criar "for" pra chamar o método somar três vezes cada dos somadores. Então vou fazer int i=0; i<3; i++ certo? E aí eu vou fazer aí agora o s1.somar o s2.somar e o s3.somar certo? E aí agora eu vou imprimir cada deles. Então vou fazer o s1.imprimir o s2.imprimir e o s3.imprimir Certo? E vamos ver como é que ficou o valor aqui de cada variável, certo? Então eu vou dar play aqui, certo? Note que todos eles a variável de instância, ela é 3 e a estática é 9, note que cada vez que eu somo, eu vou somar a variável de instância só pra aquele objeto. Aquele somar, quando eu somo na variável de instância está dentro do escopo daquele objeto. Mas quando eu somo na variável estática, aí eu estou somando pra todos os objetos, então, todos os objetos daquela classe vai acessar a mesma variável de instância enquanto a variável, a mesma variável estática, enquanto a variável de instância, ela é uma pra cada objeto da classe. Então, só pra gente ver aqui, eu vou pegar, vou somar uma vez a mais aqui só no s2. A gente vai ver que vai somente o opa, eu chamei o imprimir aqui chamei errado, eu vou chamar o somar aqui, que é o que eu queria colocar. Então você pode ver aqui que a variável de instância somente do s2 aumentou 1, mas o valor ali da estática que cada enxerga é o mesmo. Está certo? Espero que com esse exemplo tenha ficado mais claro o funcionamento das variáveis estáticas. É muito importante pra quem está trabalhando com orientação a objeto entender essa diferença de escopo entre as variáveis de instâncias e estáticas. Muito obrigado por assistir e até a próxima aula. [MÚSICA]