You are on page 1of 9

Introducción a la programación orientada a objetos

En el transcurso de los últimos 35 años, los diseñadores de hardware para ordenadores han pasado
del diseño de equipos del tamaño de un hangar a ordenadores portátiles basados en
microprocesadores minúsculos.
En el mismo período, los desarrolladores de software han pasado de escribir programas en
ensamblador y COBOL a escribirlos en C y C++. Podríamos denominar a esto progreso (algunas
personas no estarían de acuerdo), pero claramente el mundo del software no progresa tan
rápidamente como el mundo del hardware. Entonces, ¿qué tienen los diseñadores de hardware que
los desarrolladores de software no poseen?

La respuesta está en los componentes utilizados. Si los ingenieros de hardware electrónico tuvieran
que comenzar desde un montón de arena cada vez que diseñan un nuevo dispositivo de hardware, y
el primer paso fuese la extracción de silicio para fabricar placas de circuitos integrados, el progreso
tampoco sería tan veloz. Sin embargo, un diseñador de hardware siempre construye un sistema que
se basa en componentes ya preparados, cada uno con una función específica y que brinda un
conjunto de servicios a través de interfaces definidas. La tarea de los diseñadores de hardware es
considerablemente más fácil gracias al trabajo de sus predecesores.
Que es

La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es un paradigma de
programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de
computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo, y
encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos
los lenguajes de programación que soportan la orientación a objetos.

Historia

Al mismo tiempo que se da la Crisis del Software, por otro lado la Orientación a Objetos (OO) se
empezó
a discutir a fines de los años 60 con el desarrollo del lenguaje SIMULA67 por Nygaard y Ole-Johan Dahl
en el Centro de Cálculo Noruego, en él, introdujeron los conceptos de clase, subclases y rutinas, muy
Parecidos los conceptos a los lenguajes orientados a objetos de hoy en día. A mitad de la década de
los
70 los científicos del Centro de Investigaciones Palo Alto de XEROX (PARC) (XEROX Palo Alto Research
Center) crearon el lenguaje SMALLTALK, el primer lenguaje orientado a objetos consistente y
Completo. En él cada elemento del lenguaje fue realizado un objeto. Este último lenguaje evolucionó
através de varios lanzamientos realizados por PARC.

A pesar de este movimiento temprano hacia los lenguajes orientados a objetos, sólo se lograron
pequeñas
Incursiones en la comunidad de la programación general. El progreso reciente se ha acelerado debido
Principalmente a la disponibilidad de las extensiones orientadas a objetos para dos lenguajes
populares:
C y PASCAL, y a las extensiones prometidas para otros lenguajes comerciales populares como BASIC y
COBOL.

Terminologia

Objeto:

Consiste en ordenar datos en conjuntos modulares de elementos de información del mundo real
(denominado un dominio). Estos elementos de datos se llaman objetos. Estos datos se agrupan de
acuerdo a las características principales del mundo real de estos elementos (tamaño, color, etc.).

El enfoque de objetos es una idea que se ha probado con creces. Simula fue el primer lenguaje de
programación en implementar el concepto de clases en 1967. En 1976, Smalltalk implementó los
conceptos de encapsulación, agrupación y herencia (los conceptos principales de la programación
orientada a objetos). Por otra parte, se han implementado varios lenguajes de programación orientada
a objetos a escala global (Eiffel, Objective C, Loops, etc.).

Un objeto se caracteriza por varios conceptos:

• Atributos: estos son los datos que caracterizan al objeto. Son variables que almacenan datos
relacionados al estado de un objeto.
• Métodos (usualmente llamados funciones de miembro): Los métodos de un objeto caracterizan
su comportamiento, es decir, son todas las acciones (denominadas operaciones) que el objeto
puede realizar por sí mismo. Estas operaciones hacen posible que el objeto responda a las
solicitudes externas (o que actúe sobre otros objetos). Además, las operaciones están
estrechamente ligadas a los atributos, ya que sus acciones pueden depender de, o modificar, los
valores de un atributo.
• Identidad: El objeto tiene una identidad, que lo distingue de otros objetos, sin considerar su
estado. Por lo general, esta identidad se crea mediante un identificador que deriva naturalmente
de un problema (por ejemplo: un producto puede estar representado por un código, un automóvil,
por un número de modelo, etc.)

Clase:

Es la estructura de un objeto, es decir, la definición de todos los elementos de que está hecho un
objeto. Un objeto es, por lo tanto, el "resultado" de una clase. En realidad, un objeto es una instancia
de una clase, por lo que se pueden intercambiar los términos objeto o instancia (o incluso evento).

Una clase se compone de dos partes:

• Atributos (denominados, por lo general, datos miembros): esto es, los datos que se refieren al
estado del objeto
• Métodos (denominados, por lo general, funciones miembros): son funciones que pueden
aplicarse a objetos

Si tenemos una clase llamada auto, los objetos Peugeot y Renault serán instancias de esa clase.
También puede haber otros objetos Peugeot 406, diferenciados por su número de modelo. Asimismo,
dos instancias de una clase pueden tener los mismos atributos, pero considerarse objetos distintos
independientes. En un contexto real: dos camisas pueden ser idénticas, pero no obstante, también ser
diferentes de alguna manera. Sin embargo, si las mezclamos es imposible distinguir una de la otra.

Herencia:

Es específica de la programación orientada a objetos, donde una clase nueva se crea a partir de una
clase existente. La herencia (a la que habitualmente se denomina subclases) proviene del hecho de
que la subclase (la nueva clase creada) contiene las atributos y métodos de la clase primaria. La
principal ventaja de la herencia es la capacidad para definir atributos y métodos nuevos para la
subclase, que luego se aplican a los atributos y métodos heredados.

Esta particularidad permite crear una estructura jerárquica de clases cada vez más especializada. La
gran ventaja es que uno ya no debe comenzar desde cero cuando desea especializar una clase
existente. Como resultado, se pueden adquirir bibliotecas de clases que ofrecen una base que puede
especializarse a voluntad

Encapsulamiento:

Es un mecanismo que consiste en organizar datos y métodos de una estructura, conciliando el modo
en que el objeto se implementa, es decir, evitando el acceso a datos por cualquier otro medio distinto
a los especificados. Por lo tanto, la encapsulación garantiza la integridad de los datos que contiene un
objeto.

Polimorfismo:

proviene del griego y significa que posee varias formas diferentes. Este es uno de los conceptos
esenciales de una programación orientada a objetos. Así como la herencia está relacionada con las
clases y su jerarquía, el polimorfismo se relaciona con los métodos.

En general, hay tres tipos de polimorfismo:

• Polimorfismo de sobrecarga
• Polimorfismo paramétrico (también llamado polimorfismo de plantillas)
• Polimorfismo de inclusión (también llamado redefinición o subtipado)
Método:

Utilizado principalmente en programación orientada a objetos, el término se refiere a las porciones de


código asociadas exclusivamente con una clase (se los denomina entonces métodos de clase o
métodos estáticos) o con un objeto (en este caso métodos de instancia). Análogamente a los
procedimientos en los lenguajes imperativos, un método consiste generalmente de una serie de
sentencias para llevar a cabo una acción, un juego de parámetros de entrada que regularán dicha
acción y, posiblemente, un valor de salida (o valor de retorno) de algún tipo. El propósito de los
métodos es el de proveer un mecanismo para acceder (leer o modificar) los datos privados que se
encuentran almacenados en un objeto o clase.

Algunos lenguajes de programación asumen que un método debe de mantener el invariante del
objeto al que está asociado asumiendo también que éste es válido cuando el método es invocado. En
lenguajes compilados dinámicamente, los métodos pueden ser objetos de primera clase, y en este
caso se puede compilar un método sin asociarse a ninguna clase en particular, y luego asociar el
vínculo o contrato entre el objeto y el método en tiempo de ejecución. En cambio en lenguajes no
compilados dinámicamente o tipados estáticamente, se acude a precondiciones para regular los
parámetros del método y postcondiciones para regular su salida (en caso de tenerla). Si alguna de las
precondiciones o postcondiciones es falsa el método genera una excepción. Si el estado del objeto no
satisface la invariante de su clase al comenzar o finalizar un método, se considera que el programa
tiene un error de programación.

La diferencia entre un procedimiento (generalmente llamado "función" si devuelve un valor) y un


método es que éste último, al estar asociado con un objeto o clase en particular, puede acceder y
modificar los datos privados del objeto correspondiente de forma tal que sea consistente con el
comportamiento deseado para el mismo. Así, es recomendable entender a un método no como una
"secuencia de instrucciones" sino como "la forma en que el objeto es útil" (el método para hacer su
trabajo). Por lo tanto, podemos considerar al método como el pedido a un objeto para que realice una
tarea determinada o como la vía para enviar un mensaje al objeto y éste reacciona acorde a dicho
mensaje.

Evento:
un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado
por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente.
También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la
acción que genera.

Propiedad o atributo:
contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos
visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo
valor puede ser alterado por la ejecución de algún método.
CursorAdapter

El CursorAdapter no es más que una nueva clase, pero muy importante, ya que con ella se puede
gestionar todo acceso a datos, tanto local como remoto, el cursorAdapter soporta diferentes orígenes
de datos, los cuales pueden ser aplicados dinámicamente y la compartición de dichos orígenes de
datos solamente se encontrará limitada por la propia tecnología.

El cursorAdapter soporta los siguientes orígenes de datos:

Nativo (Visual FoxPro)

Open Data Connectivity (ODBC)

ActiveX Data Object (ADO)

Extensible Markup Lenguaje (XML)

Debemos entender, a esta nueva clase como un punto de entrada, ya que como todo tiene sus
deficiencias, pero por ello, no deja de ser noble en su propio concepto y mantener su grandeza para el
desarrollo.
Si sabemos darle este enfoque, se puede obtener unos resultados majestuosos en la capa de acceso a
datos, ya sea para aplicaciones cliente/servidor, posibilidades de movernos en multitud de bases de
datos, etc.

Y todo esto interrelacionado; con que a partir de esta versión podemos crear clases partiendo del
contenedor DataEnvironment, se pueden crear verdaderos sistemas, con versatilidad, robustez y
potencia en lo que a la capa de acceso a datos se refiere.

Otra de las grandes ventajas que ofrece el CursorAdapter es que mantiene la interacción con los
comandos TableUpdate y TableRevert, esto es realmente muy bueno, ya que no perdemos la
generosidad y dimensión de dichos comandos, sobre todo cuando queremos dar robustez a la
integridad de nuestros datos e independientemente del origen de datos.

Extensión de los archivos foxpro

En este artículo se enumeran las extensiones y sus tipos de archivo asociado que se utilizan con
Visual FoxPro. En este artículo también se explica las estructuras de tabla de FoxPro versión 2.6 y
Visual FoxPro versión 3.0 de los siguientes archivos: archivos .dbc, FRx, .lbx, .mnx, .pjx, .SCx y .vcx.

Archivo extensiones y tipos de archivo utilizados por Visual FoxPro

Extension File type


----------------------------------------------
.act Documenting Wizard action diagram
.app Generated application
.cdx Compound index
.dbc Database
.dbf Table
.dct Database memo
.dcx Database index
.dll Windows Dynamic Link Library
.err Compilation error
.exe Executable program
.fky Macro
.fll FoxPro Dynamic Link Library
.fmt Format File
.fpt Table memo
.frt Report memo
.frx Report
.fxp Compiled program
.hlp Graphical Help
.idx Index, compact index
.krt Used in the recreation of a .dbc file
NOTE: The .KRT extension is not listed in the online Help.
.lbt Label memo
.lbx Label
.lst Documenting Wizard list
.mem Memory variable saveDoslives
.mnt Menu memo
.mnx Menu
.mpr Generated menu program
.mpx Compiled menu program
.ocx OLE control
.pjt Project memo
.pjx Project
.prg Program
.qpr Generated query program
.qpx Compiled query program
.sct Form memo
.scx Form
.spr Generated Screen Program (previous versions of FoxPro only)
.spx Compiled Screen Program (previous versions of FoxPro only)
.tbk Memo backup
.txt Text
.vct Visual class library memo
.vcx Visual class library
.vue FoxPro 2.x view
.win Window file

Tabla estructuras de los archivos .dbc, FRx, .lbx, .mnx, .pjx, .SCx y .vcx
Las descripciones de las estructuras de tabla se almacenan en archivos que se encuentran en el
directorio FILESPEC. El directorio FILESPEC contiene dos proyectos: 30spec.pjx y 26spec.pjx:

• 30spec.pjx contiene tablas e informes que documentan Visual FoxPro archivos de la tabla versión
3.0.
• 26spec.pjx contiene tablas e informes que documentan archivos de la tabla 2.6 de versión Fox Pro.

Para ver las descripciones de estructura de tabla, imprimir el informe adecuado. En las siguientes dos
tablas se enumeran los tipos de archivo y sus informes asociados. Algunos tipos de archivos requieren
más de un informe porque hay demasiadas columnas para que quepa en una sola página.

Nota: todos los informes tienen el formato para la impresión horizontal.

To see this Visual FoxPro Print


3.0 table structure: this report: Which uses:
----------------------------------------------------------
Database 30dbc.frx 30dbc.dbf
Database Properties 30dbcpro.frx

Form & Visual Class Library 30scx1.frx 30scx.dbf


30scx2.frx
30scx3.frx
Menu 30mnx.frx 30mnx.dbf

Project 30pjx1.frx 30pjx.dbf


30pjx2.frx

Report & Label 30frx1.frx 30frx.dbf

Trabajo De VFP

Tema:

CursorAdapter Y Extensiones De VFP

Presentado Por:

Carlos Saumeth

Programa:

Análisis Y Programación

Código:

117

Instructor:

Antonio Canchilla
Centro Inca

2008

Trabajo De VFP

Temas:

Introducción De Programación Orientada A Objetos

Presentado Por:

Carlos Saumeth

Programa:

Análisis Y Programación

Código:

117

Instructor:

Antonio Canchilla
Centro Inca

2008

Extensión de los archivos foxpro

Archivo extensiones y tipos de archivo utilizados por Visual FoxPro

.act Documenting Wizard action diagram


.app Generated application
.cdx Compound index
.dbc Database
.dbf Table
.dct Database memo
.dcx Database index
.dll Windows Dynamic Link Library
.err Compilation error
.exe Executable program
.fky Macro
.fll FoxPro Dynamic Link Library
.fmt Format File
.fpt Table memo
.frt Report memo
.frx Report
.fxp Compiled program
.hlp Graphical Help
.idx Index, compact index
..lbx Label
.lst Documenting Wizard list
.mem Memory variable saveDoslives
.mnt Menu memo
.mnx Menu
.mpr Generated menu program
.mpx Compiled menu program
.ocx OLE control
.pjt Project memo
.pjx Project
.prg Program
.qpr Generated query program
.qpx Compiled query program
.sct Form memo
.scx Form
.spr Generated Screen Program (previous versions of FoxPro only)
.spx Compiled Screen Program (previous versions of FoxPro only)
.tbk Memo backup
.txt Text
.vct Visual class library memo
.vcx Visual class library
.vue FoxPro 2.x view
.win Window file

You might also like