[MÚSICA] Meu nome é Eduardo Guerra. Esse é o curso de Orientação a Objetos com Java. Hoje vamos estar falando para vocês sobre a identificação de classes de objetos. O objetivo dessa aula é mostrar a você pouquinho sobre como você descobrir quais são as classes, quais são os objetos, qual o significado disso tudo dentro do sistema orientado a objetos. O que a gente vai tá tentando responder aqui é quais são as partes do seu software. O software, ele não é blocão assim inteiro, você precisa dividir ele, ele tem partes que você precisa combinar. Mais especificamente, a gente vai tá falando das peças que a gente vai usar para montar a sua funcionalidade num software orientado a objetos. Então imagina o seguinte, que eu tenho por exemplo sistema de pet-shop. Eu vou ter aí o cão, vou ter os produtos que às vezes podem ser, por exemplo, uma caminha ou uma comida de cachorro, de repente pode ser uma tosa, banho e tem os usuários que são os donos desses caninos aí. O que é que são isso? O que é que é isso aí dentro do meu sistema? São as entidades, são aquelas coisas que fazem parte do meu negócio, que fazem parte do meu sistema. Essas entidades, elas colaboram para poder criar a funcionalidade do software. Então por exemplo se eu tenho uma funcionalidade de comprar eu vou ter cliente de repente adquirindo produto, por exemplo uma tosa para dos seus cachorros, daí então eu vou ter tudo aquilo ali combinado dentro do software. E essas entidades que colaboram para criar essas funcionalidade no sistema, são chamadas classes. As classes, elas são abstrações. Então por exemplo, pensa numa cadeira. É uma ideia que você tem da cadeira. Certo? Daquilo que é uma cadeira. Então uma classe, o correto é a gente dizer que ela é uma abstração. E aí se a gente pensar exemplos de cadeira, mesmo que a gente tenha aquela, digamos assim, aquela ideia idealizada, aquela coisa assim do que é uma cadeira, a gente vai ter ali por exemplo uma que é de madeira, uma de plástico, tem essa outra ali que tem as rodinhas no pé, então a gente tem vários tipo de cadeira, algumas mais parecidas, outras diferentes, mas que todas encaixam nesse conceito que a gente tem do que é ser uma cadeira. E cada cadeira, como eu disse, tem as suas características, o formato do acento, como que são os pés, como que é o encosto, material que ela é feita, cada cadeira tem as suas caraterísticas. E aí o objeto é uma Instância Concreta da classe. Então, que acontece? Eu tenho a minha ideia de cadeira, agora por exemplo essa cadeira que você aí está sentado, ela é uma instância dessa classe de cadeira, ela é objeto. Então a gente pode dizer que a Classe Cadeira, ela vai criar ou instanciar Objetos Cadeira Não é ela que vai lá e cria, mas baseado naquela ideia que a gente tem de cadeira, as pessoas constroem efetivamente as cadeiras que existem. Então, uma classe, ela vai estar criando ou instanciando objetos dela. E uma coisa importante é que esses objetos, eles são únicos. Por quê? Eu posso ter, por exemplo, duas cadeiras iguais e elas vão estar, por exemplo, posições diferentes. Por exemplo eu posso quebrar uma e a outra não vai quebrar. Então, são coisas diferentes. Eu ter, por exemplo, duas cadeiras do mesmo tipo, não significa que são o mesmo objeto. Os objetos, eles são únicos. Duas cadeiras iguais, elas são da mesma classe, mas são objetos diferentes. Vamos ver se você entendeu aí esse conceito? Quero que você dê uma olhada aqui e me diga quais desses objetos seriam da classe cadeira. Tem aí a cadeira de rodas, eu tenho aqui uma cadeira de bebê e e tem banquinho. Responde aí, qual desses objetos é da classe cadeira? Bom, tenho certeza que todo mundo aí deve ter acertado, mas se a gente for parar para pensar, apesar do banco a gente poder sentar e às vezes ele ser até mais parecido com as cadeiras que a gente viu antes, ele não se encaixa na ideia que a gente tem de cadeira, naquela abstração de cadeira. Por isso que ele não é uma instância de cadeira. Agora os outros tipos, elas se encaixam então seriam instâncias de cadeira. Mesmo que elas sejam diferentes, uma tem rodinhas a outra tem ali a mesinha para o neném comer e etc. Então, resumindo aqui, a classe, ela é uma abstração, ela é abstrata. O objeto, ele é concreto. Então se a classe é uma generalização, é uma ideia de uma cadeira, o objeto, ele vai ser uma cadeira, essa aí que você está sentando por exemplo. E os objetos eles são únicos então eu posso ter diferentes tipos de cadeira com diferentes características que vão ser diferentes objetos da classe cadeira. E aí a gente tem que uma classe, ela cria ou instancia objetos daquela classe. E são esse conceitos aí que a gente vai utilizar quando a gente tiver criando classes e instanciando objetos dentro de software orientado a objetos. Certo? Então espero que com isso você tenha conseguido entender melhor esse conceito de classe, esse conceito de objeto, como que eles se relacionam que a gente vai precisar disso quando a gente for colocar a mão na massa para programar nas próximas aulas. Muito obrigado, nos vemos na próxima aula. [MÚSICA] [MÚSICA] [SEM_ÁUDIO] [SEM_ÁUDIO]