6237 Programmering II (Csharp) Agenda/Classes

From Teknologisk videncenter
Jump to: navigation, search

Klasser

Klasser kan bedst forklares som en samling af - attributter (Der fortæller noget om objektet) - metoder (Der gør noget med objektet)

Den bedste måde at illustrerer en klasse på er ved at anvende UML. Herunder vises klassen Person, der har attributterne Navn og Email, og metoden SigHej der tager navn som parameter.

6237 Programmering II ClassesFig1.png

Hvis vi skal realiserer klassen skal vi først lave dens attributter. Det gøres med propperties som vist herunder.

class Person
{
	private String navn;
	private String email;
}

Der efter laver vi også dens metoder. I dette tilfælde kun en nemlig SigHej.

public void SigHej(String navn)
{
	System.Console.WriteLine("Hej med dig {0} mit navn er {1}", navn, this.navn);
}

Til sidst skal vi lave en konstruktør. Det er den som bliver kaldt når nogen opretter en instans af klassen.

I konstruktøren overfører vi parametrene navn og email der gemmes i klasens egne variable af samme navn. Derfor kodeordet "this".

//Konstruktør
public Person(String navn, String email)
{
	this.navn = navn; 
	this.email = email;
}

Nu er klassen klar til at blive brugt. Det sker ved at vi opreter variablen p1 og p2 af typer Person. Bemærk parametrene Ole og oles@mail.dk der skal matche dem vi havde i konstruktøren. Til sidst kalder vi metoden SigHej på p1 og giver den navnet Bent som parameter.

static void Main(string[] args)
{
	Person p1 = new Person("Ole", "oles@mail.dk");
	Person p2 = new Person("Bent", "bents@mail.dk");
	p1.SigHej("Bent");
}



Med properties kan vi bestemme hvilke attributter der skal være adgang til udefra og om det skal være read/write.

class Person
{
	//Properties
	private String navn;
	public String Navn
	{
		get { return navn; }
		set { navn = value; }
	}

	private String email;
	public String Email
	{
		get { return email; }
		set { email = value; }
	}
}

Samlet ser det hele sådan ud.

class Person
{
	//Properties
	private String navn;
	public String Navn
	{
		get { return navn; }
		set { navn = value; }
	}

	private String email;
	public String Email
	{
		get { return email; }
		set { email = value; }
	}

	//Konstruktør
	public Person(String navn, String email)
	{
		this.navn = navn; 
		this.email = email;
	}

	public void SigHej(String navn)
	{
		System.Console.WriteLine("Hej med dig {0} mit navn er {1}", navn, this.navn);
	}
}

class Program
{

	static void Main(string[] args)
	{
		Person p1 = new Person("Ole", "oles@mail.dk");
		p1.SigHej("Bent");
	}
}