Objektorienterad programmering är ett av de mest populära programmeringsparadigmen. Detta beror på att den modellerar både data och funktioner och låter dig tänka i termer av verkliga objekt. Klasser är en grundläggande aspekt av objektorienterad programmering eftersom de ger ritningen du behöver för att skapa objekt.

C# är ett populärt programmeringsspråk för flera paradigm, som använder det objektorienterade paradigmet. I den här artikeln kommer du att lära dig hur du skapar och använder klasser i C#.

Skapa en klassdeklaration

I C# är en klass en referenstyp som kommer att innehålla null värde tills du skapar ett nytt objekt i klassen. För att skapa en ny klass i C# behöver du flera komponenter:

  • En åtkomstmodifierare.
  • De klass nyckelord.
  • Namnet du vill tilldela klassen.
  • Ett par öppna och stängda lockiga hängslen (som kommer att omsluta klassens attribut, konstruktorer och metoder).
inre klassKund{ }

Koden ovan skapar en ny klass som är tillgänglig för andra klasser i samma assembly (kompileringsfil). C# har exakt sex åtkomstmodifierare som du kan använda för att kontrollera tillgänglighetsnivåerna för dina klasser, variabler och metoder. De sex åtkomstmodifierarna är:

instagram viewer

  • offentlig: varje klass (oavsett dess sammansättning) kan komma åt den offentliga klassen och dess publika medlemmar (attribut, konstruktörer och metoder).
  • privat: endast den privata klassen och dess medlemmar kan komma åt den.
  • skyddad: endast härledda klasser (barn- och barnbarnsklasser) kan komma åt den skyddade klassen.
  • inre: endast klasser i samma assembly kan komma åt den interna klassen.
  • skyddad inre: endast klasser i samma sammansättning eller en härledd klass från en annan sammansättning kan komma åt den skyddade interna klassen.
  • privat skyddad: endast härledda klasser i samma sammansättning kan komma åt den privata skyddade klassen.

Deklarera och få åtkomst till attribut

Attribut är byggstenarna för de klasser du skapar. De har känsliga uppgifter och har vanligtvis en privat eller skyddad åtkomstmodifierare. För att komma åt dessa klasser från externa klasser skulle du därför behöva använda accessorer och mutatorer (getters och setters).

C# låter dig deklarera dina attribut, mutatorer och accessorer enligt följande:

inre klassKund
{
// attribut
privatint Id nummer;
privat sträng Namn;
privatdubbel Total;

// sättare
offentligtomhetSetIdNumber(int Id nummer){ detta.IdNumber = IdNumber; }
offentligtomhetAnge namn(strängnamn){ detta.Namn = Namn; }
offentligtomhetSetTotal(dubbel Total){ detta.Total = Totalt; }

// getters
offentligintGetIdNumber(){ lämna tillbakadetta.Id nummer; }
offentlig sträng Hämta namn(){ lämna tillbakadetta.Namn; }
offentligdubbelGetTotal(){ lämna tillbakadetta.Total; }
}

Andra populära objektorienterade språk använd även metoden ovan. Faktum är att om du vill skapa Java-klasser, måste du använda strukturen ovan. Men C# har nu ett enklare sätt att skapa attribut och accessorer. I C# har denna klass samma funktion som den ovan:

inre klassKund
{
public int IdNumber { skaffa sig; uppsättning; }
offentlig sträng Namn { skaffa sig; uppsättning; }
offentlig dubbel Totalt { skaffa sig; uppsättning; }
}

Klassen ovan innehåller vad C# kallar egenskaper, som är en kombination av attribut (fält) och metoder. Med egenskaper, kan du halvera din attributdeklaration, mutatorer och accessorer.

Deklarerande konstruktörer

Konstruktörer är en annan grundläggande aspekt av en klass. För att skapa ett objekt från en klass måste du anropa en av dess konstruktörer. Varje konstruktör har en valfri åtkomstmodifierare och samma namn som sin klass. För objektorienterade programmeringsspråk finns det i allmänhet tre typer av konstruktörer:

  • Standardkonstruktör: tar inga argument och ger varje attribut ett standardvärde.
  • Primär konstruktör: tar ett eller flera argument (beroende på antalet variabler i klassen).
  • Kopiera konstruktör: tar en annan konstruktor som argument.

C# har en paraplyterm för standard- och primärkonstruktörerna ovan — instanskonstruktörer. Detta programmeringsspråk har också två andra konstruktorer (privata och statiska). Den här artikeln fokuserar på de tre traditionella konstruktörerna.

Standardkonstruktör

// standardkonstruktor
offentlig Kund()
{
IdNumber = 0;
Namn = "okänd";
Totalt = 0;
}

Primär konstruktör

// primär konstruktör
offentligKund(int IdNumber, string Name, string CustomerType, dubbel Total)
{
detta.IdNumber = IdNumber;
detta.Namn = Namn;
detta.Total = Totalt;
}

Kopiera konstruktör

// kopieringskonstruktör
offentlig Kund (kund tidigare kund)
{
detta.IdNumber = föregående kund. Id nummer;
detta.Name = föregående kund. Namn;
detta.Total = föregående kund. Total;
}

Skapa metoder

Metoder är inte en avgörande klasskomponent, men de är användbara. En klass kan ha en eller flera metoder. En metod har en åtkomstmodifierare, en returtyp, ett namn och en body.

// metod
offentlig sträng CustomerDetail()
{
lämna tillbaka " ID: " + IdNumber + " Namn: " + Namn + " Total: " + Totalt;
}

Koden ovan returnerar en strängrepresentation av kundobjektet.

Skapa objekt

Efter att ha skapat en komplett klass, utrustat den med attribut, konstruktorer och en metod, kan du börja skapa objekt med de olika konstruktörerna. För att skapa ett objekt utan attribut kan du använda standardkonstruktorn:

Kund John = ny Kund();

Kodraden ovan skapar en standardkund och tilldelar den till en variabel som kallas John. Med John, kan du komma åt standardvärdet för varje kundattribut.

Trösta.Skrivlinje(John.Namn);

Om du kör koden ovan skrivs följande ut i konsolen:

Okänd

Du kan också använda John variabel för att komma åt valfri metod i kundklassen.

Trösta.Skrivlinje(John.CustomerDetail());

Genom att köra kodraden ovan skrivs följande ut i konsolen:

ID: 0 Namn: okänt Totalt: 0

För att skapa ett objekt med attribut använder du den primära konstruktorn:

Kund John = ny kund (1001, "John Doe", 250.20);
Trösta.Skrivlinje(John.CustomerDetail());

Genom att köra koden ovan skrivs följande ut i konsolen:

ID: 1001 namn: JohnHindTotal: 250.2

För att skapa en kopia av objektet ovan kan du använda kopieringskonstruktorn:

Kund Johnny = ny Kund (John);
Trösta.Skrivlinje(Johnny.CustomerDetail());

Genom att köra koden ovan skrivs följande ut i konsolen:

ID: 1001 namn: JohnHindTotal: 250.2

Som du kan se är kopiekonstruktorn en kopia av den primära konstruktorn. Kopieringskonstruktorn kan också ta en standardkonstruktor som ett argument:

Kund John = ny Kund();
Kund Johnny = ny Kund (John);
Trösta.Skrivlinje(Johnny.CustomerDetail());

Genom att köra koden ovan skrivs följande ut i konsolen:

ID: 0 Namn: okänt Totalt: 0

Nu kan du skapa och använda C#-klasser

Du kan använda det objektorienterade paradigmet i C# för att definiera klasser och skapa objekt från dem. Du kan skapa metoder för varje klass som sedan kan arbeta på deras objekts attribut.

Det objektorienterade paradigmet är dock inte det enda du behöver vara bekant med. De tre bästa programmeringsparadigmen är imperativa, objektorienterade och funktionella.