Para programadores y entusiastas de la programación, la tecnología de clases en VB es un punto difícil de aprender en el proceso de desarrollo de software a gran escala, módulos (Moudle), controles (Activeocx), bibliotecas de enlaces (Activedll) y clases (Classmoudle). constituye una ingeniería de software sistemática y eficiente, y la tecnología de clase es la base de la tecnología de biblioteca de enlaces y control, por lo que es muy significativo dominar la teoría y los métodos de programación de las clases.
(1) Definición básica y descripción general de la aplicación de las clases ;
Una clase es un módulo de código de alto nivel que contiene métodos, propiedades y miembros de datos. No solo está dentro del alcance del módulo, sino que también un Activeocx sin una interfaz gráfica puede usarlo como un control, pero no. Véalo. Vale la pena señalar que las clases no se pueden heredar.
Las clases nos permiten completar eficientemente operaciones complejas en uno o varios objetos específicos. Las acciones del objeto son los métodos de la clase y los atributos del objeto son los procesos de atributos de la clase. En términos relativos, si el objeto de programación es un grupo de cosas, entonces es muy apropiado que usemos módulos estándar. En los dos casos siguientes, debemos usar clases para el procesamiento de código.
(1) Cree una gran cantidad de objetos con propiedades similares;
(2) Mejorar la encapsulación del código.
Crear una clase es muy simple Al escribir código, seleccione el elemento "Agregar módulo de clase" en el menú "Proyecto" para agregar una clase en blanco.
Los archivos de clase generalmente se guardan con una extensión .cls.
(2) Implementación de métodos de clase ;
El método de una clase es similar a la función de interfaz de una biblioteca de enlaces dinámicos. Puede aceptar parámetros de tipo específicos de otros códigos de formulario y pasarlos a la clase. En términos generales, los métodos de clase pueden especificar si existe un valor de retorno. Suele ser un procedimiento público en la clase. Considere el siguiente ejemplo de código, que hace que un cuadro de contraseña rechace la entrada que no sea letra:
(1) código tipo cls;
Verificación de variables OptionExplicit
PRIvateWithEventsmytxtAsTextBox
'Los métodos de esta clase aceptan y controlan un cuadro de contraseña de texto
DimisNUMAsBooleano
'Variables a nivel de módulo de la clase
PublicSubAttach(itTEXTAsTextBox)
'Aceptar variables externas en mytxt
Setmytxt=itTEXTO
FinSub
PrivateSubmytxt_KeyUp(KeyCodeAsInteger,ShiftAsInteger)
esNUM=(Código clave>=65)Y(Código clave<=90)
'Pruebe si la entrada del teclado en el cuadro de contraseña son letras en inglés
IfisNUM=FalseThen
Bip
mitxt.Texto=
'Si la entrada no es una letra en inglés, sonará el timbre y se borrará el contenido del cuadro de contraseña.
¡Ingreso de caracteres ilegal en MsgBox!
Fin si
Depurar.Printmytxt.Text
'Contenido del cuadro de contraseña de salida de depuración
FinSub
'Código de fin de clase
(2) Referencia de clase ;
Se puede hacer referencia a las clases que se han escrito en dos formatos: privado (público o tenue) myCLS (nombre de clase especificado) AsNewcls (el segundo método es más adecuado para programadores mayores): Primero haga una declaración a nivel de módulo (DimmyCLSAscls) en el código del formulario y luego haga una definición específica: Setmycls=Newcls en el proceso de código específico. Puede haber diferencias en la eficiencia y simplicidad del código entre estos dos métodos, pero en la práctica de programación del autor, no hay ninguna sensación especial, pero prefiero el primer método porque es más conveniente de escribir. Además, al final del código, es un muy buen hábito de programación usar SetmyCLS=Nothing para cancelar la ocupación de recursos de la clase.
En el formulario form1 (el formulario tiene un cuadro de control de contraseña text1, passworldchar=*), agregue el siguiente código:
OpciónExplícito
PrivatemyCLSAsNewcls
'Cita cls
PrivadoSubForm_Load()
myCLS.AttachText1
'Clase de inicio
FinSub
'Recuerda liberar recursos al final del código
PrivateSubForm_Unload(CancelarAsInteger)
SetmyCLS=Nada
Fin
FinSub
El código de este artículo muestra el proceso de escritura del código y el método de llamada del método de clase (aunque es muy similar al evento de la clase, su efecto es que si se ingresa una letra que no sea una letra en el cuadro de contraseña, el sistema lo hará). El anillo y el cuadro de contraseña se eliminarán de los datos originales, protegiendo la contraseña hasta cierto punto.
Un método de clase no requiere ningún parámetro, que es similar a una función o procedimiento público. También es el más utilizado en las clases. En el próximo artículo, analizaré cómo utilizar las propiedades, eventos y métodos de las clases para una programación integral.
Discutimos la teoría de clases, la creación de clases y la práctica de programación de métodos de clase. De hecho, la razón principal por la que las clases pueden usarse ampliamente en ingeniería de software es que pueden encapsular de manera muy conveniente muchos atributos necesarios para la programación. no solo permite a los programadores superar la complejidad en el diseño y depuración de controles (ocx) y bibliotecas de enlaces (dll) hasta cierto punto, sino que también mejora la simplicidad y eficiencia de los códigos de programa; este artículo discutirá la programación de clases completa, incluidos los métodos. , atributos y eventos básicos.
(1) Características y definiciones de atributos de clase;
De manera similar a las propiedades de los controles estándar, las propiedades de clase permiten al usuario asignar valores dentro de un rango de datos específico, y estos valores son compartidos por varias partes del código dentro de la clase. La adquisición y transferencia de propiedades requiere programación a través de las declaraciones PropertyLet y PropertyGet. Por supuesto, primero debemos definir las variables correspondientes a nivel global o de módulo en la clase.
(2) Atributos y definiciones básicas de eventos;
De manera similar a los eventos del formulario, las clases también tienen dos eventos básicos, Class_Initialize (activado cuando se carga la clase) y Class_Terminate (activado cuando se descarga la clase), los cuales son privados. De hecho, podemos ignorar por completo estos dos eventos, siempre que recuerde completar los métodos y propiedades de la clase.
Las clases también pueden definir sus propios eventos, que son similares al formato de programación de los métodos, excepto que se requiere la palabra clave WithEvents para la declaración de parámetros, y el evento no puede tener parámetros con nombre ni parámetros opcionales, y no tiene valor de retorno.
De hecho, los métodos y propiedades bien estructurados pueden reemplazar completamente los eventos de clases con estructura compleja.
(3) Ejemplos de programación de métodos, eventos y propiedades de clase;
El propósito de este programa es controlar toda la clasificación en mayúsculas, minúsculas e inversa del contenido del cuadro de texto en el formulario a través de clases.
Para facilitar la escritura y llamada de código, hice referencia al método de programación de enumeración en la clase.
El siguiente código está en la clase Class1:
OpciónExplícito
PrivateWithEventsmyTXTAsTextBox
'Interfaz de parámetros del método
PublicEnumsTYLE
Atributo de minúsculas Lcaseit
Atributo de capitalización Lbigit'
Atributo de ordenación inversa de Nlogoit
EndEnum
'Enumeración personalizada, utilizada para implementar la asignación automática de atributos.
PrivadomvarBiaozhiCuloESTILO
'Implementar la conexión de constantes de enumeración
PublicFunctiondONE()AsString'
'El método DONE se utiliza para configurar el
'Realice las operaciones de conversión de caracteres correspondientes en el cuadro de texto del formulario
'Y devolver la cadena convertida
IfmvarBiaozhi=NlogoitEntonces
hecho=StrReverse(miTXT)
'Clasificación inversa
ElseIfmvarBiaozhi=LcaseitThen
HECHO=LCaso(miTXT)
'Forzar conversión a minúsculas
Demás
HECHO=UCase(miTXT)
'Forzar conversión a mayúsculas
Fin si
Función final
'El método DONE finaliza
Propiedad públicaLetBiaozhi (por ValvDataAssTYLE)
'Obtener el valor asignado del atributo
mvarBiaozhi=vDatos
Propiedad final
Propiedad públicaGetBiaozhi()CuloESTILO
'Transferir valores de atributos a la clase
SetBiaozhi=mvarBiaozhi
Propiedad final
PublicSubAttach(itTEXTAsTextBox)
'Método de clase de conexión
SetmyTXT=itTEXT
FinSub
PrivateSubClass_Initialize()
'Este evento se activa cuando se carga la clase
MsgBox ¡Hola! ¡Este programa le muestra las técnicas de programación utilizando métodos, propiedades y eventos de clase!
FinSub
PrivateSubClass_Terminate()
'Este evento se activa cuando se descarga la clase.
MsgBox ¡Hola! ¡Recuerde completar el código después de revocar el objeto en Class_Terminate!
FinSub
'El código de la clase ha terminado.
(4) Programación de referencia del código de formulario;
Agregue el control de texto TEXTO1, el control de lista desplegable COMBO1 y el botón de comando COMANDO1 (TÍTULO=Iniciar conversión) para formar FORM1 y ajuste los tres controles a las posiciones apropiadas.
DimmyTAsNuevaClase1
'Referencia de clase
PrivadoSubForm_Load()
Combo1.Borrar
Combo1.AddItem conversión de cadena en mayúsculas
Combo1.AddItem cadena de conversión a minúsculas
Combo1.AddItem ordenación inversa de cadenas
Combo1.ListIndex=0
'Agregar opciones de atributos al cuadro de lista
FinSub
PrivadoSubCommand1_Click()
'Activar la clase cuando se presiona el botón de comando
miT.AttachText1
'Conexión de parámetro de método
SeleccionarCaseCombo1.ListIndex
Caso0
myT.Biaozhi=Lbigit
Caso1
myT.Biaozhi=Lcaseit
Caso2
myT.Biaozhi=Nlogoit
Selección final
'Según la selección en el cuadro de lista, asigne un valor al atributo Biaozhi de la clase
'Tenga en cuenta que en el entorno de programación, los valores de atributos anteriores se agregan automáticamente
Texto1.Texto=miT.hecho
'Devuelve la cadena después de ordenar
FinSub
PrivateSubForm_Unload(CancelarAsInteger)
SetmyT=Nada
Fin
'Buenos hábitos de programación
FinSub
¿Qué tal si nuestro código parece tan conciso que se siente como si estuviera usando un control, que no solo se puede llamar a voluntad, sino que también puede usar convenientemente la función de aviso automático de VB?
(5) Resumen de técnicas de programación de clases;
Estrictamente hablando, las clases son una tecnología muy útil en la programación de VB y también son difíciles de aprender y dominar. Sin embargo, las clases se utilizan de manera amplia y efectiva en proyectos de software a gran escala para mejorar el software. Para lograr eficiencia y claridad del código, debe evitar el uso de más módulos de clase, controles y bibliotecas de conexión y reemplazarlos con módulos estándar.
El ejemplo de código de este artículo es relativamente simple, pero cubre todos los aspectos de la tecnología de programación de módulos. Espero que los principiantes puedan aprender de él y los programadores puedan discutirlo juntos. Debemos creer que no importa cuán complejos sean los edificios de gran altura, todos están hechos de ladrillos comunes. Del mismo modo, no importa cuán complejos sean los proyectos de software, están compuestos por programadores y entusiastas de la programación básicos. El analista es que los programas construidos con las mismas declaraciones de programa son diferentes. ->