Ola a todos, estava eu e um amigo meu discutindo sobre java e delphi e ele começou a fazer em herença, polimorfismo, encapsulamento em delphi 7 e eu o questionei que delphi trabalha orientado a eventos, queria que voces tirassem essas minhas duvidas.
delphi 7 pode-se se fazer isso mesmo?
Dúvidas sobre OO
12 Respostas
Pode sim. E o Delphi até suporta herança múltipla.
Do contrário do VB, que até a versão 6 era somente orientado a eventos e não suportava criação de classes.
Pode sim. E o Delphi até suporta herança múltipla.Do contrário do VB, que até a versão 6 era somente orientado a eventos e não suportava criação de classes.
Ele suportava classes , mas não herança nem polimorfismo
Ele suportava classes , mas não herança nem polimorfismo
Tem razão, há uma maneira relativamente agressiva de criar os suas próprias classes e componentes que, por sinal, era pouquíssimo usada pela comunidade VB. Até hoje, quando baixo código, é praticamente 100% estruturado. No máximo o cara tem uma classe, para o componente que ele está modelando, e só.
Mas é isso aí, sem herança e sem polimorfismo.
Pessoal, o Delphi suporta OO completamente, com classes, interfaces, herança, polimorfismo, etc e tal, mas não tem herança múltipla não (pelo menos eu nunca tentei fazer, nem ouvi falar nisso…)
Eu mesmo já fiz sistemas totalmente OO com Delphi, sem eventos e regras de negócio direto na tela. Eu costumo dizer que Delphi é OO, mas os programadores Delphi não!
Todo o marketing do Delphi foi feito em cima do RAD, então é assim que as pessoas aprendiam e programavam.
Mas programar OO em Delphi tem seus problemas; os objetos devem ser liberados manualmente; a IDE não ajuda a criar classes, sobrescrever métodos, etc (pelo menos não até o 7); não existem muitos frameworks prontos como existem para Java e programar usando interfaces é meio chato.
Fora isso, pode-se fazer sistemas bem estruturados em Delphi, não apenas colar componentes e sair codificando como muitos pensam… tudo depende do programador!
[]'s
ai valeu pelas respostas, acho que to com preconceito de delphi mas é isso ai, valeu mesmo galera
Tem razão, quem me falou de multipla herança em Delphi foi um colega e na época que eu já tinha parado de usar o Delphi e nem me empenhei em conferir. Provavelmente ele confundiu esse conceito em interfaces (que na época também não existia).
Só um comentário filosófico: Muita gente diz que “existe herança múltipla de interfaces”. Eu não gosto de usar esse termo, pois temos associado a herança múltipla também o conceito de compartilhamento de código e, pra quem veio do C++, problemas com o Diamond-of-Death.
Pessoal, o Delphi suporta OO completamente, com classes, interfaces, herança, polimorfismo, etc e tal, mas não tem herança múltipla não (pelo menos eu nunca tentei fazer, nem ouvi falar nisso…)Eu mesmo já fiz sistemas totalmente OO com Delphi, sem eventos e regras de negócio direto na tela. Eu costumo dizer que Delphi é OO, mas os programadores Delphi não!
Todo o marketing do Delphi foi feito em cima do RAD, então é assim que as pessoas aprendiam e programavam.
Mas programar OO em Delphi tem seus problemas; os objetos devem ser liberados manualmente; a IDE não ajuda a criar classes, sobrescrever métodos, etc (pelo menos não até o 7); não existem muitos frameworks prontos como existem para Java e programar usando interfaces é meio chato.
Fora isso, pode-se fazer sistemas bem estruturados em Delphi, não apenas colar componentes e sair codificando como muitos pensam… tudo depende do programador!
[]'s
“Sistemas bem estruturados” rsrsrs (isso foi uma tentativa frutrada de ironia por minha parters…) Mas eu tb já trabalhei com Delphi sob uma estrutura bem OO. em termos de linguagem não é muito ruim, mas realmente a IDE é o que mata nesse quesito… Não ajuda em nada quase…
Pessoal, o Delphi suporta OO completamente, com classes, interfaces, herança, polimorfismo, etc e tal, mas não tem herança múltipla não (pelo menos eu nunca tentei fazer, nem ouvi falar nisso…)Eu mesmo já fiz sistemas totalmente OO com Delphi, sem eventos e regras de negócio direto na tela. Eu costumo dizer que Delphi é OO, mas os programadores Delphi não!
Todo o marketing do Delphi foi feito em cima do RAD, então é assim que as pessoas aprendiam e programavam.
Mas programar OO em Delphi tem seus problemas; os objetos devem ser liberados manualmente; a IDE não ajuda a criar classes, sobrescrever métodos, etc (pelo menos não até o 7); não existem muitos frameworks prontos como existem para Java e programar usando interfaces é meio chato.
Fora isso, pode-se fazer sistemas bem estruturados em Delphi, não apenas colar componentes e sair codificando como muitos pensam… tudo depende do programador!
[]'s
“Sistemas bem estruturados” rsrsrs (isso foi uma tentativa frutrada de ironia por minha parters…) Mas eu tb já trabalhei com Delphi sob uma estrutura bem OO. em termos de linguagem não é muito ruim, mas realmente a IDE é o que mata nesse quesito… Não ajuda em nada quase…
Ouvi falar de um amigo que usa que nesse caso o desempenho não é o mesmo… Alguém já viu ou ouviu isso? Cai muito?
[]s
Só cuidado ao falar “suporta OO completamente” sem definir o que quer dizer com isso. Acaso tudo em Delphi é objeto? Acaso linguagens sem classes não são OO?
Muito bem colocado. Eu me baseei na definição clássica de OO, que inclui:
Ter suporte a classes, objetos, métodos, troca de mensagens, herança, encapsulamento, abstração e polimorfismo. Por essa definição não se enquadra em linguagens OO o VB (sem herança e polimorfismo), mas se enquadram linguagens que permitem código estruturado também (funções sem classe), como o C++.
É… essa história do “suporta OO completamente” ficou meio nebulosa mesmo! Também tinha pensado mais na definição clichê com herança, polimorfismo e seus amigos.
Talvez a definição mais adequada para OO seja aquela onde temos os dados e as operações que os manipulam colocados juntos na mesma entidade. Estas entidades por sua vez colaboram umas com as outras, sem expor os detalhes de como são implementadas internamente, para implementar as funcionalidades da aplicação.
Agora, a forma como estas entidades são implementadas nas linguagens de programação varia. Em Java e Delphi você define classes e cria instâncias delas. Mas realmente temos linguagens OO sem classes, como Io e Self, que são baseadas em protótipos - você tem objetos pré-existentes que são clonados e especializados para criar novos.
Sendo assim, se uma linguagem OO é aquela que de alguma forma suporta as tais “entidades que agrupam dados e operações”, então posso dizer que Delphi suporta OO.
A parte do “completamente” era besta mesmo. Poderia até dizer isso sobre Io, onde todos os dados são objetos e todas as operações são métodos (inclusive atribuição e return - nem Smalltalk é tão pura, já que nela essas construções não são métodos), mas certamente não sobre Delphi…
Obrigado pelas observações 
po bom topico eu tb tenho essa duvida, agora me diz… o php 5 tb ta no mesmo caminho, válido dizer que php 5 é OO?