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

PROC_new()

DESCRIPTION.


La procédure PROC_new() crée une instance, un nouvel objet, d'une classe.



SYNTAXE.


PROC_class( OBJ_Objet{} , MDL_Classe{} )




REMARQUES.


OBJ_Objet{} doit être l'identifiant de l'instance, l'objet. Fondamentalement c'est une structure de données standard.


MDL_Classe{} doit être être l'identifiant de la classe dont on souhaite faire une instance.


 

Une fois créée, l'instance, l'objet, pourra invoquer toutes les méthodes définies lors de la création de la classe ainsi que tous les attributs propre à l'instance.


Pour modifier un attribut de l'instance, ou pour invoquer une de ses méthodes, il faut faire précéder le nom de l'attribut ou de la méthode de l'identifiant de l'instance, et non de la classe.



Les méthodes de type procédure, c'est-à-dire qui ne doivent pas retourner de valeur, doivent être appelée avec le mot clé PROC. Par exemple : PROC( OBJ_Objet{}.methode ) ou PROC( OBJ_Objet.methode ), la paire d'accolade étant facultative. Si des paramètres sont attendus, ils doivent se trouver dans une paire de parenthèses différentes, et séparée d'un espace. Par exemple : PROC( OBJ_Objet{}.methode ) ( valeur1 , ... , valeurN ).


Les méthodes de type fonction, c'est-à-dire qui doivent retourner une valeur, doivent être appelée avec le mot clé FN. précédée de la variable, ou de l'instruction, qui recevra la valeur. Par exemple : kvaleur = FN( OBJ_Objet{}.methode ) ou kvaleur = FN( OBJ_Objet.methode ), la paire d'accolade étant facultative. Si des paramètres sont attendus, ils doivent se trouver dans une paire de parenthèses différentes, et séparée d'un espace. Par exemple : kvaleur = FN( OBJ_Objet{}.methode ) ( valeur1 , ... , valeurN ).



La procédure PROC_new() est importée depuis le module classlib.bbc. 




EXEMPLE.


REM --- Importation des modules ---

REM --- Module de la bibliothèque BBC BASIC ---

INSTALL @lib$ + "classlib.bbc"


REM --- Declaration de la structure de données associee à la classe ---

DIM MDL_Rectangle{ longeur , largeur , @constructeur , MTD_Cotes , MTD_Perimetre , MTD_Aire , MTD_Diagonale }


REM --- Creation de la classe ---

PROC_class( MDL_Rectangle{} )


REM --- Creation d'un nouvel objet (instance) de la classe MDL_Rectangle ---

PROC_new( OBJ_RectA{} , MDL_Rectangle{} )


REM --- Appel de la methode MTD_Cotes, avec des parametres, qui modifie les attributs de OBJ_RectA ---

PROC( OBJ_RectA.MTD_Cotes ) ( 10 , 4 ) : REM - ou PROC( OBJ_RectA{}.MTD_Cotes ) ( 10 , 4 )

PRINT OBJ_RectA.longeur : REM - PRINT OBJ_RectA{}.longeur

PRINT OBJ_RectA.largeur : REM - PRINT OBJ_RectA{}.largeur


REM --- Appel des methodes MTD_Perimetre et MTD_Aire, sans parametre ---

PROC( OBJ_RectA.MTD_Perimetre )

PROC( OBJ_RectA.MTD_Aire )


REM --- Appel des methodes MTD_Diagonale qui retourne une valeur ---

PRINT "Les diagonales font : " ; FN( OBJ_RectA.MTD_Diagonale ) : REM - OBJ_RectA{}.MTD_Diagonale


REM --- Fin et sortie du programme ---

END




REM --- DEFINITIONS DES PROCEDURES ET FONCTIONS PERSONNALISEES ---



REM --- Definitions des methodes de la classe MDL_Rectangle  ---


REM --- Constructeur de la classe  MDL_Rectangle  ---

DEF MDL_Rectangle.@constructeur

MDL_Rectangle.longeur = 10

MDL_Rectangle.largeur = 5

PRINT "Nouveau rectangle de 10 x 5 creer."

ENDPROC


REM --- Methode de type procedure modifiant les attributs de l'objet grace au passage de parametres  ---

DEF MDL_Rectangle.MTD_Cotes ( Qlongeur , Qlargeur )

MDL_Rectangle.longeur = Qlongeur

MDL_Rectangle.largeur = Qlargeur

ENDPROC


REM --- Methode de type procedure sans parametre calculant et affichant le perimetre du rectangle ---

DEF MDL_Rectangle.MTD_Perimetre

kperimetre = 2 * ( MDL_Rectangle.longeur + MDL_Rectangle.largeur )

PRINT "Le perimetre de ce rectangle est : " ;  kperimetre

ENDPROC


REM --- Methode de type procedure sans parametre calculant et affichant la superficie du rectangle ---

DEF MDL_Rectangle.MTD_Aire

kaire = MDL_Rectangle.longeur * MDL_Rectangle.largeur

PRINT "La superficie de ce rectangle est : " ;  kaire

ENDPROC


REM --- Methode de type fonction sans parametre retournant la la longeur des diagonales du rectangle --

DEF MDL_Rectangle.MTD_Diagonale

kcotes = ( MDL_Rectangle.longeur ^ 2 ) + ( MDL_Rectangle.largeur ^ 2 )

kdiagonale =  SQR( kcotes )

= kdiagonale


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