Ver Mensaje Individual
  #2  
Antiguo 12-11-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Reputación: 17
rgstuamigo Va por buen camino
Thumbs up

Bueno son demasiadas preguntas, pero vamos a tratar de responderte las que podamos, Aclaro que no me considero un master en delphi ni en POO .
Cita:
Empezado por setq Ver Mensaje
...
Lo primero que me ha dejado confuso es la clausula "class". Yo declaraba los objetos hace años con "object", no sabia que existia "class" en Delphi. Y si encima ademas permite usar "object" es cuando me confundo, asi que qué diferencia hay entre uno y otro?.
...
De la ayuda de Delphi 7>
Cita:
As an alternative to class types, you can declare object types using the syntax

type objectTypeName = object (ancestorObjectType)
memberList
end;

where objectTypeName is any valid identifier, (ancestorObjectType) is optional, and memberList declares fields, methods, and properties. If (ancestorObjectType) is omitted, then the new type has no ancestor. Object types cannot have published members.

Since object types do not descend from TObject, they provide no built-in constructors, destructors, or other methods. You can create instances of an object type using the New procedure and destroy them with the Dispose procedure, or you can simply declare variables of an object type, just as you would with records.

Object types are supported for backward compatibility only. Their use is not recommended.
En otras palabras se puede crear clases de ambas formas, tanto usando Object como Class, pero yo aconsejo a usar mejor la segunda para una mejor compresion y por que ya estamos acostumbrados.
Cita:
Empezado por setq Ver Mensaje
Referente a la visibilidad en las class y la encapsulacion:

Código:


type A = class
var a:integer;
procedure p1;

private
var b:integer;
procedure p2;

public
var c:integer;
constructor Create;
end;

La variable a y el procedimiento p1 son publicos, privados, o como?. No seran estaticos por casualidad, o sea, de clase?.
Tanto la varible "a" y el Procedimiento p1 son Publicos.
Cita:
Empezado por setq Ver Mensaje
Si no fueran estaticos, como se declararian los procedimientos y variables de clase, o sea, estaticos?.
Un método estático de clase se define así:
Código Delphi [-]
type
  TFigure = class
  public
    class function Supports(Operation: string): Boolean;
    class procedure GetInfo(var Info: TFigureInfo);
    ...
  end;
Y su implementacion de uno de ellos por ejemplo sería:

Código Delphi [-]
class procedure TFigure.GetInfo(var Info: TFigureInfo);
begin
  ...
end;
Las varibles estáticas no existe en delphi a menos yo no las conosco.
Sinembargo creo saber que apartir de Delphi 2007 se han agregado muchas cosas al lenguaje Delphi como tal, para lo cual te recomiendo leer sin flojear estas nueves (1, 2, 3, 4, 5, 6, 7, 8 y 9 ) partes de este estupendo artículo.
Cita:
Empezado por setq Ver Mensaje
Si declaro en la seccion interface de la misma unit una constante fuera de la clase, una instancia de esa clase en la seccion implementation vera la constante?.
La vera una instancia de otra clase en otra unit que haga uso (uses) de la anterior?
Explicate un poco mejor y si es posible con ejemplo.
Cita:
Empezado por setq Ver Mensaje
El constructor debe llamarse siempre Create o puede llamarse como yo quiera y por tanto haber varios constructores?.
Puede llamarse lo que sea, siempre y cuando se tenga cuidado de hacer bien las cosas, ademas lo ideal es usar siempre el nombre Create, ya que por estandar la mayoria de los programadores lo utilizamos y ademas aprovechamos la herencia ya que toda clase en delphi tiene como ancestro a la clase TObject.
Cita:
Empezado por setq Ver Mensaje
Inherits es como el super(); de java?.
Se prodría decir que sí, aunque existe cierta diferencia diría yo.
Cita:
Empezado por setq Ver Mensaje
Existe la sobrecarga de procedimientos y funciones en Delphi?.
Por supuesto que si.
Cita:
Empezado por setq Ver Mensaje
He visto algo de declaraciones con interface, es que existen las interfaces
en Delphi?.

En caso afirmativo, como se declararia una clase que implementa a una interfaz?
Mira estos artículos sin flojear> 1, 2 y 3 .
Espero haberte podido ayudar.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita