vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Theorie der OOP in VB.Net 
Autor: Thomas Krause
Datum: 21.03.03 14:56

Nun,

Als erstes machst du eine Klasse namens Computer

Public Class Computer
     Public Hersteller as String
     Public Mainboard as String
     ...
 
End Class
Dieser Klasse kannst du wie oben gezeigt Eigenschaften, wie dem Namen des Mainboards hinzufügen. Wenn du eine Auflistung von Objekten haben willst (z.B. für die Festplatten), musst du eine typisierte Collection erstellen.
Public Class FestplattenCollection
    Inherits System.Collections.CollectionBase
 
    Public Sub Add(hdd as Festplatte)
        MyBase.List.Add(hdd)
    End Sub
 
    Public Sub Remove(hdd as Festplatte)
        MyBase.List.Remove(hdd)
    End Sub
    'Eventuell noch das gleiche für "Contains" oder anderen Methoden
 
    Public Property Item(i as Integer) as Festplatte
        Get
            Item=CType(base.Item(i), Festplatte)
        End Get
        Set(value as Festplatte)
            base.Item(i)=value
        End Set
    End Property
End Class
In deiner Klasse oben (Computer) kannst du jetzt eine Variable vom Typ FestplattenCollection erstellen:

Public Class Computer
     Public Hersteller as String
     Public Mainboard as String
     ...
     Public Festplatten as FestplattenCollection
End Class
Das ganze kannst du jetzt natürlich für alle anderen Komponenten genauso machen.

Ich würde das ganze allerdings anders machen:

Eine Basisklasse schreiben, die die Eigenschaften enthält, die jede Hardware hat (z.B. Hersteller).
Dann schreibst du für jede Art von Hardware (wie Festplatte) eine Klasse die von der Hardware-Klasse erbt.

Public Class Festplatte
    Implements Hardware
    'Hier müssten alle zusätzlichen Eigenschaften hin, die nicht in der 
    ' Basisklasse sind
End Class
In deiner Computerklasse machst du jetzt nur eine Auflistung für alle Komponenten und machst dann eine Variable in der Computer-Klasse, die diese Klasse instanziert (z.B. "Komponenten")

Public Class HardwareCollection
    Inherits System.Collections.CollectionBase
 
    Public Sub Add(h as Hardware)
        MyBase.List.Add(h)
    End Sub
 
    Public Sub Remove(h as Hardware)
        MyBase.List.Remove(h)
    End Sub
    'Eventuell noch das gleiche für "Contains" oder anderen Methoden
 
    Public Property Item(i as Integer) as Hardware
        Get
            Item=CType(base.Item(i), Hardware)
        End Get
        Set(value as Hardware)
            base.Item(i)=value
        End Set
    End Property
End Class
Jetzt kannst du um zum Beispiel die Namen aller Hersteller von Festplatten in deinem Computer anzuzeigen einfach folgendes machen:

Dim MeinPC as Computer
....
For Each hdd as Festplatte in MeinPC.Komponenten
    Debug.Write(hdd.Hersteller)
Next
Du kannst das ganze auch noch abstrakter machen in dem du so eine Art Klassenhierachie aufstellst:

Hardware
Steckkarte
PCI_Steckkarte
Soundkarte
AGP_Steckkarte
Grafikkarte
Festplatte
CPU
...

Soundkarte erbst dann von PCI_Steckkarte, die wiederum von Steckkarte und die wiederum von Hardware.

Das ist OOP! (hoffe ich )

Thomas Krause
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Theorie der OOP in VB.Net266Toddi20.03.03 09:38
Re: Theorie der OOP in VB.Net585Thomas Krause21.03.03 14:56
???454Supernova21.03.03 18:17
Re: ???439Thomas Krause22.03.03 12:33
Re: Theorie der OOP in VB.Net114Toddi07.04.03 15:38
Re: Theorie der OOP in VB.Net98Toddi08.04.03 10:10
Re: Theorie der OOP in VB.Net450Thomas Krause08.04.03 14:24

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel