c concepts constructor
Denne opplæringen forklarer noen av de viktige konseptene i C # programmering, for eksempel konstruktør, destruktorer, statisk klasse, structs og enums:
I en av våre tidligere veiledninger om objekter og klasser lærte vi hva en klasse og et objekt er.
Et objekt ligner på et objekt fra den virkelige verden, og en klasse er en logisk samling av lignende slags objekter. Det er en av de mest grunnleggende typene som finnes i C #. I denne opplæringen vil vi dykke dypt inn i de andre relaterte C # -konseptene.
=> Utforsk Complete C # Training Series her
I denne opplæringen vil vi lære om noen viktige aspekter ved klassene og hvordan vi kan bruke dem i programmene våre. Vi vil prøve å lage enkle C # -programmer basert på konseptene vi lærte i våre tidligere opplæringsprogrammer.
Hva du vil lære:
- Hva er en konstruktør i C #?
- Destruktører i C #
- Statiske medlemmer i en klasse
- Statisk klasse i C #
- Structs In C #
- Forskjellen mellom struktur og klasse
- Struktur: Definisjon
- Enums i C #
- Egenskaper i C #
- Konklusjon
- Anbefalt lesing
Hva er en konstruktør i C #?
Konstruktøren er en spesiell type metode i C # programmeringsspråk som kalles eller påkalles automatisk når et objekt av den gitte klassen opprettes.
Hovedfunksjonen er å initialisere datamedlemmene til det nyopprettede objektet. En av de mest karakteristiske egenskapene til konstruktøren er navnet. Den har samme navn som klassen.
Konstruktørene er i utgangspunktet av to typer:
- Misligholde
- Parameterisert
C # Standardkonstruktør
Som navnet antyder, er standardkonstruktøren den grunnleggende konstruktøren i en klasse. Det har ikke noe argument og påberopes direkte på tidspunktet for oppretting av objekt.
public class Program { public Program(){ Console.WriteLine('Constructor has been invoked'); } public static void Main(string() args) { Program p = new Program(); } }
Resultatet av følgende program vil være:
Konstruktør er påkalt
Forklaring
Vi har definert et konstruktør 'Program' inne i klassen 'Program'. Nå når vi initialiserer klassen i hovedmetoden, blir konstruktøren påkalt automatisk.
Derfor blir uansett kodebit vi har holdt inne i konstruktøren påkalt. Her har vi skrevet ut en melding 'Konstruktør har blitt påkalt' innenfor konstruktørens krøllete bukseseler, så når vi initialiserer klassen, vil konstruktøren som standard initialiseres og meldingen skrives ut som utdata.
Parameterisert konstruktør
Som navnet antyder, er parameteriserte konstruktører konstruktøren med parametere. Disse konstruktørene brukes til å overføre forskjellige verdier til objektene.
public class Details { public Details(int a, int b){ int c = a+b; Console.WriteLine('The sum is: '+ c); } } public class Program { public static void Main(string() args) { Details d = new Details(2, 3); } }
Resultatet av følgende program vil være:
salesforce administrator intervju spørsmål og svar
Summen er: 5
Forklaring
I vårt forrige eksempel med standardkonstruktøren har vi vår hovedmetode i samme klasse. I dette eksemplet har vi hovedmetoden i en annen klasse.
Vi har en klasse med navnet “Detaljer” som inneholder en parameterisert konstruktør som godtar to heltallverdier. Inne i konstruktøren skriver vi ut summeringen av heltallene. Vi har en annen klasse kalt “Program” som inneholder hovedmetoden vår. Inne i hovedmetoden har vi initialisert “Detaljer” -klassen.
Som forklart tidligere, når en klasse initialiseres, kalles dens konstruktører automatisk. I dette tilfellet er konstruktormetoden vår 'Detaljer' påkalt, og når vi passerte parameteren under initialiseringen, skriver den utdataene.
Destruktører i C #
Destruktorer er akkurat det motsatte av konstruktører. Det er en spesiell metode for klassen som påberopes når et klasseobjekt går utenfor omfanget. I likhet med en konstruktør er et destruktørnavn også nøyaktig det samme som klassens navn, men med prefikset “~” (tilde).
Destructor godtar heller ingen parametere, og returnerer ingen verdi. Destructor ødelegger klasseobjektene, og blir derfor hovedsakelig brukt til å frigjøre minne etter at programmet er utført. En annen viktig ting å merke seg om destruktoren er at den verken kan overbelastes eller arves.
Eksempel på destruktører:
public class Program { public Program(){ Console.WriteLine('Constructor has been invoked'); } ~Program(){ Console.WriteLine('Destructor has been invoked'); } public static void Main(string() args) { Program p = new Program(); } }
Resultatet av følgende program vil være:
Konstruktør er påkalt
Destructor er påkalt
Forklaring
Vi brukte det samme eksemplet som vi lærte konstruktør. Vi har nettopp lagt til en destruktør i programklassen (~ Program). Når vi initialiserer objektet til klassen, blir konstruktøren påkalt og objektet til klassen blir opprettet. Dette skriver uttrykket 'Konstruktør har blitt påkalt' til konsollen.
Når utførelsen er fullført og klasseobjektet går utenfor omfanget, beveger programmet seg mot destruktoren. Destruktøren blir deretter påkalt, som igjen ødelegger objektet. Her har vi skrevet ut en melding inne i destruktoren, som blir skrevet ut til konsollen etter at destruktøren er påkalt.
Statiske medlemmer i en klasse
Klassens medlemmer kan erklæres statiske ved hjelp av det statiske nøkkelordet. Når et objekt blir erklært som statisk, vil det uansett antall objekter som er opprettet bare være en kopi av det statiske objektet.
Å være statisk innebærer at det vil være en enkelt forekomst av medlemmet som vil eksistere for en gitt klasse. Det betyr at verdien av den statiske funksjonen eller variablene i klassen kan påberopes uten å lage et objekt for dem.
Statiske variabler brukes til å erklære konstanter ettersom verdiene deres kan oppnås direkte ved å påkalle klassen i stedet for å lage en forekomst av den.
Eksempel:
public class Details { public static void stat(){ Console.WriteLine('Static method invoked'); } } public class Program { public static void Main(string() args) { Details.stat(); } }
Resultatet av følgende program vil være:
Statisk metode påkalt
Forklaring
I eksemplet ovenfor har vi laget en klasse 'Detaljer' som inneholder en statisk metode 'stat'. Vi har en annen klasse 'Program' som inneholder hovedmetoden. I våre tidligere emner så vi hvordan vi kan initialisere en klasse for å få tilgang til metoder. Men som vi diskuterte, kan du få tilgang til de statiske medlemmene av klassen med initialisering av klasseobjekter.
I hovedmetoden har vi altså nettopp påkalt metoden ved bruk av klassen direkte uten å lage noe objekt. Utgangen av programmet utførte koden som ble skrevet innenfor den statiske metoden. I dette tilfellet har vi skrevet ut en melding til konsollen.
Statisk klasse i C #
En statisk klasse er lik en normal klasse i C #. Den statiske klassen kan bare ha statiske medlemmer, og den kan ikke instantieres. En statisk klasse brukes for å sikre at klassen ikke blir instantiert. En statisk klasse blir deklarert ved å bruke nøkkelordet statisk før søkeordklassen under erklæringen.
Eksempel:
public static class Details { public static void multiply(int a, int b){ int c = a*b; Console.WriteLine('Multiplication result is: '+c); } } public class Program { public static void Main(string() args) { Details.multiply(2,8); } }
Resultatet av følgende program vil være:
Multiplikasjonsresultatet er: 16
Forklaring
I eksemplet ovenfor har vi opprettet en statisk klasse 'Detaljer' og inne i den statiske klassen har vi opprettet en annen statisk metode 'multipliser'. Inne i metoden har vi noen kodebiter som vi vil utføre. Vi har også en annen klasse 'Program' med hovedmetoden.
Inne i hovedmetoden har vi påkalt multipliseringsmetoden som er tilstede i den statiske klassen. Hvis du ser på hovedmetoden vår, vil du se at vi ikke har initialisert eller opprettet et objekt for den statiske klassen, i stedet har vi direkte påkalt klassen fra hovedmetoden.
Når vi altså direkte påkaller multipliseringsmetoden ved bruk av klassenavnet og ved å oppgi parametere, utfører den koden og skriver ut utdata.
Structs In C #
Verditypeenhet i C # kalles struktur. Det hjelper brukeren å lagre relaterte data av flere forskjellige datatyper i en enkelt variabel. Som nevnt er en struktur en verditypeenhet som inneholder felt, metoder, konstruktører, operatører, hendelser, etc. En struktur er erklært ved å bruke nøkkelordet 'struct'.
Funksjoner av Structs:
- Det kan omfatte konstanter, metoder, egenskaper, indeks, operatører, konstruktører, etc.
- Den kan ikke ha noen standardkonstruktør.
- Den kan implementere et grensesnitt, men kan ikke arve med andre strukturer eller klasser.
- Strenger kreves at de initialiseres ved å bruke et nytt nøkkelord for bruk.
Forskjellen mellom struktur og klasse
Struktur og klasse kan føles som hverandre på en eller annen måte, men de har flere forskjeller.
c ++ rand mellom 0 og 1
Forskjellene inkluderer:
- En struktur er en verditype mens en klasse er en referansetype.
- Det nye søkeordet kreves for å initialisere strukturer.
- Structs kan bare ha parametriserte konstruktører, og på den annen side kan en klasse ha både standard- og parameteriserte konstruktører.
Struktur: Definisjon
En struktur kan defineres ved å bruke strukt nøkkelordet. En struktur kan definere en ny datatype med flere forskjellige medlemmer for programmet.
En struktur kan initialiseres på en måte som ligner på en objektinitialisering, dvs. ved å bruke det nye nøkkelordet. Ettersom en struktur er en verditypeenhet, er den raskere å operere enn et klasseobjekt. Uansett hvor det er behov for å lagre data, må vi bruke en struktur. På den annen side, hvis du trenger å overføre data, er det tilrådelig å bruke klasse enn en struktur.
Eksempel:
public struct Cuboid { public int length; public int width; public int height; } public class Program { public static void Main(string() args) { Cuboid cb = new Cuboid(); cb.length = 10; cb.width = 20; cb.height = 30; Console.WriteLine('The volume of cuboid is: {0}', (cb.length*cb.width*cb.height)); } }
Resultatet av følgende program vil være:
Volumet på kuboidet er: 6000
Forklaring
I eksemplet ovenfor definerte vi en struct kuboid der vi lagret datatyper for kuboidens lengde, bredde og høyde. Vi har et annet klasseprogram der vi har vår hovedmetode.
I hovedmetoden initialiserer vi 'Cuboid' -strukturen ved hjelp av det nye nøkkelordet. Så brukte vi objektet til å ringe og tilordne verdier til datatypene som er lagret i strukturen. Deretter utførte vi en operasjon på variablene fra strukturen og skrev ut resultatet på konsollen.
Så hvis du vil bruke noen egenskaper, hendelser eller metoder, må strukturen initialiseres ved hjelp av det nye nøkkelordet, ellers vil det gi deg en kompileringsfeil.
Enums i C #
Enum er et sett med heltallskonstanter og ligner på en struktur, det er også en verditypeenhet. Det brukes hovedsakelig til å erklære en liste over heltall ved å bruke nøkkelordet 'enum' i et navneområde, klasse eller til og med struktur. I enum gir vi et navn til hver av heltallskonstantene, slik at vi kan henvise dem ved å bruke deres respektive navn.
Enum kan ha et fast antall konstanter. Det hjelper med å forbedre sikkerheten og kan også krysses.
Funksjoner av Enum
- Enum forbedrer lesbarheten og vedlikeholdet av koden ved å gi meningsfylte navn til konstantene.
- Enum kan ikke brukes med strengkonstantene.
- Enum kan inkludere konstanter som int, lang, kort, byte, etc.
- Som standard starter verdien av enum-konstanter med null
Erklære enum
Syntaksen for å erklære enum er gitt nedenfor.
enum { list of integer constants };
Alle enumkonstantene har standardverdier. Verdien starter ved 0 og beveger seg opp en etter en.
Eksempel:
public enum Cuboid{ length, width, height } public class Program { public static void Main(string() args) { int l = (int)Cuboid.length; int w = (int)Cuboid.width; int h = (int)Cuboid.height; Console.WriteLine('The length is :{0}”, l); Console.WriteLine('The width is :{0}”, w); Console.WriteLine('The height is :{0}”, h); } }
Resultatet av følgende program vil være:
Lengden er: 0
Bredden er: 1
Høyden er: 2
Forklaring
Vi jobbet med et lignende eksempel som vi lærte under strukturen. I dette eksemplet har vi opprettet en enum som heter Cuboid. Dette enum inneholder tre medlemmer, dvs. lengde, bredde og høyde.
Vi har et annet klasseprogram der vi har vår hovedmetode. En eksplisitt rollebesetning har blitt brukt til å konvertere enumtypevariabler til heltallstype, så har vi lagret deres verdier i forskjellige variabler inne i hovedmetoden og skrevet dem ut til konsoll.
Som standard vil verdien av første enum være null, den andre vil ha 1 og så videre. Derfor, da vi skrev ut verdiene, mottok vi ovennevnte utdata.
Endring av verdien til Enum
Enum tillater også brukere å endre standard startindeks for medlemmene. Når du har endret startindeksen til variabelen, vil de påfølgende medlemmene få verdiene oppdatert i den trinnvise sekvensen.
La oss tilordne en verdi til det første medlemmet av enummet som vi definerte i vårt forrige eksempel, og se hva som skjer:
public enum Cuboid { length = 10, width, height } public class Program { public static void Main(string() args) { int l = (int)Cuboid.length; int w = (int)Cuboid.width; int h = (int)Cuboid.height; Console.WriteLine('The length is :{0}”, l); Console.WriteLine('The width is :{0}”, w); Console.WriteLine('The height is :{0}”, h); } }
Resultatet av følgende program vil være:
Lengden er: 10
Bredden er: 11
Høyden er: 12
Forklaring
Når vi tildelte det første medlemmet av enummet en verdi, vil alle de påfølgende medlemmene av enumet bli tildelt økningen av den verdien. Som vi har definert, blir den første verdien som 10, den påfølgende verdien 11 og den neste blir 12.
Brukeren kan tilordne hvilken som helst verdi etter eget valg, og alle medlemmene i enum vil bli automatisk tildelt med økningen av de brukerdefinerte verdiene.
Egenskaper i C #
Egenskaper i C # er i utgangspunktet det navngitte medlemmet av grensesnitt, klasser og struktur. Egenskaper er en utvidelse av medlemsvariablene / metoden for struktur eller klasse. De brukes til å lese, skrive eller endre verdien på de private feltene.
Du får tilgang til eiendommer akkurat som feltene. De har aksessorer som kan brukes til å hente, sette og beregne verdiene. Vi kan også sette logikk mens vi setter verdier i egenskapene. Den kan også brukes med den private klassen som begrenser tilgang utenfra, men samtidig lar den brukeren bruke egenskaper for å hente eller sette verdier.
Hva er tilbehør?
Tilgang til eiendom utgjør utsagnene som kan brukes til å lese, skrive eller beregne en gitt eiendom. Eiendomserklæringen kan inneholde get, set eller begge deler.
Eksempel:
public class Cube { private int side; //Declare a Side property of type integer public int Side{ get{ return side; } set{ side = value; } } } public class Program { public static void Main(string() args) { Cube cb = new Cube(); cb.Side = 5; Console.WriteLine('The volume of cube is :{0}', (cb.Side * cb.Side* cb.Side)); } }
Når kodebiten ovenfor er vellykket kompilert og utført, observeres følgende utdata.
Volumet av kuben er: 125
Forklaring
I eksemplet ovenfor har vi en klasse 'Cube' der vi har erklært en 'Side' -egenskap av typen heltall. Etter det har vi fått og satt eiendom der vi har returnert og gitt verdien til den variable siden.
dijkstras algoritme java ved hjelp av prioritetskø
Vi har en annen klasse 'Program' med hovedmetoden der vi har initialisert Cube-klassen og oppgitt verdien for Side-egenskapen, og så har vi skrevet ut det beregnede resultatet til konsollen.
Konklusjon
I denne veiledningen lærte vi om medlemsfunksjonene i klassen. En medlemsfunksjon kan operere på ethvert objekt i klassen der den er til stede. Vi lærte også om konstruktører og destruktører.
Konstruktører initialiseres automatisk på tidspunktet for opprettelse av klasseobjekt, mens destruktører ødelegger klassen og brukes hovedsakelig til å fjerne minnetildeling etter fullført kjøring. Konstruktører kan være av to typer, dvs. standard og parametrerte.
Destruktoren godtar ikke noen parameter og returnerer heller ingen verdi. Både Constructor og Destructors har navn som er nøyaktig det samme som klassenavnet. Vi lærte også om statiske variabler og statiske klasser og hvordan de kan nås uten bruk av klasseinstanser. Vi ble kjent med at en statisk klasse bare kan ha statiske medlemmer.
Vi diskuterte også Structs eller strukturer. Structs er enheter av verdi og må initialiseres for tilgang.
Enum og egenskaper til C # ble også diskutert. Enum er et sett med navngitt heltallskonstant. I likhet med strukturen er det også en verditypeenhet. Enum vil ha sine medlemmer, og hvert medlem vil ha sin egen standardverdi.
På slutten diskuterte vi egenskaper, som er en utvidelse av medlemsvariablene / metoden til struktur eller klasse. De brukes til å hente, angi eller endre verdien på de private feltene.
=> Se vår komplette C # Training Series her
Anbefalt lesing
- Statisk i C ++
- Arv i C ++
- Klasser og objekter i C ++
- Bruk av selen valgt klasse for håndtering av nedtrekkselementer på en webside - Selenium-veiledning nr. 13
- Runtime Polymorphism In C ++
- Vennfunksjoner i C ++
- Spotte private, statiske og ugyldige metoder ved bruk av Mockito
- C # Klasser og objekter: En grundig opplæring med eksempler