Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ MENU ⇨ BIBLIOTHEQUE

classlib.bbc

DESCRIPTION.


Le module classlib.bbc propose des procédures et des fonctions pour la création de classes d'objets.




SYNTAXE.


INSTALL @lib$ + "classlib.bbc"




REMARQUES.


Le langage de programmation BBC BASIC for SDL 2.0 n'est pas un langage orienté objet (POO), mais la bibliothèque classlib.bbc, une fois installée dans le script de votre programme, va permettre de créer des classes, et lui associer des méthodes, à partir desquelles des on pourra instancier des objets.


Avec le module classlib.bbc, une “classe” sera en réalité une structure de données standard (DIM{}) contenant une table de méthodes et une chaîne de pointeurs vers le code. Chaque méthode étant une entrée chaînée en mémoire



1. Déclarer une structure de données classique, dont les éléments sont les arguments qui devront être transmis pour la création d'un nouvel objet issu de cette classe, suivi des noms de méthodes associées à cette classe. Par exemple, la déclaration suivante va permettre de créer une classe nommée CLS_Classe, qui disposera des méthodes MTD_A, MTD_B et MTD_C, et à la quelle il faudra passer des valeurs pour les paramètres a,  b,  c,  a$ et b$ lors de l(instanciation d'un nouvel objet.

INSTALL @lib$ + "classlib.bbc"                                                                                                       

DIM MDL_Classe{ a , b , c , a$ , b$ , MTD_A , MTD_B , MTD_C } 




2. Créer la classe avec la procédure PROC_class(), provenant de l'installation  du module classlib.bbc, en lui donnant la structure de données la définissant comme paramètre.

PROC_class( MDL_Classe{} )




3. Définir les méthodes associées, en utilisant l'instruction DEF sans PROC ni FN. 

REM --- Definition du créateur des objets de la classe (optionnel) ---

DEF MDL_Classe.@MDL_Classe 

REM --- code du constructeur ---

REM --- code du constructeur ---

REM --- code du constructeur ---

ENDPROC


REM --- Definition du destructeur des objets de la classe (optionnel) ---

DEF MDL_Classe.@@MDL_Classe 

REM --- code du constructeur ---

REM --- code du constructeur ---

REM --- code du constructeur ---

ENDPROC


REM --- Definition d'une methode qui ne retourne rien (eq. PROC) ---

DEF MDL_Classe.MTD_A ( attributa , attributb , ... , attributn ) 

REM --- code ---

REM --- code ---

REM --- code ---

ENDPROC


REM --- Definition d'une methode qui retourne une valeur (eq. FN) ---

DEF MDL_Classe.MTD_B ( attributa , attributb , ... , attributn ) 

REM --- code ---

REM --- code ---

REM --- code ---

= valeur_retournee


REM --- Definition d'une methode sur une seule ligne de code ---

DEF MDL_Classe.MTD_C ( attributa , attributb , ... , attributn ) :  --- code --- : ENDPROC




4. Instancier, créer, des objets avec une classe définies précédemment. Si un créateur (.@) d'objet a été définit pour la classe, il sera appelé automatiquement, procédure PROC_new(), provenant de l'installation  du module classlib.bbc, en donnant comme premier paramètre le nom de la structure de données qui identifiera l'objet et en deuxième paramètre l'identifiant de la structure de données définissant la classe. Par exemple, la ligne suivante va créer un objet nommé OBJ_Objet, qui sera une instance de la classe CLS_Classe.

PROC_new( OBJ_Objet{} , MDL_Classe{} )




6. Modifier ou obtenir les valeurs des attributs de l'instance d'une classe. La paire d'accolades {} est optionnelle.

OBJ_Objet{}.attributa = valeur : REM - pour modifier la valeur de  l'attribut ou

OBJ_Objet.attributa = valeur : REM - pour modifier la valeur de  l'attribut ou

kvaleur = OBJ_Objet{}.attributa : REM - pour obtenir la valeur de  l'attribut ou

kvaleur = OBJ_Objet.attributa : REM - pour obtenir la valeur de  l'attribut




6. Appeler les procédures et fonction de l'instance d'une classe. Une fois créer, un objet, une instance de la classe, peut appeler les méthodes définit à la suite de la déclaration de la classe. Pour appeler un procédure ou une fonction, liée à une instance, la paire d'accolades {} est optionnelle.

PROC( OBJ_Objet{}.MTD_A ) : REM - appel d'une methode sans parametre avec la paire d'accolades ou

PROC( OBJ_Objet.MTD_A ) : REM - appel d'une methode sans parametre sans la paire d'accolades

PROC( OBJ_Objet.MTD_A ) ( valeura , valeurb , ... , valeurn ) : REM - appel d'une methode avec des parametres

kvaleur = FN( OBJ_Objet.MTD_B ) : REM - appel d'une fonctionsans parametre

kvaleur = FN( OBJ_Objet.MTD_B ) ( valeura , valeurb , ... , valeurn ) : REM - appel d'une fonction avec des parametres



Le module doit être chargé depuis votre programme à l'aide de l'instruction : INSTALL @lib$ + "classlib.bbc"




LISTE DES PROCÉDURES DU MODULE.


FN_typeof() : Détermine si deux objets sont des instances de la même classe.

PROC_class() : déclare et crée une nouvelle class

PROC_discard() : détruit une instance de classe.

PROC_inherit() : déclare et crée une nouvelle classe, enfant, qui héritera des attributs et méthode d'une autre classe, parente.

PROC_new() : crée une instance, nouvel objet, d'une classe.

Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de

vos remarques, vos commentaires et de vos suggestions.

Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour

TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER

avec un exemple de résolution à télécharger pour vous inspirer.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse