Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-02-2011
FelixInasa FelixInasa is offline
Registrado
NULL
 
Registrado: ene 2011
Posts: 1
Poder: 0
FelixInasa Va por buen camino
clase estatica D7

Hola

se pude definir una clase estática en D7?

gracias
Responder Con Cita
  #2  
Antiguo 16-02-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Que yo sepa, no.

De todas formas puedes usar una unidad Pascal como "pseudo-objeto". Yo lo hago muchas veces.

El compilador Pascal crea automáticamente "nombres de espacio" por cada unidad Pascal, de forma que pueden utilizarse para identificar objetos. Por ejemplo:
Código Delphi [-]
UNIT Unidad1;

INTERFACE

(* Método cualquiera. *)
  PROCEDURE ElMetodo;

IMPLEMENTATION
  PROCEDURE ElMetodo;
  BEGIN
    WriteLn ('Estamos en ElMetodo de la unidad 1.');
  END;
END.
Código Delphi [-]
UNIT Unidad2;

INTERFACE

(* Método cualquiera. *)
  PROCEDURE ElMetodo;

IMPLEMENTATION
  PROCEDURE ElMetodo;
  BEGIN
    WriteLn ('Estamos en ElMetodo de la unidad 2.');
  END;
END.
Código Delphi [-]
PROGRAM Ejemplo;

USES
  Unidad1, Unidad2;

BEGIN
  Unidad1.ElMetodo;
  Unidad2.ElMetodo;
END;
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 16-02-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

A partir de una version superior de Delphi 7 (Delphi 2007 por ejmplo)sí se puede, pero de Delphi 7 para abajo no se puede...
En Delphi 2007 se puede hacer así:
Código Delphi [-]
...
type
  TEntidad = class sealed //<-clase cerrada
  private
    Numero: Integer;
    Nombre: String;
  public
    constructor Create;
    procedure SetNombre( s: String );
  end;
..
Si intentamos crear una nueva clase descendiente de TEntidad
Código Delphi [-]
...
TCliente = class( TEntidad )
private
  CIF: String;
end;
..
El compilador gritará un error...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #4  
Antiguo 16-02-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No es lo mismo sealed que static.

// Saludos
Responder Con Cita
  #5  
Antiguo 16-02-2011
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por roman Ver Mensaje
Todo depende de a qué le llames clase estática. Yo, por clase estática entenderia una cuyos métodos son todos estáticos, es decir, métodos asociados a la clase en sí y no a una instancia particular de la clase.

Y sí, delphi cuenta con los llamados métodos de clase que son sinónimos de los estáticos.

// Saludos
¿Será que yo ya estoy olvidando la teoría OO?
No recuerdo si existe, formalmente el concepto Clase estática, pero si métodos estáticos o métodos de clases.

Ahora me pregunto, El que una clase tenga métodos de clase es suficiente criterio como para concluir que la clase es estática.
A lo que voy: Si hay métodos estáticos, ergo: la clase es estática.

Me voy a los libros... porque ya estoy dudando.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 16-02-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Delphius Ver Mensaje
No recuerdo si existe, formalmente el concepto Clase estática, pero si métodos estáticos o métodos de clases.
Por eso dije yo que todo depende de lo que entienda por clase estática. Que yo sepa, ni Java ni C++ ni Delphi tienen clases estáticas. Pero, informalmente, se entiende por estática una clase en la que todos sus miembros son estáticos.


Cita:
Empezado por Delphius Ver Mensaje
Ahora me pregunto, El que una clase tenga métodos de clase es suficiente criterio como para concluir que la clase es estática.
No lo creo. No habiendo una definición formal de clase estática (*), tal apelativo sólo podría aplicarse si la totalidad de miembros son estáticos.


----------------------------
(*) Al parecer, C# sí implementa explícitamente las clases estáticas.


// Saludos
Responder Con Cita
  #7  
Antiguo 16-02-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por Delphius Ver Mensaje
¿Será que yo ya estoy olvidando la teoría OO?
No, no has olvidado la teoría de la "Orientación a Objetos", porque las clases estáticas no son parte de esa teoría, sino un añadido posterior. Puede haber OO sin clases estáticas.
Cita:
Empezado por Delphius Ver Mensaje
¿Siendo correctos, en la teoría OO, existe el concepto de clase estática?
La teoría OO "sólo" exige:
  • Encapsulación
  • Herencia
  • Polimorfismo

Todo lo demás es accesorio. Además, las "clases estáticas" sólo pueden ser aplicadas a lenguajes orientados a clases . Hay lenguajes orientados a objetos que no tienen clases, como Small-Talk (el "Lenguaje Original").
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine

Última edición por Ñuño Martínez fecha: 16-02-2011 a las 19:02:19.
Responder Con Cita
  #8  
Antiguo 16-02-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por FelixInasa Ver Mensaje
Hola

se pude definir una clase estática en D7?

gracias
Todo depende de a qué le llames clase estática. Yo, por clase estática entenderia una cuyos métodos son todos estáticos, es decir, métodos asociados a la clase en sí y no a una instancia particular de la clase.

Y sí, delphi cuenta con los llamados métodos de clase que son sinónimos de los estáticos.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
INFO: DLL's, BPL's, carga dinámica, carga estática y Packages en Runtime Neftali [Germán.Estévez] OOP 26 13-12-2013 19:29:55
clase que contiene otra clase definida de forma posterior astwin OOP 5 20-02-2009 11:26:55
Clase jakuna OOP 2 30-08-2007 21:50:35
variable estatica no muere con el form !!!!!!!!!!! david_uh Varios 5 28-07-2007 00:51:14
...la clase... Jure Humor 0 27-07-2004 20:00:47


La franja horaria es GMT +2. Ahora son las 07:22:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi