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

m
Bot:Eliminando espazos nas cabeceiras
m (BotMaiúsculas nas inclusións de modelos)
m (Bot:Eliminando espazos nas cabeceiras)
A '''Programación Orientada a Obxectos (POO ou [[:en:OOP|OOP]]''' segundo os seus [[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 computadora. Está baseado en varias técnicas, incluíndo herdanza, modularidad, polimorfismo, e encapsulamiento. 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.
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 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órmase, 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.
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 destas características ás linguaxes que non foron deseñados inicialmente para elas conduciu a miúdo a 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". O [[Linguaxe de programación Eiffel|Eiffel]] de Bertrand Meyer foi un 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 ==
 
A programación orientada a obxectos é unha nova forma de programar que trata de atopar unha solución a estes problemas. Introduce novos conceptos, que superan e amplían conceptos antigos xa coñecidos. Entre eles destacan os seguintes:
En comparación cunha linguaxe imperativa, unha "variable", non é máis que un colector interno do atributo do obxecto ou dun estado interno, así como a "función" é un procedemento interno do método do obxecto.
 
== Características da POO ==
 
Hai un certo desacordo sobre exactamente que características dun método de programación ou linguaxe defínenlle como "orientado a obxectos", pero hai un consenso xeral en que as características seguintes son as máis importantes (para máis información, seguir enlácelos respectivos):
*'''[[Herdanza (programación orientada a obxectos)|Herdanza]]''': as clases non están illadas, senón que se relacionan entre si, formando unha xerarquía de clasificación. Os obxectos herdan as propiedades e o comportamento de todas as clases ás que pertencen. A herdanza organiza e facilita o polimorfismo e o encapsulamiento permitindo aos obxectos ser definidos e creados como tipos especializados de obxectos preexistentes. Estes poden compartir (e estender) o seu comportamento sen ter que reimplementar o seu comportamento. Isto adoita facerse habitualmente agrupando os obxectos en ''clases'' e estas en ''árbores'' ou ''enrejados'' que reflicten un comportamento común. Cando un obxecto herda de máis dunha clase dise que hai ''herdanza múltiple''; esta característica non está soportada por algunhas linguaxes (como Xava).
 
== Linguaxes orientadas a obxectos ==
 
Entre as linguaxes orientadas a obxectos destacan os seguintes:
67.216

edicións