Contenido
En el ejemplo anterior, la propiedad Color usa un método setter SetColor. Pero para obtener el valor, la propiedad Color se refiere directamente al campo privado FColor. Hacer referencia directa a un campo es más rápido que implementar métodos de captador o definidor triviales. Haga algo que se parezca a un campo pero que por debajo se realice llamando a los métodos getter y setter. El uso típico es realizar algún efecto secundario (por ejemplo, volver a dibujar la pantalla) cada vez que cambia algún valor. Para probar la clase de una instancia en tiempo de ejecución, use el operador is.
La palabra clave especial Self se puede utilizar dentro de la implementación de la clase para hacer referencia explícita a su propia instancia. La explicación anterior de visibilidad privada y protegida no es exactamente cierta. El código en la misma unidad puede superar sus límites y acceder libremente a las cosas privadas y protegidas. A veces, esta es una buena característica que le permite implementar oracionesasanmiguelarcangel.com clases estrechamente conectadas. Use estrictamente privado o estrictamente protegido para asegurar sus clases de manera más estricta. Como en la mayoría de los lenguajes orientados a objetos, tenemos especificadores de visibilidad para ocultar campos / métodos / propiedades. Tenga en cuenta que en lugar de especificar un método, también puede especificar un campo para obtener o establecer directamente.
Usar algo similar a \ n en lugar de Writeln vacío () en Free Pascal
Se puede usar otra unidad en la sección de interfaz, o solo en la sección de implementación. El primero permite definir nuevas cosas públicas (procedimientos, tipos …) además de iglesia-cristiana.com las cosas de otra unidad. Una unidad también puede contener secciones de inicialización y finalización. Este es el código que se ejecuta cuando el programa comienza y termina.
- Hay un conjunto de rutinas en la unidad GPC para nombrar archivos temporales, archivos de configuración y muchas otras cosas relacionadas con los nombres de archivos.
- Pascal Script es un motor de secuencias de comandos gratuito que le permite utilizar la mayor parte del lenguaje Object Pascal dentro de sus proyectos Delphi o Free Pascal en tiempo de ejecución.
- Si no escribe bien en inglés, escriba los comentarios en inglés lo mejor que pueda y luego pida a otras personas que le ayuden a reescribirlos.
- Si no puede escribir comentarios en inglés, busque a alguien que trabaje con usted y traduzca sus comentarios al inglés.
- Escriba los comentarios en su programa en inglés, porque el inglés es el único idioma que pueden leer casi todos los programadores de todos los países.
Tenga en cuenta que esto no se refiere a las excepciones planteadas. Aunque crea una clase cuando genera una excepción (y es una clase perfectamente normal, y también puede crear sus propias clases para este propósito). Dentro de la implementación de un método, si llama a otro método, por defecto llama al método de su propia clase. En el siguiente código de ejemplo, TMyClass2.MyOtherMethod llama a MyMethod, que termina llamando a TMyClass2.MyMethod.
Funciones de clases avanzadas
Hay una serie de clases no genéricas, también hay matrices dinámicas. Pero para obtener la mayor flexibilidad y seguridad de tipos, recomiendo usar contenedores genéricos para la mayoría de sus necesidades. En el ejemplo anterior, justo después de liberar la instancia de Obj1, simplemente puede establecer la variable Obj2 explícitamente en nil. Una solución es, bueno, tener cuidado y leer la documentación. No asuma nada sobre la vida útil de la referencia, si fue creada por otro código. Pero eso es solo una convención, la documentación debe mencionar si hay algo más complicado.
Para encasillar la instancia a una clase específica, use el operador as. y propiedades (que es una sintaxis elegante para algo que parece un campo, pero de hecho es un par de métodos para obtener y establecer algo; más en Propiedades). Tenga en cuenta que este truco no se puede hacer tan fácilmente con procedimientos, funciones y variables globales. Con procedimientos y funciones, podría exponer un puntero constante a un procedimiento en otra unidad (consulte Devolución de llamada), pero parece bastante sucio.
Declaración de tipos de excepción
El destructor Destroy en TObject se define como un método virtual, por lo que siempre debe marcarlo con la palabra clave override en todas sus clases. Recuerde cómo funcionan los métodos virtuales desde los métodos virtuales, anule y reintroduzca. Tenga en cuenta que el mecanismo de «propiedad» de las clases de lista es simple y obtendrá un error si libera la instancia por otros medios, mientras que también está incluida en una lista. Utilice el método Extraer para eliminar algo de una lista sin liberarlo, asumiendo así la responsabilidad de liberarlo usted mismo. Aconsejo usar FreeAndNil siempre, sin excepciones, y nunca llamar directamente al método Free o al destructor Destroy. Es útil mantener una buena afirmación de que todas las referencias son nulas o apuntan a instancias válidas.