programacion orientada a objetos

Páginas: 30 (7420 palabras) Publicado: 7 de abril de 2013
1

Unidad 2
Técnicas Básicas de Modelado de Objetos

2.1.- definición de clases, atributos, métodos y objetos
2.2.- El modelo como resultado de la abstracción
2.3.- El UML como herramienta de modelado de objetos
2.4.- Planteamiento del problema
2.5.- Análisis.
2.6.- Introducción al diseño de la solución

Realizado por:
Ing. Jorge Eloy Toledo Coronel

2
2.1.- Definición de Clases,Atributos, Métodos y Objetos.
Clases
El mecanismo de clases de Python añade clases al lenguaje con un mínimo de sintaxis y
semántica nueva. Es una mezcla de los mecanismos de clase de C++ y Modula-3. Como en los
módulos, las clases de Python no ponen una barrera absoluta entre la definición y el usuario,
sino que más bien se fían de la buena educación del usuario para no ``invadir ladefinición''. Se
mantienen las características más importantes con plena potencia. El mecanismo de herencia
de clases permite múltiples clases base, una clase derivada puede redefinir cualquier método
de sus clases base y un método puede llamar a un método de una clase base con el mismo
nombre. Los objetos pueden contener una cantidad arbitraria de datos privados.
En terminología C++, todos losmiembros de la clase (datos incluidos) son públicos y todas las
funciones miembro son virtuales . No hay constructores ni destructores especiales. Como en
Modula-3, no existen abreviaturas para hacer referencia a los miembros del objeto desde sus
propios métodos. La función método se declara con un primer argumento explícito que
representa al objeto y que se proporciona implícitamente al llamar ala función. Como en
Smalltalk, las clases son ellas mismas objetos, aunque en un sentido más amplio de la palabra:
en Python, todos los tipos de datos son objetos. Esto proporciona la semántica para importar y
renombrar. Sin embargo, como en C++ o en Modula3, los tipos internos no pueden ser la clase
base para extensiones del usuario. Además, como en C++ y al contrario de Modula-3, la
mayoríade operadores internos con sintaxis especial (operadores aritméticos, índices, etc.) se
pueden redefinir en las clases.

Unas palabras sobre la terminología
A falta de una terminología universalmente aceptada para hablar de clases, haré uso ocasional
de términos de Smalltalk y C++ (haría uso de términos de Modula-3, ya que la semántica
orientada al objeto es más cercana a Python que la deC++, pero no espero que muchos
lectores la dominen).
También he notado que hay un agujero en la terminología de los lectores orientados a objetos:
La palabra ``objeto'' en Python no significa necesariamente una instancia de una clase. Como
en C++ y en Modula-3, al contrario que en Smalltalk, no todos los tipos son clases: Los tipos
internos, como listas y enteros no lo son, ni siquiera algunostipos más exóticos, como los
ficheros. Sin embargo, todos los tipos de Python comparten algo de semántica común, descrita
adecuadamente mediante la palabra ``objeto''.
Los objetos tienen individualidad. Se pueden asociar múltiples nombres (y en diferentes
ámbitos) al mismo objeto, lo que se conoce como ``generar alias'' en otros lenguajes. Esto no
se aprecia a primera vista en Python y nohace falta tenerlo en cuenta cuando se trata con tipos
inmutables (números, cadenas, tuplas...). Sin embargo los alias tienen un efecto (¡buscado!) en
la semántica del código Python que involucra los objetos mutables, como listas, diccionarios y
la mayoría de los tipos que representan entidades externas al programa (ficheros, ventanas...).
Se suele usar en beneficio del programa, ya que losalias se comportan como punteros en
algunos aspectos. Por ejemplo, pasar un objeto es poco costoso, ya que la implementación
sólo pasa un puntero. Si la función modifica el objeto que pasa como argumento, el que llama a
la función verá los cambios. De este modo se elimina la necesidad de tener los dos
mecanismos de traspaso de argumentos de Pascal.

Ámbitos y espacios nominales en Python...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programacion orientada a objetos
  • PROGRAMACIÓN ORIENTADA A OBJETOS EN C++.
  • Programacion orientada a objetos
  • ¿Que es la Programación Orientada a Objetos?
  • programacion orientada a objetos
  • Programacion orientada a objetos
  • Programación orientada a objetos
  • Investigacion de programacion orientada a objetos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS