O que faz de uma linguagem Orientada a Objetos?

  • Era um assunto controverso nos anos 80.

  • Em 87, Peter Wegner, publicou um artigo na OOPSLA que resolveu a questão (pelo menos entre aqueles que concordam com o Wegner :-)

  • Para uma linguagem ser Orientada a Objetos ela precisa:

    1. ser baseada em objetos, ou seja, deve ser fácil programar objetos que encapsulam dados e operações;

    2. ser baseadas em classes, ou seja, cada objeto pertence a (ou é fabricado a partir de) uma classe; e

    3. permitir herança, ou seja, deve ser fácil agrupar classes em hierarquias de subclasses e superclasses.

  • Outros estudiosos (chatos?) acrescentam outros itens à lista: (eu não concordo)

    1. enlace dinâmico, tardio (late binding)

    2. coleta automática de lixo

    3. herança múltipla

    4. agregação

  • A linguagem Self é uma grande exceção entre as linguagens claramente orientada a objetos: ela não possui classes.

  • Self usa delegação e prototipação.

  • JavaScript é o representante moderno dessa linha de linguagens OO sem classes.

Modifié le: mardi 14 septembre 2021, 09:34