97 lines
3.0 KiB
Python
97 lines
3.0 KiB
Python
|
"""
|
||
|
Caracteristicas:
|
||
|
TODO es un objeto
|
||
|
Tipado Dinamico
|
||
|
°Menor Acoplamiento, facilita realizar cambios en los modelos
|
||
|
°Permite mejor aprovechamiento del polimorfismo
|
||
|
Es meta-circular
|
||
|
° Permite hacer meta-programación
|
||
|
|
||
|
|
||
|
PROGRAMA(POO)
|
||
|
Objetos que colaboran enter si enviandose mensajes
|
||
|
Los obejtos son creados mediante clases.
|
||
|
Las clases son objetos que representan conceptos o ideas del dominio del problema.
|
||
|
Las clases definen el msj q sabe el responder objeto.
|
||
|
Los obejtos son conocidos por los mensajes q saben responder.
|
||
|
|
||
|
METODOS
|
||
|
Son objetos que representan un conjunto de colaboraciones
|
||
|
|
||
|
En las clases se definen 2 tipos de metodos
|
||
|
METODOS DE INSTANCIA
|
||
|
Son metodos que implementan los mensajes que se envian a los obj q son instancias de una clase
|
||
|
METODOS DE CLASE
|
||
|
Son metodos que implementan los mensajes q sen envian a la clase
|
||
|
|
||
|
EXISTEN 2 implementaciones de POO
|
||
|
|
||
|
Prototipos:
|
||
|
- Un objeto ejemplar que representa el comportamiento de un conjunto de obetos similares
|
||
|
|
||
|
Clases:
|
||
|
- Una clases es un onjeto que representa un concepto o idea del dominio del problema
|
||
|
|
||
|
|
||
|
|
||
|
La SUBCLASIFICACION o HERENCIA: es una herramienta para organizar el conocimiento en ontologías
|
||
|
|
||
|
La CLASIFICACION es:
|
||
|
1- Una relacion estatica entre clases.
|
||
|
2- Obliga a tener una clase y por lo tanto su nombre antes del obejto concreo, antinatural.
|
||
|
3- Obliga a generealizar cuadno aun no se posee el conocimiento total de aquello q representa
|
||
|
|
||
|
La SUBCLASIFICACION ( HERENCIA )
|
||
|
1- Debe ser especificada de manera inversa a como se obtiene el conociento
|
||
|
2- Rompe el encapsulamiento, puesto que la subclase debe conocer la implementacion de la superclase
|
||
|
|
||
|
|
||
|
POLIMORFISMO
|
||
|
Dos o mas objeto son polimorficos entre si para un conjunto de mensajes, si responden a dicho
|
||
|
conjunto de mensajes semanticamente igual,es decir, que hacen lo mismo. Recibir objetos
|
||
|
polimorficos y devolver objetos polimorficos
|
||
|
|
||
|
Un método es un objeto que representa un conjunto e colaboraciones.
|
||
|
|
||
|
La reclación de conocimiento es la única relación que existe entre los objetos.
|
||
|
|
||
|
La definición de tipo en el POO es que es un conjunyo de mensajes.
|
||
|
|
||
|
MULTIPARADIGMA, FUNCIONAL e IMPERATIVO además de POO.
|
||
|
|
||
|
Todo es un objeto, es dinamicamente tipado, se puede utlizar al máximo el polimorfismo.
|
||
|
|
||
|
Se puede hacer metaprogramación.
|
||
|
"""
|
||
|
|
||
|
" Ejemplificación de polimorfismo "
|
||
|
|
||
|
import math
|
||
|
|
||
|
# Los enteros y los decimales son polimórficos respecto a la suma
|
||
|
print(
|
||
|
4 + 6,
|
||
|
4.5 + 5.7,
|
||
|
)
|
||
|
# Los enteros y decimales son polimórficos respecto a la resta
|
||
|
print(
|
||
|
4 - 3,
|
||
|
8.5 - 5.7,
|
||
|
)
|
||
|
# Los enteros y decimales son polimórficos respecto a la multiplicación
|
||
|
print(
|
||
|
4 * 3,
|
||
|
8.5 * 5.7,
|
||
|
)
|
||
|
# Pero los enteros no son polimórficos respecto a la funcion factorial
|
||
|
print(
|
||
|
math.factorial(4), # 24
|
||
|
#math.factorial(4.5), # ValueError
|
||
|
)
|
||
|
|
||
|
|
||
|
class ClassA(object):
|
||
|
def m1(self, a, b):
|
||
|
return a + b
|
||
|
|