Class/fr: what changed
Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | - | ||
| 2 | - | ||
| 3 | 1 | Une **classe** est un [[Data type/fr|type de données]] hautement structuré dans les dialectes Objets de [[Pascal/fr|Pascal]]. Les classes sont en mesure de contenir des [[Variable/fr|variables]], des [[Constructor/fr|constructeurs]], des [[Destructor/fr|destructeurs]], des [[Function/fr|fonctions]], des [[Procedure/fr|procédures]] et des [[Property/fr|propriétés]] en définissant la visiblité. | |
| 4 | 2 | ||
| 5 | 3 | Une autre chose intéressante sur les classes est qu'elles libèrent le développeur du besoin des [[Pointer/fr|pointeurs]] et le déréférencement de pointeur. Elles sont automatiquement prises en charge par le compilateur à la compilation. | |
| 6 | 4 | ||
| 7 | 5 | Les classes sont capables d'hériter ou d'être héritées par d'autres classes, une classe fille hérite d'une classe parent. Toute classe qui ne précise pas sa classe mère dérive (hérite) implicitement de TObject qui a des caractéristiques nécéssaires à toutes les classes. Du fait de la dépendance à TObject, tout destructeur d'une sous-classe doit avoir la directive override. En plus, le destructeur doit spécifier inherited dans son corps. Cela n'est pas nécessairement valable pour les constructeurs. Une classe peut avoir plusieurs constructeurs mais le destructeur est unique. | |
| 8 | 6 | ||
| 9 | 7 | ``` pascal | |
| 10 | 8 | type | |
| 11 | 9 | TMyClass = class(TObject) | |
| 12 | 10 | private // self access only | |
| 13 | 11 | FSomeVar: Integer; | |
| 14 | 12 | public // access by anything | |
| 15 | 13 | constructor Create; overload; | |
| 16 | 14 | constructor Create(Args: array of Integer); overload; | |
| 17 | 15 | destructor Destroy; override; | |
| 18 | 16 | function GetSomeVar: Integer; | |
| 19 | 17 | procedure SetSomeVar(newvalue: Integer); | |
| 20 | 18 | published // special type of public scope | |
| 21 | 19 | property SomeVar: Integer read GetSomeVar write SetSomeVar default 0; | |
| 22 | 20 | end; | |
| 23 | 21 | ``` | |
| 24 | 22 | ||
| 25 | 23 | ``` pascal | |
| 26 | 24 | var | |
| 27 | 25 | classInstance: TMyClass; | |
| 28 | 26 | ``` | |
| 29 | 27 | ||
| 30 | 28 | Pour créer l'objet, la déclaration ne suffit pas, il faut l'instancier: | |
| 31 | 29 | ||
| 32 | 30 | ``` pascal | |
| 33 | 31 | var | |
| 34 | 32 | classInstance: TMyClass; | |
| 35 | 33 | ||
| 36 | 34 | implementation | |
| 37 | 35 | begin | |
| 38 | 36 | classInstance := TMyClass.Create; | |
| 39 | 37 | end; | |
| 40 | 38 | ``` | |
| 41 | 39 | ||
| 42 | 40 | ``` pascal | |
| 43 | 41 | constructor TMyClass.Create; | |
| 44 | 42 | begin | |
| 45 | 43 | inherited; | |
| 46 | 44 | SomeVar := 6; | |
| 47 | 45 | end; | |
| 48 | 46 | ``` | |
| 49 | 47 | ||
| 50 | 48 | --- | |
| 51 | 49 | *From the Free Pascal wiki, page "Class/fr", as it stood on 2020-02-10 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* |
