O que faz de uma linguagem Orientada a Objetos?
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:
-
ser baseada em objetos, ou seja, deve ser fácil programar objetos que encapsulam dados e operações;
-
ser baseadas em classes, ou seja, cada objeto pertence a (ou é fabricado a partir de) uma classe; e
-
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)
-
enlace dinâmico, tardio (late binding)
-
coleta automática de lixo
-
herança múltipla
-
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.