[MÚSICA] Olá, bem vindo ao curso Orientação a Objetos com Java. Meu nome é Clovis Fernandes. A aula de hoje é sobre identificação de responsabilidades. O objetivo então é caracterizar e identificar responsabilidades de uma classe. Vimos anteriormente como diferenciar estado de uma classe de seu comportamento. Agora queremos facilitar a identificação de atributos e comportamentos de uma classe. Como faremos isso? Através do conceito de antropomorfismo. O que vem a ser antropomorfismo? Antropomorfismo é essa capacidade de aplicar conceitos e caracterÃsticas do ser humano objetos inanimados, animais irracionais. No nosso exemplo estamos vendo feijão que está caracterizado como ser humano. Ele tem chapéu, ele carrega uma bolsa, ele tem braços, ele tem pernas. Isso é dar esse olhar de antropomorfismo. Antropomorfismo é conceito, para quem veio de programação estruturada, como eu, antes de orientação a objetos, foi muito importante para mim para eu entender como é que era realmente trabalhar com os conceitos de orientação a objetos. Isso foi muito importante, foi crucial para mim. Orientação a objetos antropomorfismo significa aplicar objetos e classes, conceitos e comportamentos de ser humano. Para exemplificar a identificação de atributos e comportamentos de uma classe vamos aplicar o conceito de antropomorfismo à classe homem. Para isso duas perguntas devem ser respondidas: Quais são as ações que homem sabe ou faz? Vamos lá, diga você, o que é que homem sabe? Pense pouquinho. O homem sabe o seu nome, a data de nascimento, endereço e muitas outras coisas. Agora vamos de novo: O que é que o homem faz? Será que você vai conseguir pensar e coincidir com alguns nomes que eu vou apresentar? O homem, por exemplo, fala, anda, pula, dança, pensa e muitas outras coisas mais. Para a classe Homem o antropomorfismo funcionou. Responder à s duas perguntas, o que é que o Homem sabe ou faz, ficou muito tranquilo. Será que vai funcionar para ser irracional? Vamos pensar, por exemplo, num cachorro. Quais são as ações que cachorro sabe ou faz? Vamos lá, dou tempo para você, pense aà o que é cachorro sabe? Por exemplo, o cachorro sabe o seu nome, você pode chamar o cachorro, o cachorro sabe onde fica a sua casinha, o cachorro sabe quem é o seu dono, ele reconhece o seu dono e muitas outras coisas mais que ele sabe. E agora diga você o que é que o cachorro faz? Pense aÃ. Cachorro ele late, ele anda, da mesma maneira que ser humano, ele protege a casa e faz inúmeras outras também. Para as classes homem e cachorro, identificar as ações que cada uma delas sabe ou faz, cada uma delas é responsável pelo que ela sabe, é responsável pelo que ela faz. Isso dá origem ao termo de responsabilidade. Então o que uma classe sabe ou faz, nós chamamos de responsabilidade. Por exemplo: O que é que objeto sabe? Isso vai constituir conhecimento que ele mantém, se é conhecimento que ele mantém isso se refere aos atributos ou ao estado dessa classe e no final num programa vai corresponder à s variáveis de instância dessa classe. Agora, o que é que objeto faz? Isso corresponde à ação que ele realiza, ou seja, isso está atrelado ao seu comportamento e, ao final, aos métodos de uma dada classe. Nós conseguimos definir as responsabilidades, o que é que uma classe sabe ou faz para as classes homem, cachorro e funcionou muito bem. Agora será que para uma coisa inanimada vai funcionar também? Então na tela vocês estão vendo aà ponto gráfico. Quais são as responsabilidade de ponto gráfico? Agora eu não preciso mais ficar perguntando quais as ações que objeto ou classe sabe ou faz, basta perguntar quais são as responsabilidades que objeto tem. Então nesse caso quais são as responsabilidades do objeto gráfico. Vou deixar para você pensar pouquinho. O que é que ponto gráfico sabe? O ponto gráfico sabe a cor, ele sabe a posição, ele sabe o tamanho e muitas outras coisas mais. Ou seja, eu estou atribuindo esses conceitos tÃpicos do ser humano a objeto gráfico. Agora veja você, mesma coisa, pense você o que ponto gráfico faz? Vou atribuir então essas caracterÃsticas como se ele fosse ser humano. O ponto gráfico ele move-se, ele compara-se a outro ponto, ele devolve qual é a sua posição ou a sua coordenada e outras coisas mais. Essas são as coisas que ponto gráfico faz. Estou atribuindo a ele, assim como a ser humano era andar e pular, o ponto gráfico é mover-se, comparar-se e apresentar posição. Nós vimos então que através das responsabilidades nós podemos definir o estado e o comportamento de uma dada classe. O estado, como nós já sabemos, ele corresponde aos atributos, o comportamente corresponde aos métodos. Esse conjunto todo eu encontro perguntando quais são as responsabilidades desse objeto dessa classe. Então basta fazer essa pergunta, eu estaria respondendo quando eu pergunto o que objeto sabe, vou responder e conseguir encontrar os seus atributos, as suas variáveis de instância. Quando eu pergunto o que objeto faz, eu vou encontrar o seu comportamento, os seus métodos. Por exemplo, temos a classe carro. Quais são essas responsabilidades da classe carro? Eu vou exemplificar aqui com relação ao que a classe carro sabe apenas pela potência do motor e pela velocidade, e pelo que a classe carro faz, o comportamento de frear o carro e acelerar o carro. Objeto da classe carro, por exemplo, o carro do meu sogro, ele vai ter as mesma caracterÃsticas e atributos da classe carro só que agora esses atributos vão ter valores. Então nesse exemplo nós temos a potência do motor é 2.0 e a velocidade do carro, num dado instante, é 60 km. Obviamente eu posso aplicar o comportamento, eu posso frear que vai diminuir a velocidade de 60 para 50 por exemplo, e eu posso também acelerar fazendo com que o carro de 60 passe por exemplo para 70 km. Tudo isso constitui as responsabilidades que foram definidas na classe carro e que caracterizam objeto dessa classe. Gostaria de enfatizar que o conceito de responsabilidade vai ser muito importante, crucial mesmo, para ter bom entendimento de classes e objetos. Vai me ajudar a definir classes e objetos. Eu consigo identificar os seus atributos e o seu comportamento. O conceito responsabilidade vai ser muito usado ao longo de todo o curso por isso ele é muito importante que vocês prestem bastante atenção e tentem entendê-lo o máximo possÃvel a partir de agora. Relembrando: A responsabilidade ela tem 2 tipos. A responsabilidade do tipo sabe, que vai fazer com que eu possa identificar o estado, os atributos e no final que vai corresponder à s variáveis de instância da minha classe e o tipo faz, responsabilidades do tipo faz, que vão me ajudar a definir o comportamento dessa classe e no final vai ser representado pelos métodos de uma classe. O objetivo dessa aula foi identificar responsabilidades e foi o que mostramos para vocês. Muito obrigado! [MÚSICA]