0% encontró este documento útil (0 votos)
82 vistas12 páginas

Lenguaje de Programacion 3 PDF

Este documento describe conceptos básicos de programación orientada a objetos como clases, objetos, atributos y métodos. Explica que una clase define las características y comportamientos comunes a objetos de un mismo tipo, y que un objeto es una instancia de una clase. También define atributos como características individuales de un objeto y métodos como su comportamiento.

Cargado por

andres hernandez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
82 vistas12 páginas

Lenguaje de Programacion 3 PDF

Este documento describe conceptos básicos de programación orientada a objetos como clases, objetos, atributos y métodos. Explica que una clase define las características y comportamientos comunes a objetos de un mismo tipo, y que un objeto es una instancia de una clase. También define atributos como características individuales de un objeto y métodos como su comportamiento.

Cargado por

andres hernandez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 12

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA


FUERZAS ARMADAS NACIONAL BOLIVARIANA

UNE FA –NÚCLEO SAN-TOME

Programación Orientada a
Objetos

Profesora: Alumno:

José González Josue Hernández

ci:28264136

Ing.-sistemas 6to semestre


introducción
Como una Pequeña introducción de la Programación Orientada a Objetos decimos que esta
ha tomado las mejores representaciones de la programación estructurada y los ha acoplado
con varios conceptos nuevos y potentes que inducen a contemplar las actividades de
programación desde un nuevo punto de vista.

Permite descomponer más cómodamente un problema en subgrupos de partes relacionadas


del problema. Entonces, utilizando el lenguaje se pueden interpretar estos subgrupos a
unidades auto contenidas llamadas objetos. El término Programación Orientada a Objetos
(POO), hoy en día considerablemente utilizado, es difícil de definir, ya que no es una opinión
nueva, sino que ha sido el progreso de técnicas de programación desde los inicios de la
década de los setenta, aunque sea en la década de los noventa cuando ha incrementado su
difusión, uso y popularidad. No obstante, se puede definir POO como una técnica o manera
de programación que utiliza objetos como bloque esencial de construcción. Un objeto es una
unidad que incluye datos y las funciones que operan sobre esos datos.
Qués es la POO ?
La programación orientada a objetos es una de las formas más populares de programar y
viene teniendo gran acogida en el desarrollo de proyectos de software desde los últimos
años. Esta acogida se debe a sus grandes capacidades y ventajas frente a las antiguas
formas de programar. Es un paradigma que utiliza objetos como elementos fundamentales en
la construcción de la solución. Surge en los años 70. Un objeto es una abstracción de algún
hecho o ente del mundo real que tiene atributos que representan sus características o
propiedades y métodos que representan su comportamiento o acciones que realizan. Todas
las propiedades y métodos comunes a los objetos se encapsulan o se agrupan en clases.
Una clase es una plantilla o un prototipo para crear objetos; por eso se dice que los objetos
son instancias de clases. Hoy en día la tecnología orientada a objetos ya no se aplica
solamente a los lenguajes de programación, además se viene aplicando en el análisis y
diseño con mucho éxito, al igual que en las bases de datos. Es que para hacer una buena
programación orientada a objetos hay que desarrollar todo el sistema aplicando esta
tecnología, de ahí la importancia del análisis y el diseño orientado a objetos.

Características de la POO
Existe un acuerdo acerca de qué características contempla la "orientación a objetos", las
características siguientes son las más importantes:

Abstracción
Denota las características esenciales de un objeto, donde se capturan sus
comportamientos.Cada objeto en el sistema sirve como modelo de un "agente" abstracto que
puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el
sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o
los métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son
requeridas para ampliar una abstracción.

Encapsulamiento
Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma
entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los
componentes del sistema. Algunos autores confunden este concepto con el principio de
ocultación, principalmente porque se suelen emplear conjuntamente.
Principio de ocultación
Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una
interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase.
El aislamiento protege a las propiedades de un objeto contra su modificación por quien no
tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden
acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de
un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones
inesperadas.

Polimorfismo
Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo
nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto
que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos
pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una
referencia producirá el comportamiento correcto para el tipo real del objeto referenciado.

Herencia
Las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de
clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a
las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento
permitiendo a los objetos ser definidos y creados como tipos especializados de objetos
preexistentes.

Recolección de basura
La recolección de basura o garbage collector es la técnica por la cual el entorno de objetos
se encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los
objetos que hayan quedado sin ninguna referencia a ellos.

Clase
Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La
instalación es la lectura de estas definiciones y la creación de un objeto a partir de ellas.

En el mundo real, normalmente tenemos muchos objetos del mismo tipo. Por ejemplo,
nuestro teléfono celular es sólo uno de los miles que hay en el mundo. Si hablamos en
términos de la programación orientada a objetos, podemos decir que nuestro objeto celular
es una instancia de una clase conocida como "celular". Los celulares tienen características
(marca, modelo, sistema operativo, pantalla, teclado, etc.) y comportamientos (hacer y recibir
llamadas, enviar mensajes multimedia, transmisión de datos, etc.).
Cuando se fabrican los celulares, los fabricantes aprovechan el hecho de que los celulares
comparten esas características comunes y construyen modelos o plantillas comunes, para
que a partir de esas se puedan crear muchos equipos celulares del mismo modelo. A ese
modelo o plantilla le llamamos CLASE, y a los equipos que sacamos a partir de ella la
llamamos OBJETOS.

Esto mismo se aplica a los objetos de software, se puede tener muchos objetos del mismo
tipo y mismas características

Objeto
Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o
funcionalidad (métodos) los mismos que consecuentemente reaccionan a eventos. Se
corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del
sistema (del programa). Es una instancia a una clase.

Por ejemplo, los automóviles tienen características (marca, modelo, color, velocidad máxima,
etc.) y comportamiento (frenar, acelerar, retroceder, llenar combustible, cambiar llantas, etc.).
Los Objetos de Software, al igual que los objetos del mundo real, también tienen
características y comportamientos. Un objeto de software mantiene sus características en
una o más "variables", e implementa su comportamiento con "métodos". Un método es una
función o subrutina asociada a un objeto.

Para redondear estas ideas, imaginemos que tenemos estacionado en nuestra cochera un
Ford Focus color azul que corre hasta 260 km/h. Si pasamos ese objeto del mundo real al
mundo del software, tendremos un objeto Automóvil con sus características predeterminadas:

Marca = Ford
Modelo = Focus
Color = Azul
Velocidad Máxima = 260 km/h

Cuando a las características del objeto le ponemos valores decimos que el objeto tiene
estados. Las variables almacenan los estados de un objeto en un determinado momento.

Atributo

Los atributos son las características individuales que diferencian un objeto de otro y
determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables
denominadas de instancia, y cada objeto particular puede tener valores distintos para estas
variables. Las variables de instancia también denominados miembros dato, son declaradas
en la clase pero sus valores son fijados y cambiados en el objeto. Además de las variables
de instancia hay variables de clase, las cuales se aplican a la clase y a todas sus instancias.
Los atributos constituyen un medio apropiado para asociar información declarativa con
código de C# (tipos, métodos, propiedades, etc.). Después de asociar un atributo a una
entidad del programa, éste se puede consultar en tiempo de ejecución mediante una técnica
denominada reflexión. Existen dos formas de atributos:
•Atributos que se definen en Common Language Runtime (CLR).
•Atributos personalizados que se pueden crear para agregar información adicional al código.
Esta información se puede recuperar después mediante programación.

Métodos
Los métodos describen el comportamiento de los objetos de una clase. Estos representan las
operaciones que se pueden realizar con los objetos de la clase,
La ejecución de un método puede conducir a cambiar el estado del objeto.
Se definen de la misma forma que las funciones normales pero deben declararse dentro de
la clase y su primer argumento siempre referencia a la instancia que la llama, de esta forma
se afirma que los métodos son funciones, adjuntadas a objectos.

Usted puede encontrar ejemplos en las funciones de cadena de

caracteres , listas , diccionarios , etc.

Si el objeto es Persona, los métodos pueden ser: hablar, caminar, comer, dormir, etc.

class Persona:

"""Clase que representa una Persona"""

cedula = "V-13458796"

nombre = "Leonardo"

apellido = "Caballero"

sexo = "M"

def hablar(self, mensaje):


"""Mostrar mensaje de saludo de Persona"""

return mensaje

La única diferencia sintáctica entre la definición de un método y la definición de una función


es que el primer parámetro del método por convención debe ser el nombre self.
Usted puede probar el código anterior, si lo transcribe en el consola interactiva Python como
lo siguiente:

>>> class Persona:

... """Clase que representa una Persona"""

... cedula = "V-13458796"

... nombre = "Leonardo"

... apellido = "Caballero"

... sexo = "M"

...

... def hablar(self, mensaje):

... """Mostrar mensaje de saludo de Persona"""

... return mensaje

...

>>>

>>> macagua = Persona

>>> Persona().hablar("Hola, soy la clase {0}.".format(

... macagua.__name__))
'Hola, soy la clase Persona.'

>>> type(Persona().hablar)

<type 'instancemethod'>

>>> Persona().hablar.__doc__

'Mostrar mensaje de saludo de Persona'

Si crea una instancia de objeto para la clase Persona e intenta llamar al método hablar() esto
lanzara una excepción TypeError, como sucede a continuación:

>>> macagua = Persona

>>> macagua.hablar("Hola Plone")

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: unbound method hablar() must be called with Persona instance as first argument
(got str instance instead)

Esto sucede por...

Por hacer

TODO explicar por que se lanza la excepción TypeError.

Ámbito de los métodos


Los métodos cuentan con un espacio de nombres propio. En caso de no encontrar un
nombre en su ámbito local, buscará en el ámbito superior hasta encontrar alguna
coincidencia.
Los métodos pueden acceder y crear atributos dentro del objeto al que pertenecen,
anteponiendo la palabra self y el operador de atributo ”.” antes del nombre del atributo en
cuestión.
Métodos especiales
Las clases en Python cuentan con múltiples métodos especiales, los cuales se encuentran
entre dobles guiones bajos __<metodo>__().
Los métodos especiales más utilizados son __init__(), __str__() y __del__().

9.3.4.2.1. __str__()
El método __str__() es un método especial, el cual se ejecuta al momento en el cual un
objeto se manda a mostrar, es decir es una cadena representativa de la clase, la cual puede
incluir formatos personalizados de presentación del mismo.

def __str__(self):

"""Devuelve una cadena representativa de Persona"""

return "%s: %s, %s %s, %s." % (

self.__doc__[25:34], str(self.cedula), self.nombre,

self.apellido, self.getGenero(self.sexo))

9.3.4.2.2. __del__()
El método __del__() es un método especial, el cual se ejecuta al momento en el cual un
objeto es descartado por el intérprete. El comportamiento de __del__() es muy similar a los
“destructores” en otros lenguajes.

Métodos de clase
En ocasiones es necesario contar con métodos que interactúen con elementos de la clase de
la cual el objeto es instanciado. Python permite definir métodos de clase para esto.
Los métodos de clase son aquellos que están ligados directamente con los atributos
definidos en la clase que los contiene. Para definir un método de clase se utiliza el
decorador @classmethod y por convención se utiliza cls como argumento inicial en lugar
de self.
Del mismo modo, los métodos de clase utilizan el prefijo cls para referirse a los atributos de
la clase.
class <Clase>(object):

...

...

@classmethod

def <metodo>(cls, <argumentos>):

...

...

Métodos estáticos
Los métodos estáticos hacen referencia a las instancias y métodos de una clase. Para definir
un método estático se utiliza el decorador @staticmethod y no utiliza ningún argumento
inicial.
Al no utilizar self, los métodos estáticos no pueden interactuar con los atributos y métodos de
la instancia.
Para referirse a los elementos de la clase, se debe utilizar el nombre de la clase como prefijo.

class <Clase>(object):

...

...

@staticmethod

def <metodo>(<argumentos>):

...

...
Encapsulamiento:
Es el proceso de almacenar en una misma sección los elementos de una abstracción que
constituyen su estructura y su comportamiento; sirve para separar el interfaz contractual de
una abstracción y su implantación.

Conclusión

La programación orientada a objetos permite la optimización del código generado gracias a que
mediante técnicas de herencia, atributos estáticos entre otros permiten, que el código sea genérico de
manera que sea re utilizable. Mediante la técnica aprendida en el presente curso podemos establecer
una solución primitiva de un problema real, tan solo con relacionarlo con objetos lógicos que serán
usados para el desarrollo del software. Podemos dar a conocer de una forma sencilla los mecanismos
que se usan en este nivel de programación, a personas que deseen una explicación rápida y sencilla de
lo que es la programación orientada a objetos. Tenemos los conocimientos necesarios como para
enfrentar un problema real y desarrollo en otro lenguaje de programación, pues concebimos la idea de
que el lenguaje C es la base de la programación. Al trabajar con la programación orientada a objetos
sea esta desarrollada en otras plataformas de programación o en lenguaje C, sabemos las formas de
lograr un mejor rendimiento del equipo a controlar y aplicar soluciones sencillas, de manera que sea
fácilmente digeribles para el usuario y/o destinatario del trabajo final.

También podría gustarte