Informática, perguntado por crispaludet251, 1 ano atrás

definição de linguagem de programação orientada a objetos

Soluções para a tarefa

Respondido por bokomoko
2
Quando as linguagens de programaçào de alto nível foram criados, percebeu-se que era possível representar digitalmente algumas coisas da vida real. A parte de dados , ou seja, estados, dos objetos era moleza de fazer. Por exemplo, o que é um aluno de uma escola ? É uma entidade que existe mesmo na vida real. Basta ir para uma escola e ver. Dia desses eu vi um. Só fico imaginando o que eles comem. Criaturas interessantes essas são os alunos.
O que é um aluno em termos de computação ? É um conjunto de dados, foi a primeira conclusão. Um aluno tem nome, data de nascimento, tem o nome do responsável que paga a mensalidade da escola, tem o histórico de notas que ele tirou ao longo da vida dele na escola (que é uma medida de quanto ele sabe), tem os dados físicos (altura, peso, cor dos olhos, etc) e por aí vai.

Essa parte dos dados da entidade aluno era moleza de implementar. Todos os alunos tinham mais ou menos a mesma estrutura de dados. Até que alguém percebeu que as operações que são feitas com um aluno são muito parecidas com as operações feitas com todos os outros alunos. Por exemplo: como é que se aplica uma prova a um aluno ? Do mesmo jeito que se aplica a todos os outros. Como se apura a frequencia de um aluno na sala de aula ? Do mesmo jeito que se faz com os outros. Como é que se decide se um aluno passa de ano ou vai para recuperação ? Do mesmo jeito que se faz com todos os outros alunos. Ou seja, os métodos para manipular os dados dos alunos são iguais. Basta eu aprender a fazer um e farei para todos ! Entao se eu definir um "aluno genérico" e todos os procedimentos para tratá-lo, basta eu criar alunos específicos mudando apenas os dados que diferem de um aluno para outro. Esse é o conceito fundamental da orientação a objetos: dados e métodos estão associados a classe genérica aluno. Essa ideia se aplica a praticamente qualquer tipo de entidade (classe de objeto) que existe. Por exemplo :
carros : quantidade de portas, tamanho do motor, combustível, marca, quantidade de rodas, tamanho do pneu, consumo de combustível, cor, placa, etc .. sào dados do carro. Já os métodos são parecidos também : abastecer, dirigir, levar na oficina, comprar, vender, licenciar, pagar o maldito IPVA, pagar seguro, sofrer acidente (OPA!)

A segunda grande sacada da orientaçao a objeto é a hierarquia das classes. Por exemplo, um aluno genérico, como descrito acima, compartilha seus métodos com todos alunos da mesma "classe de objetos". Porém, imagine que temos um aluno de música, por exemplo. A avaliação de nota de um aluno de música é diferente da avaliação de um aluno genérico, que faz uma prova de múltiplas perguntas cada uma com opcoes de resposta. Já para avaliar se um aluno de música canta bem, é preciso ouví-lo cantar. A prova do aluno de música é diferente da prova do aluno regular. Ao mesmo tempo, todos os outros métodos são iguais (matricular, pagar mensalidade, apontar a frequencia, chamar os pais quando ele faz má criação na sala de aula, etc). Então em vez de especificar tudo de novo, igualzinho, para o aluno de música, dizemos que o aluno de música "herda" todos os métodos do aluno genérico e muda apenas o que é diferente e específico para ele. 
Esse é o conceito de herança da programação orientada a objeto.

Essa explicação resumidíssima e nao tem a intenção de cobrir tudo a respeito de programação orientada a objeto mas dá uma boa ideia.


Perguntas interessantes