Clases y objetos de Delphi (6) -encapsulación (visibilidad del miembro)

Concepto: la encapsulación se refiere al uso de clases para encapsular datos y métodos a través de caracteres de control de acceso para lograr la ocultación de funciones.
Visibilidad de los miembros de la clase:
privado		 // no visible. 
protegido	 // Clases derivadas visibles. 
público		 // visible. 
publicado	 // visible. Utilizado para información de tiempo de ejecución. 
automatizado	 // visible. Usado por compatibilidad. 

// Cuando está fuera de rango: {$ M +} (predeterminado) se publica; {$ M-} es público

(1) Carácter de acceso de miembro privado (privado): indica que los miembros de la clase son privados para la clase, que es visible en la clase, es decir, los miembros privados definidos en la clase solo pueden ser llamados por miembros o métodos en la clase.

(2) Accesor de miembro protegido (protegido): la clase en sí y las subclases derivadas de la clase solo pueden acceder al miembro protegido. Si solo desea que las subclases hereden algunas de las funciones de la clase principal, puede declararlas como protegidas.

(3) Carácter de acceso de miembro público (público): sin permiso, mientras el miembro todavía exista, puede llamar a los miembros de esta clase en cualquier parte del programa, y ​​también se puede acceder a los miembros públicos de la clase principal en la subclase derivada.

(4) Carácter de acceso de miembro publicado (publicado): los derechos de acceso son los mismos que los derechos de acceso público. La diferencia es que los miembros publicados pueden generar información de tipo de tiempo de ejecución en tiempo de ejecución, que generalmente se utiliza para atributos de componentes.

(5) Acceso de miembro automatizado (automatizado): los derechos de acceso son los mismos que los derechos de acceso público, la diferencia es que los miembros publicados generarán información de tipo automatizada (ATI). Solo es necesario declarar al definir o utilizar objetos de automatización (tecnología OLE).
Si no especifica un símbolo de acceso de miembro en la clase, el símbolo de acceso predeterminado para los miembros de la clase es el símbolo de acceso de miembro público La

idea: si abstrae en diferentes clases de computadoras y componentes, puede usar estas clases de componentes para formar uno nuevo. La clase de computadora y una clase de computadora proporcionan solo un inicio para que el usuario opere en tiempo de ejecución, de modo que el proceso de inicialización y arranque de otros componentes
no necesita ser proporcionado al usuario, sino que solo debe proporcionarse a la clase de computadora para su ejecución. Entonces, en la clase de computadora, solo necesita hacer que el método de ejecutar otros componentes sea privado o miembros protegidos.

// Los dos campos de esta clase no están encapsulados 
  TMyClass1 = class 
    FName: string ; 
    FAge: Integer; 
  end ; 

  // Los dos campos de esta clase están encapsulados y no pueden leerse ni escribirse fuera de 
  TMyClass2 = class 
    private 
      FName: string ; 
      FAge: Integer; 
    // public 
  end ; 

  // Cómo leer y escribir? Usar atributos 
  TMyClass3 = class 
  private 
    FName: String; 
    FAge: Integer; 
    procedure SetAge ( const Value: Integer);
     procedure SetName ( const Value: String);
  
    Nombre de propiedad publicado : Cadena,   leer FName, escribir SetName;
     propiedad Edad: Entero, leer FAge,   escribir SetAge;
   fin ;
   { 
    Ahora dos campos en TMyClass3: FName, FAge y dos métodos: SetAge, SetName 
    están encapsulados en un área privada (privada) La lectura y escritura interna y externa no están permitidas, solo para uso interno. 

    Sin embargo, la encapsulación privada no es válida en esta unidad. 
    Ahora está bien, hay un identificador estricto. 
  } 

  // Esta encapsulación se realiza, agregada antes que privada estricto; ahora nadie, excepto usted, puede acceder al área privada. 
  TMyClass4 = clase 
  estricto privado 
    FName: String; 
    FAge: Integer; 
    procedure SetAge ( constValor: entero);
    procedimiento SetName ( const Value: String);
  propiedad publicada
     Nombre: Cadena   leer FName escribir SetName;
    propiedad Edad: Entero leer FAge   escribir SetAge;
  terminar ;

 

Supongo que te gusta

Origin www.cnblogs.com/fansizhe/p/12723808.html
Recomendado
Clasificación