Oi. Conceito bem importante para a gente conhecer é essa diferença entre variáveis de classe e variáveis de objeto. Uma variável de classe é uma variável que é associada à classe e, portanto, todas as instâncias daquela classe compartilham. Já uma variável de objeto não é assim. Para cada instância é como se você tivesse conjunto separado daquelas variáveis de objeto. Vamos ver como isso aqui funciona. Por exemplo, na linguagem Java, essa é a forma da gente definir uma classe bola. E a classe bola, eu posso querer definir, por exemplo, que cada bola vai ter diâmetro diferente. E daí eu coloco dessa forma para criar uma variável de objeto, ou seja, cada instância vai ter diâmetro diferente, de forma que eu possa considerar diferentes diâmetros para diferentes bolas. Eu posso querer ter uma variável de classe Java. E também para ensinar mais, o jeito de fazer isso é usando essa palavra 'static' e, depois, a variável que eu quero. Então, por exemplo, 'string' forma que vai definir que a forma das minhas bolas vão ser, por exemplo, redondas. Então, aqui eu defini uma variável de classe, uma variável de instância, de objeto, diâmetro e uma variável de classe, forma que, Java++ a gente usa essa palavra reservada a 'static'. Como a gente faria isso na linguagem 'Python'? É semelhante. Então, essa é a forma de eu definir uma bola, daí para definir uma variável de classe, eu coloco aqui cima. Por exemplo, vamos supor que eu queira contar quantas bolas eu tenho. Então, eu vou definir uma variável chamada 'conta bolas' e eu vou iniciá-la com 0. Eu vou dizer que inicialmente eu tenho 0 bolas. Eu criei construtor. O jeito de criar construtor Python é assim: 'def _int', com dois underscores antes e depois. Daí eu passo com o parâmetro 'self' e depois qualquer parâmetro que eu queira. Vamos passar uma variável para guardar o diâmetro aqui com o parâmetro do construtor. Se eu quero acessar, definir, uma variável de objeto, de instância, eu faço dessa forma Python: self, ponto, diâmetro. E vou inicializar com o parâmetro 'dia', que é passado como parâmetro. Então, assim, dessa forma quando eu instancio uma nova bola, eu já posso passar como parâmetro o diâmetro e ele vai armazenar nessa grade de objeto o diâmetro. Se eu quiser, agora, contar quantas bolas eu tenho no meu sistema, cada vez que eu instancio uma nova bola, ou seja, cada vez que eu chamo o construtor, eu somo nesse conta bolas. Então, eu faço aqui: conta bolas recebe mais igual a. Recebe conta bolas mais. Dessa forma, essa variável conta bolas é compartilhada entre todas as instâncias e ela é usada para armazenar, nesse meu exemplo, quantas instancias foram criadas. Porque cada vez que crio uma instância, eu somo no conta bolas. Vamos ver graficamente como seria isso. Então, vamos supor que eu tenho aqui... derrubando minha caneta aqui, vamos supor que eu tenho uma classe, bola. E essa classe tem duas variáveis. Uma variável chamada forma, que vai ser uma variável de classe, a gente representa que é uma variável de classe sublinhando aqui. E depois uma variável chamada diâmetro, que é uma variável de objeto. E eu posso ter várias bolas no meu sistema. Então, eu vou ter aqui uma bola que eu vou chamar de 'b1', uma bola 'b2'. São três instâncias diferentes dessa minha classe 'b3'. Se eu venho aqui na b1 e eu pego o forma dela, de ponto forma; e eu digo que a forma vai ser oval. Transformei uma bola de futebol americano. E depois eu venho aqui no b3 e pego o valor do forma, b3 ponto forma, vai virar oval também, porque a variável forma é compartilhada por todas as instâncias. Já isso não acontece com o diâmetro. Se eu pego o diâmetro e eu atribuo o valor 2; e depois, aqui, eu faço o diâmetro receber 3, o 2 e o 3 vão ser valores diferentes, porque são variáveis diferentes. Como isso funciona? O meu sistema de execução vai fazer o seguinte. Quando eu crio a classe bola, ele aloca espaço na memória para guardar essa variável forma que é compartilhada entre todas as instâncias que são criadas depois. E ele não cria nesse momento, ainda, espaço na memória para a variável diâmetro. Porque quando eu faço a instanciação desses objetos, quando eu instancio b1, b2 e b3, assim no momento de cada uma dessas instanciações. Aí sim, ele aloca espaço na memória para a variável diâmetro. Então, se eu instancio três objetos, eu vou ter três diâmetros separados lugares diferentes da memória, porque são três variáveis diferentes. Já na forma não, eu vou ter uma única vez pedaço da memória reservado para representar a forma da bola. Então, eu espero que vocês tenham entendido isso. A gente vai usar isso nos nossos programas orientados a objetos. Até a próxima!!!