Class

From Lazarus wiki
Revision as of 11:42, 28 July 2016 by Arent (talk | contribs)
Jump to navigationJump to search

Deutsch (de) English (en) français (fr) русский (ru)

A class is a highly structured data type in Object Pascal dialects such as Delphi or the ObjFPC dialect. Classes are able to contain variables, constructors, destructors, functions, procedures, and properties using access scopes.

Another interesting thing about classes is that they free the programmer from the need for pointers and references. They are automatically handled by the compiler at compile time.

Classes are able to inherit and to be inherited by other classes. For run-time purposes, any class not specifying a parent class automatically inherits from TObject, as it has required components for all classes. Because of TObject's dependency, any subclass's destructor must have the override directive. Additionally, any of your class's constructors must specify inherited in their body. A class can have several constructors, but only one destructor.

type
    TMyClass = class(TObject)
    private // self access only
        FSomeVar: Integer;
    public // access by anything
        constructor Create; overload;
        constructor Create(Args: array of Integer); overload;
        destructor Destroy; override;
        function GetSomeVar: Integer;
        procedure SetSomeVar(newvalue: Integer);
    published // special type of public scope
        property SomeVar: Integer read GetSomeVar write SetSomeVar default 0;
    end;
var
    classInstance: TMyClass.Create;

but if you declare the variable as a class without initialization of the object and you want create the object dynamically you need to do :

var
    classInstance: TMyClass;

implementation
begin
    classInstance := TMyClass.Create;
end;


constructor TMyClass.Create;
begin
  inherited;
  SomeVar := 6;
end;



navigation bar: data types
simple data types

boolean byte cardinal char currency double dword extended int8 int16 int32 int64 integer longint real shortint single smallint pointer qword word

complex data types

array class object record set string shortstring