Diferencia entre revisiones de «Plantilla:PHP/ConceptosBasicos»

De WikiEducator
Saltar a: navegación, buscar
(Programación orientada a objetos)
(Elementos en la Programación Orientada a Objetos)
 
(15 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
<div class="slide">
+
===Conceptos básicos de la Programación Orientada a Objetos (OOP o POO)===
===Programación orientada a objetos===
+
 
*En programación ''el paradigma imperativo'' está basado en '''funciones y datos'''.  
+
=== Conceptos básicos de la Programación Orientada a Objetos (OOP o POO) ===
*''El paradigma orientado a objetos'' está basado en '''Objetos'''.
+
 
*Los '''objetos''' son el elemento básico y central de ''la programación orientada a objetos (OOP) o (POO)''.
+
==== OOP vs. Programación estructurada ====
*Podemos hablar de ''universo de discurso'' como el sistema que queremos automatizar por software
+
 
*Un '''Objeto''' es una entidad (concreta o abstracta) que presenta una actividad en un entorno concreto, en un determinado universo de discurso.
+
*La '''programación orientada a objetos (POO)''' surge como una evolución de la programación estructurada. 
<br/>
+
*Busca modelar los problemas del mundo real utilizando objetos que combinan '''datos''' y '''comportamientos'''.
</div>
+
 
<!--1 -->
+
 
<div class="slide">
+
* En programación, ''el paradigma imperativo'' se basa en '''funciones y datos'''.
{{MRM_Definicion| '''Objeto''' Cada elemento activo que identificamos dentro de un determinado universo de discurso.
+
* ''El paradigma orientado a objetos'' se basa en '''objetos'''.
;Serán nuestros componentes software para ensamblar nuestros programas
+
* Los '''objetos''' son el elemento básico y central de la '''programación orientada a objetos (OOP o POO)'''.
 +
{{Nota|Cada objeto en el programa representa algo del mundo real: 
 +
una persona, una cuenta bancaria, un pedido, una factura, etc.}}
 +
 
 +
* Podemos hablar de un '''universo de discurso''', entendido como el sistema que queremos automatizar mediante software
 +
* Un '''objeto''' es una entidad (concreta o abstracta) que desarrolla una actividad en un entorno determinado, dentro de un universo de discurso específico.
 +
 
 +
{{MRM_Definicion|
 +
'''Objeto:''' cada elemento activo que identificamos dentro de un determinado universo de discurso.
 +
;Serán nuestros componentes ''software'' para construir y ensamblar nuestros programas.
 
}}
 
}}
</div>
+
 
<!--1 -->
+
<div class="slide">
+
 
{{MRM_Ejemplo|
 
{{MRM_Ejemplo|
;En un banco hay cuentas bancarias (objeto)
+
;En un banco hay cuentas bancarias (objeto)
:Las cuentas bancarias se identifican con un número y un titular (nombre, apellido y dni) '''''atributos'''''
+
:Las cuentas bancarias se identifican con un número y un titular (nombre, apellidos y DNI) '''''atributos'''''
:Las cuentas se pueden dar de alta, de baja, hacer extracciones e ingresos y transferencias... '''''métodos'''''
+
:Las cuentas pueden darse de alta o de baja, hacer extracciones, ingresos y transferencias '''''métodos'''''.
 
}}
 
}}
 +
 
{{MRM_Ejemplo|
 
{{MRM_Ejemplo|
 
;En la gestión de una empresa, a nivel de información tenemos:
 
;En la gestión de una empresa, a nivel de información tenemos:
*Empleados
+
* Empleados
*Nómigas
+
* Nóminas 
*Base de datos
+
* Bases de datos
*Proveedores
+
* Proveedores
*Facturas
+
* Facturas
*Pedidos
+
* Pedidos
[[Archivo:UNIVERSO_DISCUROS_OBJETOS.png]]
+
[[Archivo:UNIVERSO_DISCUROS_OBJETOS.png|500px]]
 
}}
 
}}
  
</div>
+
{{MRM_Ejemplo|Title=Comparativa con la aplicación del juego Mastermind|
 +
[[Archivo:comparativa_oo_estructurado.png|center|600px]]
 +
}}
 +
 
 +
* Puede parecer una forma más compleja de programar, pero en realidad es una manera de '''dividir la naturaleza del problema''' en '''unidades independientes''' que pueden interactuar entre sí. 
 +
* Cada una de ellas tendrá una '''identidad propia''', definida por los valores de sus '''atributos'''. 
 +
* Cada una tendrá también un '''comportamiento concreto''', es decir, lo que sabe hacer y que el resto del programa o de los objetos podrá utilizar.
 +
 
 +
 
 
<!--1 -->
 
<!--1 -->
<div class="slide">
 
<br />
 
*Puede parecer una forma más complicada de programar, pero es una manera de dividir la naturaleza del problema que estamos estudiando en unidades independientes que pueden  interactúar entre ellas.
 
*Cada una de ellas va a tener una identidad propia asignando valores a sus atributos
 
*Cada una de ellas va a tener un comportamiento concreto que va a ser lo que sabe hacer para que los demás o el programa principal lo utilice
 
<!--1 -->
 
</div>
 
<!--1 -->
 
<div class="slide">
 
  
===Elementos en la programación orientada a objetos===
+
=== Elementos en la Programación Orientada a Objetos ===
*De lo dicho anteriormente deducimos que tenemos dos elementos:
+
 
#Los '''''atributos''''' o características de la clase.
+
* De lo dicho anteriormente deducimos que en la POO tenemos dos elementos fundamentales:
#Los '''''métodos''''' o comportamiento de la clase .
+
# Los '''''atributos''''' o características de la clase.
*Para crear objetos, previamente hay que '''definir su estructura'''.
+
# Los '''''métodos''''' o comportamientos de la clase.
*La definición de la estructura '''(atributos y métodos )''' de componentes software se llama '''''clase '''''
+
 
 +
* Para crear objetos, previamente hay que '''definir su estructura'''.
 +
* La definición de la estructura '''(atributos y métodos)''' de los componentes ''software'' se denomina '''''clase'''''.
 +
 
 
{{MRM_Definicion|Title=Clase|
 
{{MRM_Definicion|Title=Clase|
;La descripción y especificación de componentes software para su posterior uso en los programas
+
;La descripción y especificación de los componentes ''software'' para su posterior uso en los programas
*'''Una clase''' es la estructura de un tipo concreto de objetos.
+
* '''Una clase''' es la estructura o plantilla que define un tipo concreto de objetos.
*'''Los objetos''' son elementos concretos en mi sistema. Instancias de la clase en memoria para ser usadas por un programa
+
* '''Los objetos''' son elementos concretos de mi sistema: instancias de esa clase, cargadas en memoria para ser utilizadas por un programa.
 
}}
 
}}
</div>
+
 
<!--1 -->
+
<div class="slide">
+
 
;Elementos de la POO
 
;Elementos de la POO
{{MRM_Definicion| Title= Atributo|
 
*Son las características o datos de un objeto.
 
*Sus valores nos da el estado de un objeto en un momento dado.
 
*Normalmente al instanciar un objeto en memoria lo primero que hacemos es dar valores a sus atributos
 
*Es recomendado que los atributos entén encapsulados solo al objeto (privados)
 
}}
 
  
 +
{{MRM_Definicion|Title=Atributo|
 +
* Son las características o datos de un objeto. 
 +
* Sus valores determinan el '''estado''' del objeto en un momento dado. 
 +
* Normalmente, al instanciar un objeto en memoria, lo primero que hacemos es asignar valores a sus atributos. 
 +
* Es recomendable que los atributos estén '''encapsulados''', es decir, que sólo sean accesibles dentro del propio objeto (''privados'').
 +
}}
  
</div>
+
{{MRM_Definicion|Title=Método|
<!--1 -->
+
* Especifican el '''comportamiento''' de los objetos.
<div class="slide">
+
* Permiten modificar o conocer el estado de un objeto mediante '''''métodos getter y setter'''''.
;Elementos de la POO
+
* Permiten que un objeto realice acciones dentro del sistema y se comunique con otros objetos.
{{MRM_Definicion| Title= Métodos|
+
* '''''Los métodos''''' representan las acciones que el objeto sabe hacer, los '''''servicios''''' que ofrece al sistema. 
*Especifican el '''comportamiento''' de los ''objetos''.
+
* También pueden incluir acciones internas que facilitan el funcionamiento del propio objeto
*Permiten modificar y conocer el estado de un objetos '''''(métodos getter and setter)'''''.
+
* En PHP, los métodos se definen dentro de la clase y se invocan mediante el operador '''->'''.
*Permiten que un objeto haga cosas en el sistema ''(comunicación entre objetos)'' .
+
*'''''Los métodos''''' son las acciones que el objeto sabe hacer, '''''servicios''''' que ofrece
+
*También son las acciones internas para  facilitar las acciones al objeto
+
 
}}
 
}}
  
 
[[Archivo:clase.png|300px]]
 
[[Archivo:clase.png|300px]]
</div>
 
<!--1 -->
 
<div class="slide">
 

Última revisión de 19:42 5 nov 2025

Conceptos básicos de la Programación Orientada a Objetos (OOP o POO)

Conceptos básicos de la Programación Orientada a Objetos (OOP o POO)

OOP vs. Programación estructurada

  • La programación orientada a objetos (POO) surge como una evolución de la programación estructurada.
  • Busca modelar los problemas del mundo real utilizando objetos que combinan datos y comportamientos.


  • En programación, el paradigma imperativo se basa en funciones y datos.
  • El paradigma orientado a objetos se basa en objetos.
  • Los objetos son el elemento básico y central de la programación orientada a objetos (OOP o POO).

(Comment.gif: Cada objeto en el programa representa algo del mundo real: una persona, una cuenta bancaria, un pedido, una factura, etc.)



  • Podemos hablar de un universo de discurso, entendido como el sistema que queremos automatizar mediante software.
  • Un objeto es una entidad (concreta o abstracta) que desarrolla una actividad en un entorno determinado, dentro de un universo de discurso específico.



Icon define.gif
Definición

Objeto: cada elemento activo que identificamos dentro de un determinado universo de discurso.

Serán nuestros componentes software para construir y ensamblar nuestros programas.




Icon casestudy.gif
Ejemplo
En un banco hay cuentas bancarias (objeto)
Las cuentas bancarias se identifican con un número y un titular (nombre, apellidos y DNI) → atributos.
Las cuentas pueden darse de alta o de baja, hacer extracciones, ingresos y transferencias → métodos.




Icon casestudy.gif
Ejemplo
En la gestión de una empresa, a nivel de información tenemos
  • Empleados
  • Nóminas
  • Bases de datos
  • Proveedores
  • Facturas
  • Pedidos

UNIVERSO DISCUROS OBJETOS.png




Icon casestudy.gif
Comparativa con la aplicación del juego Mastermind
Comparativa oo estructurado.png



  • Puede parecer una forma más compleja de programar, pero en realidad es una manera de dividir la naturaleza del problema en unidades independientes que pueden interactuar entre sí.
  • Cada una de ellas tendrá una identidad propia, definida por los valores de sus atributos.
  • Cada una tendrá también un comportamiento concreto, es decir, lo que sabe hacer y que el resto del programa o de los objetos podrá utilizar.


Elementos en la Programación Orientada a Objetos

  • De lo dicho anteriormente deducimos que en la POO tenemos dos elementos fundamentales:
  1. Los atributos o características de la clase.
  2. Los métodos o comportamientos de la clase.
  • Para crear objetos, previamente hay que definir su estructura.
  • La definición de la estructura (atributos y métodos) de los componentes software se denomina clase.



Icon define.gif
Clase
La descripción y especificación de los componentes software para su posterior uso en los programas.
  • Una clase es la estructura o plantilla que define un tipo concreto de objetos.
  • Los objetos son elementos concretos de mi sistema: instancias de esa clase, cargadas en memoria para ser utilizadas por un programa.


Elementos de la POO



Icon define.gif
Atributo
  • Son las características o datos de un objeto.
  • Sus valores determinan el estado del objeto en un momento dado.
  • Normalmente, al instanciar un objeto en memoria, lo primero que hacemos es asignar valores a sus atributos.
  • Es recomendable que los atributos estén encapsulados, es decir, que sólo sean accesibles dentro del propio objeto (privados).




Icon define.gif
Método
  • Especifican el comportamiento de los objetos.
  • Permiten modificar o conocer el estado de un objeto mediante métodos getter y setter.
  • Permiten que un objeto realice acciones dentro del sistema y se comunique con otros objetos.
  • Los métodos representan las acciones que el objeto sabe hacer, los servicios que ofrece al sistema.
  • También pueden incluir acciones internas que facilitan el funcionamiento del propio objeto.
  • En PHP, los métodos se definen dentro de la clase y se invocan mediante el operador ->.


Clase.png