El lenguaje de OOP que incorpora Visual dBASE es una extensión del lenguaje xBASE tradicional que incorporaba las versiones anteriores de dBASE. Además del lenguaje tradicional nos encontramos con los principios de la OOP, es decir : encapsulación, polimorfismo y herencia. Todos los componentes que nosotros vamos a estar utilizando dentro de Visual dBASE son en realidad objetos como tal.
La nomenclatura que vamos a seguir en este manual es la de objeto para aquella instancia de una clase. La definición de una clase es el tipo definido por el usuario que capaz de contener definiciones de funciones miembro y definición de propiedades o datos. En realidad las clases no dejan de ser un tipo particular, se asemejan a los registros de una tabla en cuanto que son capaces de contener datos pero suman la posibilidad de contener procedimientos, eso sí, todo ello dentro de un tipo de datos. Las clases estarían en el mismo nivel que el resto de los tipos que ya manejamos dentro de Visual dBASE :
Un hecho que hay que tener en cuenta es que cuando hablamos de clases en Visual dBASE nos estamos refiriendo, en la mayor parte de los casos a SUPERCLASES. ¿Por qué le damos éste nombre ?. Hemos hablado anteriormente de CLASES para aquellos tipos definidos por el usuario que pueden contener métodos, éstas SUPERCLASES no son modificables dentro de Visual dBASE, estamos hablando de las clases pushbutton, spinbox, combobox etc... en realidad son todas aquellas clases que ya vienen definidas dentro del `producto. Aparte de estas superclases nos encontramos que el producto nos permite definir nuestras propias clase como hemos referido anteriormente, estas clases pueden ser heredadas de las anteriores o bien pueden ser clases propias. En el caso que nos trata vamos a trabajar en su mayor parte con clases definidas por el usuario pero heredadas de las superclases definidas dentro del producto. ¿ Por qué vamos a hacer esto ? . Las superclases ya tienen generados todos aquellos métodos que las permiten hacerse visibles y que se denominan constructores . Un constructor no es otra cosa que el/los procedimiento(s) que se van a ejecutar cuando se crea el objeto en memoria En las clases definidas por el usuario(UDC) y que no estén heredadas de una clase predefinida deberíamos definir el constructor de la clase de manera que hiciera visible el objeto. Para simplificar nuestra tarea preferimos utilizar clases predefinidas aparte de que las clases predefinidas suelen ser representar a los objetos más utilizados dentro de Windows.
Un ejemplo muy sencillo con el que podemos ilustrar lo mencionado es utilizando el método open. El método open lo poseen los objetos de la clase FORM. En este caso el método open dispara el constructor de la clase que "pinta" la ventana dentro del entorno de Windows y la declara como activa, además de crear su handle (manejador de ventana dentro de Windows) y asignarle un conjunto de valores por defecto, color, tamaño e ventana etc...
Pongamos esto dentro de la ventana de comandos
Mificha = new form()
Mificha.text = "Ficha creada dinámicamente"
Mificha.open()
Utilizaremos esta sintáxis en lugar de OPEN FORM por similitud
con otros lenguajes, asi como por utilizar la sintaxis correcta a la que
se direge Borland Visual dBASE 7.01
En este caso estaríamos realizando una instanciación de una superclase que se encuentra ya predefinido dentro de dBASE. Más adelante veremos como poder definir una clase propia, que es lo que hacemos realmente cuando creamos una ficha nueva.