begin process at 2010 03 21 20:55:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Algorithme

 > 

Divers

 > 

Construire une class dependant d'un autre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Construire une class dependant d'un autre

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

Myke

Membre Club
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 seulement

Protected aNo AsInteger

Protected aProprietaire AsString

Protected aBalance AsDouble = 0

PublicSubNew()

EndSub

'Constructeur avec paramètre

PublicSubNew(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 variables

PublicProperty no() AsInteger

Get

Return aNo

EndGet

Set(ByVal Value AsInteger)

aNo = Value

EndSet

EndProperty

PublicProperty proprietaire() AsString

Get

Return aProprietaire

EndGet

Set(ByVal Value AsString)

aProprietaire = Value

EndSet

EndProperty

PublicReadOnlyProperty balance() AsDouble

Get

Return aBalance

EndGet

EndProperty

'Exemple d'un sub qui permettrait de retirer de l'argent au compte

PublicSub retirer(ByVal paramMontant AsDouble)

aBalance -= paramMontant

EndSub

'Overridables permet de pouvoir modifier le sub dans les

'classe dérivés

PublicOverridableSub deposer(ByVal paramMontant AsDouble)

aBalance += paramMontant

EndSub

End

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 CompteBancaire

Private aBonus AsInteger

PublicSubNew()

EndSub

'Constructeur avec tous les paramètres comme dans celui plus haut, mais avec compte bancaire en supplément

PublicSubNew(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 parent

PublicProperty bonus() AsInteger

Get

Return aBonus

EndGet

Set(ByVal Value AsInteger)

aBonus = Value

EndSet

EndProperty

'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 parent

MyBase.deposer(paramMontant)

If paramMontant > 100 Then

aBonus += 10

EndIf

            EndSub

End
Class

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 Sub

End

Class
mercredi 8 août 2007 à 16:10:45 | Re : Construire une class dependant d'un autre

Myke

Membre Club

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 AsInteger

PublicSubNew(ByVal Par AsInteger)

EndSub

PublicReadOnlyProperty Nested()

Get

ReturnNew NestedClass

EndGet

EndProperty

'Ajout d'une propriété pour accéder et attribuer

'des valeurs à aUserId

PublicProperty UserId() AsInteger

Get

         Return aUserId

EndGet

Set(ByVal Value AsInteger)

         aUserId = Value

EndSet

EndProperty

REM - Class Nested

FriendClass 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()

         EndSub

EndClass

End

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

Membre Club
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

NHenry

Membre Club
Bonjour

Décidément

Balèse la personne qui a pensé au pansement à penser (ou à panser, pensée).
VB (6, .NET1&2), C++, C#.Net1
Mon site

1 2

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


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales