C# - Klasser
Förord
Denna artikel beskriver grundläggande begrepp för att skapa klasser i C#.Innehåll
»»
»
»
»
Om klasser
Det första du måste inse när du skapar en klass är att du inte använder dig utav namnet som du ger klassen, utan du använder dig utav klassen för att skapa något som kallas för ett objekt. Du kan se det som att du använder dig utav int för att skapa en integer-variabel. Det finns ett undantag och det är om du använder dig utav "static", detta tar jag upp i en senare del.
Ett exempel kan vara om du vill beskriva olika människor. Alla människor har ju samma variabler. Det kan vara längd, vikt, ålder och arbete. Om du då vill göra ett program som hanterar flera människor samtidigt kan du göra en klass som beskriver en person och sedan skapa flera olika objekt (personer) som hänvisar till din klass.
I denna artikel kommer jag förklara de mest grundläggande begreppen för att skapa en enkel klass:
1. Propertities
2. Methods
3. Constructor
När du lärt dig dessa begrepp är du redo att komma igång och skapa dina första klasser.
En första klass
För att komma igång tjuvstartar vi lite genom att skapa en första klass.
public class Person
{
private int lenght;
private decimal weight;
private int age;
private string name;
private string imageUrl;
}
Här har jag skapat en klass med fem olika variabler som jag gett namnet ”Person”.
Samtliga variabler är private vilket betyder att man enbart kan komma åt variablerna med koden inne i klassen.
Nu när du gjort din första klass vill du självklart skapa ett objekt som använder sig utav klassen. Det gör du genom att skriva följande kod.
Person myPerson = new Person();
För att sedan ta bort din variabel skriver du följande:
myPerson = null;
Detta behöver du i princip inte inte göra, då .net automatiskt tar bort den då den inte används längre. Annars försvinner den då ditt program avslutas. Det kan dock alltid vara snyggt att göra.
C# tar hänsyn till om du har stora eller små bokstäver i ett namn, den ser t.ex. andreas och Andreas som två skilda variabler.
Properties
Eftersom jag har satt mina variabler till private har jag ingen möjlighet att ändra på dom. Hur ska jag då gå till väga för att ändra på mina variabler funderar du säkert på nu, svaret är kanske inte helt oväntat properties.
Alternativet till properties är att sätta variablerna till public, då du kan ändra på variabeln utanför klassen utan att använda properties.
Detta är dock ett fult sätt att sköta det på och kan leda till problem du inte väntat dig. Du kanske vill att du enbart ska kunna hämta ett värde från din klass och inte kunna skriva till variabeln. Att då använda sig utav public kan definitivt innebära problem då du även ges tillstånd att skriva till variabeln.
Två huvudbegrepp inom properties är get och set. Precis som namnen antyder använder du dig utav get när du vill få ut ett värde ur din klass och du använder dig utav set när du vill ge en variabel ett värde. Följande kodsnutt förklarar hur detta ser ut:
public class Person
{
private int lenght;
private decimal weight;
private int age;
private string name;
private string imageUrl;
public int Lenght
{
get
{
return lenght;
}
set
{
lenght = value;
}
}
}
I detta fallet kan man både skriva till variabeln och läsa den. Om du enbart vill att man ska kunna skriva till den kan du helt enkelt ta bort ”get”.
Efter att du har skapat din klass använder du den på följande sätt i din klass:
Person myPerson = new Person();
myPerson.lenght = 187;
Methods
Det är helt enkelt en funktion som ni placerar inuti en klass.
public class Person
{
// Borttagen kod för att göra det hela tydligare.
public decimal GetBMI()
{
private decimal bmi;
bmi = lengt*length;
bmi = weight/ bmi;
bmi = bmi/100;
return bmi;
}
}
Jag tror det är så man räknar ut bmi, i vilket fall som helst så förstår ni hur methods fungerar ;)
Sedan använder ni koden som ni säkert misstänkt:
bmi = myPerson.GetBMI();
Du använder alltså det precis som en vanlig function, som du säkert tidigare arbetat med oavsett vilket språk du tidigare använt. Om inte annat har du säkert konstruerat funktioner innan du kom så långt att du vill kolla hur klasser fungerar.
Constructor
En construktor används när du initierar ditt nya objekt för att lägga in värden du redan vet att den kommer innehålla. Det kan ju vara så att du faktiskt redan vet namnet på personen som du ska skapa ett nytt objekt för.
För att skapa detta använder du följande kod:
public class Person
{
// Borttagen kod för enkelhetens skull.
public Person(string name)
{
this.name = name;
}
}
Du ger alltså värderna i klassen ett värde genom att börja med ”this.*”.
Tänkt också på att använda samma namn som du har på din klass ;).
När du sedan ska lägga till din nya person använder du dig utav följande kod:
Person myPerson = new Person(”Andreas Petersson”);
I .NET kan du använda flera olika constructors med samma namn och olika uppsättningar utav variabler. Du kan därefter välja den version som passar dig bäst för tillfället, men du måste dock använda en constructor ifall du skapat en! Om du inte gör det får du ett felmedelande.
Du kan använda dig utav följande kod:
public class Person
{
// Borttagen kod för enkelhetens skull.
public Person(string name)
{
this.name = name;
}
public Person(int age)
{
this.age = age;
}
}
Sedan använder sig din klass av någon av dessa constructors, beroende på om det är en string eller en int du skickar in i början.
----- -----
...som gärna delar med sig av sina kunskaper, och lägger ner tid och arbete på att göra det, skall man respektera.