Hop til teksten

IT FJERNUNDERVISNING
- IT kurser når Du har tid!

Klasser

Du har sikkert allerede opretet klasser tidligere på kurset, men lad os kigge lidt nærmere på det.

Klasser hører til en diciplin, der hedder objekt orienteret programmering og som man godt kan få lang tid til at gå med at studere. Det er derfor vigtigt for mig at pointere, at denne side ikke skal ses som en total indføring i objekt orienteret programmering, men blot et forsøg på at løfte en flig af emnet og præsentere nogle få begreber så det skulle være muligt at skrive og bruge nogle objekter i ASP.NET.

Objekt eller klasse

Objekt orienteret programmering handler - som navnet også antyder - om objekter så lad os kigge lidt på sådan et objekt. Et nærliggende eksempel på et objekt kunne være en kunde. Om sådan en kunde vil vi gerne vide navn, kontonummer, adresse, telefonnummer osv. - alle disse ting kalder vi egenskaber ved objektet. Men vi kunne måske også godt tænke os at kunne oprette en ordre fra kunden - det kalder vi en metode (noget objektet kan gøre for os). Metoder og egenskaber er altså begreber der knytter sig til et objekt!

For at beskrive vores kundeobjekts metoder og egenskaber laver vi det der hedder en class file - eller på dansk - en klasse fil. En klassefil på sådan et kundeobjekt kan se sådan her ud. Jeg har kun medtaget en enkelt egenskab og en enkelt metode for at gøre det mere overskueligt.

public class Kunde
{
	public Kunde()
	{
		//Forklaring kommer senere
	}

    string _Navn;

    public string Navn
    {
       		get { return _Navn; }
			set { _Navn = value;}
	}

    public void OpretOrdre()
    {
        // koden kommer senere
    }
}

Public Class Kunde
  Public Sub New()
    ' Forklaringen til dette kommer senere
  End Sub

  Dim _Navn As String

  Public Property Navn() As String
    Get
      Return _Navn
    End Get
    Set(ByVal Value As String)
      _Navn = Value
    End Set
  End Property

  Public Sub OpretOrdre()
    ' Koden må komme senere
  End Sub

Sådan en klasse fil er ikke i sig selv et objekt! - men en beskrivelse af, hvordan objektet skal opføre sig.

Rent praktisk laver man en klasse til i VS.NET ved at højreklikke i Solution Explorer og vælge Add Item og dernæst Add class. Og i filen der fremkommer skriver man sin klasse - det er ikke så svært.

Brug af klassen / instantiere et objekt

Nu har vi så fået beskrevet objektet - så skal vi til at bruge det! Det sker som regl i vores codebehind fil til en web-form.

Det vi skal gøre er at bede om at få oprettet et kundeobjekt, der opfører sig som beskrevet i vores klassefil - det hedder at instantiere objektet. Koden til det ser sådan her ud

Kunde objKunde = new Kunde();

Dim objKunde As Kunde = New Kunde()

For at dette kan virke skal ASP.NET lige have at vide, at vi faktisk har sådan en klasse - det gør man med linjen

using DitProjektNavn.Kunde;

Imports DitProjektNavn.Kunde

Når vi på denne måde har instanieret et kundeobjekt bliver der sat plads af i hukommelsen til objektet og de indre variable (i dette tilfælde _Navn) og vi kan arbejde mod fra vores kode:

objKunde.Navn = "Scient Data";
objKunde.OpretOrdre();

objKunde.Navn = "Scient Data"
objKunde.OpretOrdre

Vi kan lave endnu et kundeobjekt og bruge det til noget andet

Kunde objNyKunde = new Kunde();
objNyKunde.Navn = "Et nyt firma";
objNyKunde.OpretOrdre();

Dim objNyKunde As Kunder = New Kunde()
objNyKunde.Navn = "Et nyt firma"
objNyKunde.OpretOrdre

Det skulle være nogenlunde til at forstå. Lad os vende lidt tilbage til klasse filen.

Lidt mere om klasse filen

Jeg skrev tidligere 

public class Kunde
{
 public Kunde()
 {
  //Forklaring kommer senere
 }

.

.


Public Class Kunde
  Public Sub New()
    ' Forklaringen til dette kommer senere
  End Sub
.
.
.

Den kode man skriver her, kan bruges til ting man gerne vil have lavet når objektet bliver instantieret - f.eks. hente nogle informationer op af en database. Læg mærke til, at man godt kan skrive flere metoder her:

public class Kunde
{
 public Kunde()
 {
  // Opret kunde
 }

    public Kunde(int ID)
    {
        // Hent kunden med ID op af databasen
    }

    public Kunde(string Navn)
    {
        // Hent kunden med Navn op af databasen
    }


Public Class Kunde
  Public Sub New()
    '
  End Sub

  Public Sub New(ByVal ID As Integer)
    ' Hent kunden med ID op af databasen
  End Sub

  Public Sub New(ByVal Navn As String)
    ' Hent kunden med Navn op af databasen
  End Sub

.
.

Klassen finder selv ud af, hvilken af de 3 metoder der skal kaldes afhængigt af hvilken parameter der sendes med når objektet skal instantieres.

Andre objekt relaterede begreber

Ud over de begreber vi har kigget på her kan man også kigge på begreber som

  • Samlinger
  • Nedarvning
  • Polymorfisme
  • UML diagrammer

Men det må blive en anden gang - og måske på et kursus i objekt orienteret programmering (det kan være jeg skriver sådan ét en dag).

Når du har betalt for kurset får du adgang til øvelser til hver lektion. Og når du har fået godkendt din besvarelse får du desuden adgang til mine løsningsforslag med ekstra tips og trix.