Programación Orientada a Objetos en Python

Documentos relacionados
PROGRAMACION ORIENTADA A OBJETOS EN C++

Programación Orientada a Objetos (POO)

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

MANUAL DE RUBY (PARTE V) Luis José Sánchez González

Computación Avanzada Clase 3. Mauricio Hidalgo Barrientos

Derechos de Acceso: COMPOSICION

La sintaxis básica para definir una clase es la que a continuación se muestra:

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

Guía práctica de estudio 04: Clases y objetos

Python: Programación Orientada. JESSE PADILLA AGUDELO Ingeniero Electrónico

La Herencia: Teoría (1)

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Informática I para Bachillerato

Programación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia

Curso de Java POO: Programación orientada a objetos

Aplicaciones de Escritorio

20483 Programación en C#

Diseño Basado en Componentes. Curso 2008 / 09

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Tema: Clases y Objetos en C#. Parte II.

Modulo 11. Clases y Objetos en Java

b) Qué tipo de variable son las de la línea 6? Cuál es su visibilidad? Explique su

Capítulo 16. Diagrama de Clases UML

Las clases como tipos de datos definidos por el usuario

ESCUELA DE INFORMÁTICA

Curso de Python Inicial

Polimorfismo. Métodos virtuales

Procesamiento de documentos XML.

Conversión entre Tipos

MANUAL DE USUARIO PYTHON-PROYECTO: BOLICHE INDICE DESCRIPCIÓN DEL PROGRAMA

Introducción a la programación orientada a objetos con Python

Las redes semánticas intentan trasladar esa afirmación a un formalismo Una red semántica será un grafo donde:

Capítulo 7. Introducción a las Interfaces Gráficas de usuario. Continuar

1

JAVA 7 Los fundamentos del lenguaje Java

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Evaluación Diagnóstico puesta en común. Escuela Técnica ORT - TIC

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui

Bloque temático: Sistemas de Reconocimiento de Patrones

Lenguaje de programación con JAVA

Introducción a procedimientos, listados y comando For each

Unidad Nº V Listas Enlazadas

Reporting (objeto Query)

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

PRÁCTICA No 4 POO Encapsulación. El alumno conocerá los principios de la encapsulación, y el uso de constructores para la inicialización de datos

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Funciones como Subprogramas en C++

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Relación entre clases. Ejemplo de Clase: Punto !

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

Curso Fundamentos de Informática Lección 7. Programación Orientada a Objetos

Universidad Salesiana de Bolivia

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

Los diagramas de clases y de objetos sirven para modelar diversos aspectos estructurales o estáticos de un sistema: Modelado - Vocabulario del Sistema

Tipos de datos estructurados

Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico

Guía práctica de estudio 03: Algoritmos

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

Lenguaje de Programación

Tema: Entorno a C# y Estructuras Secuenciales.

PLANIFICACION DE ALGORITMOS Y PROGRAMACION

Diagrama de Clases. Ingeniería de Software Andrés Felipe Muñetón Escuela de Sistemas Universidad Nacional de Colombia Sede Medellín

Manual de turbo pascal

Conceptos más avanzados de Programación Orientada a Objetos

Introducción a la Orientación a Objetos

LÓGICA DE PROGRAMACIÓN

BASES DE DATOS TEMA 2 MODELOS DE DATOS

Representación del Conocimiento Otros formalismos. Licenciatura en Ciencias de la Computación. Introducción a la Inteligencia Artificial.

SIMULACIÓN DE PROCESOS INDUSTRIALES SOFTWARE ARENA INTRODUCCION

CLAVE ASIGNATURA REQUISITOS HORA/SEMANA CREDITOS TI-8 PROGRAMACION II 80% DE ASISTENCIA 4 6

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz

Clases en C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Algoritmos y Programación II. Enero de 2005

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.

Programación estructurada (Introducción a lenguaje C)

INTRODUCCION A LA PROGRAMACION EN JAVA

INFORMÁTICA Y COMUNICACIONES

Algoritmos y Programas

CLA. Diagramas de clases en Métrica V3

Microsoft Word. Microsoft Word 2013 SALOMÓN CCANCE. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Construir una Interfaz Gráfica

TEMA 3: El proceso de compilación, del código fuente al código máquina

PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype

Aspectos de los LP. Diseño de compiladores. Estático vs. Dinámico. Estático vs. Dinámico. Scope. Scope 24/03/2015

Herramientas de Programación. M.C. Juan Carlos Olivares Rojas

Introducción a Java LSUB. 30 de enero de 2013 GSYC

PROGRAMA INSTRUCCIONAL

PROTOCOLO IP. Vicente Sánchez Patón. I.E.S Gregorio Prieto. Tema 1 SRI

MICROSOFT EXCEL 2010

MICROSOFT EXCEL MICROSOFT EXCEL Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

Tema 3. Aplicaciones de Tipo Consola

Transcripción:

Programación Orientada a Objetos en Python La programación orientada a objetos nos propone un paradigma de programación. Paradigma: teoría cuyo núcleo central [...] suministra la base y modelo para resolver problemas [...] (Definición de la Real Academia Española, vigésimo tercera edición) Los elementos de la POO, pueden entenderse como los materiales que necesitamos para diseñar y programar un sistema, mientras que las características, podrían asumirse como las herramientas de las cuáles disponemos para construir el sistema con esos materiales. Clases Las clases surgen de la generalización de los tipos de datos y permiten una representación más directa para la modelización de un problema permitiendo definir nuevos tipos al usuario. Las clases permiten agrupar en un nuevo tipo los datos y las funcionalidades asociadas a dichos datos, favoreciendo la separación entre los detalles de la implementación de las propiedades esenciales para su uso. A esta cualidad, de no mostrar más que la información relevante, ocultando el estado y los métodos internos de la clase, es conocida como encapsulación, y es un principio heredado de la programación modular. Las clases son los modelos sobre los cuáles se construirán nuestros objetos. Podemos tomar como ejemplo de clases, el gráfico que hicimos en la página 8 de este documento. En Python, una clase se define con la instrucción class seguida de un nombre genérico para el objeto. En python, el esquema para la definición de una clase es el siguiente: class NombreClase: <instrucción_1>... <instrucción_n> En donde class es una palabra reservada que indica la declaración de una clase, NombreClase una etiqueta que da nombre a la clase y, los dos puntos, que señalan el inicio del bloque de instrucciones de la clase.

class Objeto: class Antena: class Pelo: class Ojo: Propiedades Las propiedades, como hemos visto antes, son las características intrínsecas del objeto. Éstas, se representan a modo de variables, solo que técnicamente, pasan a denominarse propiedades: class Antena(): longitud = "" class Pelo(): textura = "" class Ojo(): forma = "" tamanio = ""

class Objeto(): tamanio = "" aspecto = "" antenas = Antena() # propiedad compuesta por el objeto objeto Antena ojos = Ojo() pelos = Pelo() # propiedad compuesta por el objeto objeto Ojo # propiedad compuesta por el objeto objeto Pelo Métodos Los métodos son funciones (como las que vimos en el capítulo anterior), solo que técnicamente se denominan métodos, y representan acciones propias que puede realizar el objeto (y no otro): class Objeto(): color = "verde" tamanio = "grande" aspecto = "feo" antenas = Antena() ojos = Ojo() pelos = Pelo() def flotar(self): Objeto

Las clases por sí mismas, no son más que modelos que nos servirán para crear objetos en concreto. Podemos decir que una clase, es el razonamiento abstracto de un objeto, mientras que el objeto, es su materialización. A la acción de crear objetos, se la denomina instanciar una clase y dicha instancia, consiste en asignar la clase, como valor a una variable: class Objeto(): color = "verde" tamanio = "grande" aspecto = "feo" antenas = Antena() ojos = Ojo() pelos = Pelo() def flotar(self): print 1 et = Objeto() print et.color print et.tamanio print et.aspecto et.color = "rosa" print et.color Herencia: característica principal de la POO Como comentamos en el título anterior, algunos objetos comparten las mismas propiedades y métodos que otro objeto, y además agregan nuevas propiedades y métodos. A esto se lo denomina herencia: una clase que hereda de otra. Vale aclarar, que en Python, cuando una clase no hereda de ninguna otra, debe hacerse heredar de object, que es la clase principal de Python, que define un objeto.

class Antena(object): longitud = "" class Pelo(object): textura = "" class Ojo(object): forma = "" tamanio = "" class Objeto(object): tamanio = "" aspecto = "" antenas = Antena() ojos = Ojo() pelos = Pelo() def flotar(self): class Dedo(object): longitud = ""

forma = "" class Pie(object): forma = "" dedos = Dedo() # NuevoObjeto sí hereda de otra clase: Objeto class NuevoObjeto(Objeto): pie = Pie() def saltar(self): Accediendo a los métodos y propiedades de un objeto Una vez creado un objeto, es decir, una vez hecha la instancia de clase, es posible acceder a sus métodos y propiedades. Para ello, Python utiliza una sintaxis muy simple: el nombre del objeto, seguido de punto y la propiedad o método al cuál se desea acceder: objeto = MiClase() print objeto.propiedad objeto.otra_propiedad = "Nuevo valor" variable = objeto.metodo() print variable print objeto.otro_metodo() Función init

La función init que posee python. Esta función siempre se ejecuta cuando se crea un objeto. Ahora mostraremos como es la estructura de una clase y como funciona lo que hemos explicado 1 3 4 5 6 class A: def init (self): print 'me ejecuto primero' def funcion(self): print 'soy una funcion.!!' Ya tenemos la clase A donde hemos declarado dos funciones las cuales son opcionales. Ahora veremos que sucede cuando creamos una instancia de esta clase. Cabe resaltar que que una instancia es un objeto. 1 instancia = A() # me ejecuto primero Al crear la instancia de la clase A visualizamos que se ejecuta automáticamente el init y por ende se visualiza en la consola el texto me ejecuto primero. Si imprimimos la instancia por si sola. Se mostrará la clase a la cual pertenece dicha instancia y donde se encuentra almacenado en memoria. 1 print instancia # < main.a instance at 0x7f5941030> Ahora que tenemos la instancia somos capaces de llamar a las funciones que pertenecen a esta clase.

1 instancia.funcion() soy una funcion.!! Ahora procedamos a crear la clase Gato. Esta función gato tendrá el atributo energía y hambre para hacerlo más interesante. 1 3 4 5 6 7 8 9 10 11 1 13 14 15 16 17 18 19 0 1 3 4 class Gato: def init (self, energia, hambre): self.energia = energia self.hambre = hambre print 'Se creo un gato' def tomar_leche(self, leche_en_litros): self.hambre += leche_en_litros print 'el gato toma su leche' def acariciar(self): print 'prrrrr...' def jugar(self): if self.energia <= 0 or self.hambre <=1: print 'el gato no quiero jugar' else: self.energia -=1 self.hambre -= print 'al gato le encanta jugar' def dormir(self, horas): self.energia += horas print 'el gato tomo una siesta' Gracias al atributo self es posible utilizar las variables declaradas en init dentro de toda la clase.

Referencias: http://frontendlabs.io/1305--tutorial-basico-de-python-parte-iv-programacionorientada-a-objetos http://blog.rvburke.com/006/11//programacion-orientada-a-objetos-enpython/comment-page-1/ https://librosweb.es/libro/python/capitulo_5/programacion_orientada_a_objetos.htm l https://librosweb.es/libro/python/capitulo_6/metodos_de_formato.html