Accueil > Forum > > > > Construire une class dependant d'un autre
Construire une class dependant d'un autre
mardi 7 août 2007 à 22:06:32 |
Construire une class dependant d'un autre

Myke
|
J'aimearis avoir un exemple de class dependante. Comment peux on acceder au information de la class supérieur commeles variable ? Est-ce que les class imbriqué sont la solution ?
|
|
mercredi 8 août 2007 à 01:57:05 |
Re : Construire une class dependant d'un autre

avelone
|
T'entend quoi par classe supérieur, une classe parent que tu viens d'hériter si c'est le cas tu dois avoir dans un projet par exemple une classe dans une nouvelle classe. Je vais te donner un exemple de classe hériter en te présentant une classe compteBancaire qui contient quelque information d'un compte : Public Class CompteBancaire 'Déclaration de variables protected pouvant être lu par les 'classes dérivés et cette classe seulementProtected aNo AsIntegerProtected aProprietaire AsStringProtected aBalance AsDouble = 0PublicSubNew()EndSub'Constructeur avec paramètrePublicSubNew(ByVal paramNo AsInteger, ByVal paramProprio AsString, ByVal paramBalance AsDouble)aNo = paramNo aProprietaire = paramProprio aBalance = paramBalance EndSub'Propriétés publique pour accéder aux valeurs des variables et'pour setter des valeurs aux variablesPublicProperty no() AsInteger Get Return aNoEndGetSet(ByVal Value AsInteger)aNo = Value EndSetEndPropertyPublicProperty proprietaire() AsString Get Return aProprietaireEndGetSet(ByVal Value AsString)aProprietaire = Value EndSetEndProperty PublicReadOnlyProperty balance() AsDouble Get Return aBalanceEndGetEndProperty'Exemple d'un sub qui permettrait de retirer de l'argent au comptePublicSub retirer(ByVal paramMontant AsDouble)aBalance -= paramMontant EndSub'Overridables permet de pouvoir modifier le sub dans les'classe dérivésPublicOverridableSub deposer(ByVal paramMontant AsDouble)aBalance += paramMontant EndSubEnd ClassVoilà maintenant une classe dérivé qui hérite de cette classe parent qui est donc un compte bancaire, mais disons que pour l'exemple, ce compte bancaire possède un bonus qui est incrémenter de 10 points pour chaque dépot de 100$, c'est une exemple, alors, on peut hériter de compte bancaire pour reprendre ce que la classe possède déjà afin de ne pas réinventer la roue et créer le bonus en supplément dans cette classe, la classe aura accès à tous les attributs de la classe parent ainsi qu'aux méthodes (bien sur, si l'attribut est privé on ne pourra pas le voir) : Public Class CompteBancaireBonus Inherits CompteBancairePrivate aBonus AsIntegerPublicSubNew()EndSub'Constructeur avec tous les paramètres comme dans celui plus haut, mais avec compte bancaire en supplémentPublicSubNew(ByVal paramNo AsInteger, ByVal paramProprio AsString, ByVal paramBalance AsDouble, ByVal paramNbBonus AsInteger)aNo = paramNo aProprietaire = paramProprio aBalance = paramBalance aBonus = paramNbBonus EndSub'Nouvelle propriété, pas obligé de créer les autres, ils ont déjà été créé dans la classe parentPublicProperty bonus() AsInteger Get Return aBonusEndGetSet(ByVal Value AsInteger)aBonus = Value EndSetEndProperty'On modifie la méthode deposer pour ajouter 10 dans les bonus à'chaque fois que l'usager dépose plus de 100 $'C'est un exemple pour modifier une classe parent'avec le mot clé "Overrides"PublicOverridesSub deposer(ByVal paramMontant AsDouble) 'Permet d'aller chercher ce qui a déjà été créé dans la classe parentMyBase.deposer(paramMontant)If paramMontant > 100 ThenaBonus += 10 EndIf EndSub
EndClass
|
|
mercredi 8 août 2007 à 02:20:31 |
Re : Construire une class dependant d'un autre

avelone
|
Si tu désires accéder à des variables et des méthodes d'un autre projet que tu as créé, tu dois le compiler et prendre la dll obtenu dans le fichier bin. Ensuite, tu peux ajouter une référence dans ton nouveau projet sur la dll obtenu dans le fichier bin. Ensuite, tu peux utiliser toutes les fontions et les variables publiques qui s'y trouve.
Sinon, si tu veux accéder à une variable ou méthode dans une classe du même projet sans effectuer d'héritage comme j'ai fais plus haut, tu n'as qu'à instancier une nouvelle instance de cette classe et ensuite tu pourra la manipuler comme instance de la classe désirée. Tu pourra donc lui attribué les valeur défini dans ton autre classe ainsi qu'atteindre les méthodes
Exemple : Dans mon exemple, j'ai créér 2 projets sous la même solution pour te donner un exemple de faire une importattion de projet sous une même solution.
Donc, mes classes compteBancaire et compteBancaireBonus se trouve dans la librairie : ClassLibrary1. Je dois donc l'importer pour pouvoir créer des instances de classe que je pourrai manipuler :
'J'importe ma ClassLibrary1 qui contient les classes Imports ClassLibrary1
Public Class Exemple 'je crée un instance de compteBancaire que j'instancie immédiatement Private cb As CompteBancaire = New CompteBancaire 'je crée un instance de compteBancaire que je vais instancier plus 'tard à titre d'exemple Private cbBonus As CompteBancaireBonus
Public Sub attribuerValeur() 'J'attibue mes valeurs à compteBancaire en utilisant 'les méthodes créées dans la classe CompteBancaire cb.no = 1 cb.proprietaire = "unNom" 'J'utilise une méthode de la classe CompteBancaire cb.deposer(100)
'J'instancie CompteBancaireBonus cbBonus = New CompteBancaireBonus 'J'attibue mes valeurs à compteBancaireBonus en utilisant 'les méthodes créées dans la classe CompteBancaireBonus cbBonus.no = 2 cbBonus.proprietaire = "riche" 'J'utilise une méthode de la classe CompteBancaireBonus cbBonus.deposer(200) End Sub End Class
|
|
mercredi 8 août 2007 à 02:24:07 |
Re : Construire une class dependant d'un autre

avelone
|
Désolé pour la lisibilité, je reprend : 'J'importe ma ClassLibrary1 qui contient les classes Imports ClassLibrary1 Public Class Exemple 'je crée un instance de compteBancaire que j'instancie imm,diatement Private cb As CompteBancaire = New CompteBancaire 'je crée un instance de compteBancaire que je vais instancier plus 'tard . titre d'exemple Private cbBonus As CompteBancaireBonus Public Sub attribuerValeur() 'J'attibue mes valeurs . compteBancaire en utilisant 'les méthodes créées dans la classe CompteBancaire cb.no = 1 cb.proprietaire = "unNom" 'J'utilise une méthode de la classe CompteBancaire cb.deposer(100) 'J'instancie CompteBancaireBonus cbBonus = New CompteBancaireBonus 'J'attibue mes valeurs . compteBancaireBonus en utilisant 'les méthodes créées dans la classe CompteBancaireBonus cbBonus.no = 2 cbBonus.proprietaire = "riche" 'J'utilise une méthode de la classe CompteBancaireBonus cbBonus.deposer(200) End SubEnd Class
|
|
mercredi 8 août 2007 à 16:10:45 |
Re : Construire une class dependant d'un autre

Myke
|
Ce n'est pas exactement ce que je veux faire. Example : PublicClassMain Private _UserId As Integer Public Sub New ( ByVal Par AsInteger ) .... EndSub Public ReadOnly Property Nested() Get Return New NestedClass End Get End Property REM - Class Nested Friend Class NestedClass Public Sub GetElement() .... End Sub End Class End Class Dans ce cas les deux class sont imbriqué il y a-t-il un moyen de remonter la hiéarchie pour accéder à la variable userId à partir de la class NestedClass ???
Myke
|
|
mercredi 8 août 2007 à 18:03:20 |
Re : Construire une class dependant d'un autre

avelone
|
Selon ton exemple, il y aurait moyen d'insatncier une nouvelle classe Main et d'aller chercher les valeur de la variable en ajoutant un accesseur dans la classe Main, soit une property : Public Class Main Private aUserId AsIntegerPublicSubNew(ByVal Par AsInteger)EndSubPublicReadOnlyProperty Nested() Get ReturnNew NestedClassEndGetEndProperty'Ajout d'une propriété pour accéder et attribuer'des valeurs à aUserIdPublicProperty UserId() AsInteger Get Return aUserIdEndGetSet(ByVal Value AsInteger) aUserId = Value EndSetEndPropertyREM - Class NestedFriendClass NestedClass PublicSub GetElement() 'instanciation de la classe Dim test As Main = New Main(1) Dim chercherUserId AsInteger = 100 'J'attribue une valeur à la variable aUserId test.UserId = chercherUserId 'Je vais chercher la valeur de la variable aUserId chercherUserId = test.UserId() EndSubEndClassEnd Class
S'il y a quoi que ce soit, fais moi signe
|
|
mercredi 8 août 2007 à 22:11:48 |
Re : Construire une class dependant d'un autre

NHenry
|
Bonjour Remarque : PublicReadOnlyProperty Nested()Pense à mettre Option Explicit à On dans les propriétés de ton projet, c'est plus propre et plus rapide. Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée). VB (6, .NET1&2), C++, C#.Net1 Mon site
|
|
mercredi 8 août 2007 à 22:24:39 |
Re : Construire une class dependant d'un autre
|
mercredi 8 août 2007 à 22:26:58 |
Re : Construire une class dependant d'un autre
|
mercredi 8 août 2007 à 22:27:59 |
Re : Construire une class dependant d'un autre
|
Cette discussion est classée dans : class, construire, dependant
Répondre à ce message
Sujets en rapport avec ce message
Connection a des BD différentes [ par NETSAGE ]
Bonjour à tous et toutes Je voudrais créer une class qui me permet de construire la ConnectionString dynamiquement avec la possibilité de choisir
vb.net [ par taikibaybay ]
Salut et bonne fetej utilise visual basic express et je ne trouve pas le Class diagram et je me demande si il existe sur la version express, si oui co
Question très bête (Vol.2) [ par _Fabien ]
J'ai trouvé la source suivante : http://www.vbfrance.com/codes/NET-TYPE-STRUCTURE-COMPATIBILITE-VB6_25830.aspxJe n'arrive pas à la faire marcher. J'ai
variables dans une class [ par shadow1779 ]
Bonjour, ca fais longtemps que je n'ai pas codé et j'ai un peu de lacunes, j'ai fait un programme en Windows Forms et une class avec plusieurs methode
cree un class [ par toufou2006 ]
bonjour,je rviens vers vous car, j ai vraimement besoin de savoir est ce que avec un truc de ce genreclsid=151A5839-A724-11D2-B1B9-00C04FC22764, typel
objet COM vb.net [ par billy21121 ]
Bonjour a tous,j'ai un petit problème sur des formulaires vb.net.j'ai crée une dll en vb.net qui contient une class et une form. ma class appel la for
Webcam via Axis [ par toosdu87 ]
Bonjour a tous,Je souhaiterai controler ma webcam de marque Axis sur le réseau via une application VB NET 2005.Après quelque recherche j'ai trouvai l'
Accès données depuis une Class [ par therafou ]
Bonjour,j'ai une class qui me crée un tableau avec à l'intérieur une structure définit dans ma class.Le tableau est en public Shared donc je peux y av
class paint et la memoire! [ par darkflyer ]
en fait j'utilise la class paint pour dessiner des choses à partir d'un tableau de données stocké en memoire!ma question est si on change le contenu d
Invoke dans une class [ par OneHacker ]
Bonjour j'ai créer une classe vide mais ce n'est pas un contrôle, est-ce qu'il y la posibilité d'implémenté un code pour que la classe puisse utiliser
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|