Diferenzas entre revisións de «Programación orientada a obxectos»

sen resumo de edición
m (r2.7.1) (bot Modificado: he:תכנות מונחה-עצמים)
Sem resumo de edição
A '''Programación Orientada a Obxectos''' (POO ou OOP segundo osas seussúas [[sigla]]s en [[Idioma inglés|inglés]]) é un [[paradigma de programación]] que usa [[Obxectos (programación orientada a obxectos)|obxectos]] e as súas interaccións para deseñar aplicacións e programas de computadoraordenador. Está baseado en varias técnicas, incluíndo herdanza, modularidadmodularidade, polimorfismo, e encapsulamientoencapsulamento. O seu uso popularizouse a principios da década de 1990. Actualmente varias linguaxes de programación soportan a orientación a obxectos.
 
== Introdución ==
Os obxectos son entidades que combinan ''estado'', ''comportamento'' e identidade. O estado está composto de datos, e o comportamento por procedementos ou ''[[métodos (programación orientada a obxectos)|métodos]]''. A identidade é unha propiedade dun obxecto que o diferencia do resto. A programación orientada a obxectos expresa un programa como un conxunto destes obxectos, que colaboran entre eles para realizar tarefas. Isto permite facer os programas e módulos máis fáciles de escribir, manter e reutilizar.
 
Desta formamaneira, un obxecto contén toda a información que permite definilo e identificalo fronte a outros obxectos pertencentes a outras clases e ataou fronte a obxectos dunha mesma clase, ao poder ter valores ben diferenciados nos seus atributos. Á súa vez, os obxectos dispóndispoñen de mecanismos de interacción chamados métodos que favorecen a comunicación entre eles. Esta comunicación favorece á súa vez o cambio de estado nos propios obxectos. Esta característica leva a tratalos como unidades indivisibles, nas que non se separan nin deben separarse o estado e o comportamento.
 
Os métodos e atributos están estreitamente relacionados pola propiedade de conxunto. Esta propiedade destaca que unha clase require de métodos para poder tratar os atributos cos que conta. O [[programador]] debe pensar indistintamente en ambos os dous conceptos, sen separar nin darlle maior importancia a ningún deles. Facelo podería resultar en seguir o hábito erróneo de crear clases colectoras de información por unha banda e clases con métodos que a manexen polo outro. Deste xeito estaríase chegando a unha [[programación estruturada]] camuflada nunha linguaxe de programación orientado a obxectos.
 
Isto difire da [[programación estruturada]] tradicional, na que os datos e os procedementos están separados e sen relación, xa que o único que se busca é o procesamiento duns datos de entrada para obter outros de saída. A programación estruturada anima ao programador a pensar sobre todo en termos de procedementos ou funcións, e en segundo lugar nas estruturas de datos que eses procedementos manexan. Na programación estruturada só se escriben funcións que procesan datos. Os programadores que empregan este novo paradigma, en cambio, primeiro definen obxectos para logo enviarlles mensaxes solicitándolles que realicen os seus métodos por si mesmos.
== Orixe ==
 
Os conceptos da programación orientada a obxectos teñen a súa orixe en [[Simula|Simula 67]], unha linguaxe deseñada para facer simulacións, creado por [[Ole-Johan Dahl]] e [[Kristen Nygaard]] do [[Centro de Cómputo Noruegués]] en [[Oslo]]. Segundo infórmasese informa, a historia é que traballaban en simulacións de naves, e foron confundidos pola explosión combinatoria de como as diversas calidades de diversas naves podían afectar unhas ás outras. A idea ocorreu para agrupar os diversos tipos de naves en diversas clases de obxectos, sendo responsable cada clase de obxectos de definir os seus ''propios'' datos e comportamento. Foron refinados máis tarde en [[Smalltalk]], que foi desenvolvido en Simula en [[Xerox PARC]] (e cuxa primeira versión foi escrita sobre [[Basic]]) pero deseñado para ser un sistema completamente dinámico no cal os obxectos poderíanse crear e modificar "en marcha" en lugar de ter un sistema baseado en programas estáticos.
 
A programación orientada a obxectos tomou posiciónposicionouse como o estilo de programación dominante a mediados dos anos oitenta, en gran parte debido á influencia de [[C++]] , unha extensión da linguaxe de programación [[Linguaxe de programación C|C]]. A súaO dominaciónseu foidominio consolidadaconsolidouse grazas ao auxe das [[Interfaz gráfica de usuario|Interfaces gráficas de usuario]], para osas cales a programación orientada a obxectos está particularmente ben adaptada. Neste caso, fálase tamén de [[programación dirixida por eventos]].
 
As características de orientación a obxectos foron agregadas a moitas linguaxes existentes durante ese tempo, incluíndo [[Linguaxe de programación Ada|Ada]], [[BASIC]], [[Lisp]], [[linguaxe de programación Pascal|Pascal]], entre outros. A adición destasdesas características ás linguaxes que non foron deseñados inicialmente para elas conduciucausou amoitas miúdo aveces problemas de compatibilidade e á capacidade de mantemento do código. As linguaxes orientadas a obxectos "puros", por outra banda, carecían das características das cales moitos programadores viñeran a depender. Para saltar este obstáculo, fixéronse moitas tentativas para crear novas linguaxes baseadas en métodos orientados a obxectos, pero permitindo algunhas características imperativas de xeitos "seguros". OA [[Linguaxe de programación Eiffel|Eiffel]] de Bertrand Meyer foi ununha temperán e moderadamente acertada linguaxe con eses obxectivos pero agora foi esencialmente substituído por [[Xava (linguaxe de programación)|Xava]], en gran parte debido á aparición de [[Internet]], e á implementación da máquina virtual de Xava na maioría de [[navegadores]]. [[PHP]] na súa versión 5 foise modificando e soporta unha orientación completa a obxectos, cumprindo todas as características propias da orientación a obxectos.
 
== Conceptos fundamentais ==
Usuario anónimo