c concepts constructor
In deze tutorial worden enkele van de belangrijke concepten in C # -programmering uitgelegd, zoals Constructor, Destructors, Static Class, Structs en Enums:
In een van onze vorige tutorials over objecten en klassen hebben we geleerd wat een klasse en een object zijn.
Een object is vergelijkbaar met een echt object en een klasse is een logische verzameling vergelijkbare soorten objecten. Het is een van de meest fundamentele typen die aanwezig zijn in C #. In deze tutorial gaan we diep in op de andere gerelateerde C # -concepten.
Ontdek hier de complete C #-trainingsserie
In deze tutorial zullen we enkele belangrijke aspecten van lessen leren en hoe we deze in onze programma's kunnen gebruiken. We zullen proberen eenvoudige C # -programma's te maken op basis van de concepten die we in onze vorige tutorials hebben geleerd.
Wat je leert:
- Wat is een constructor in C #?
- Destructors in C #
- Statische leden in een klas
- Statische klasse in C #
- Structuren in C #
- Verschil tussen structuur en klasse
- Struct: definitie
- Enums in C #
- Eigenschappen in C #
- Gevolgtrekking
- Aanbevolen literatuur
Wat is een constructor in C #?
De constructor is een speciaal type methode in de programmeertaal C # die automatisch wordt aangeroepen of aangeroepen wanneer een object van de gegeven klasse wordt gemaakt.
De belangrijkste functie is om de gegevensleden van het nieuw gemaakte object te initialiseren. Een van de meest onderscheidende kenmerken van de constructor is de naam. Het heeft dezelfde naam als de klas.
De constructeurs zijn in principe van twee soorten:
- Standaard
- Geparametriseerd
C # Standaard constructor
Zoals de naam suggereert, is de standaardconstructor de basisconstructor van een klasse. Het heeft geen enkel argument en wordt direct aangeroepen op het moment dat het object wordt gemaakt.
De output van het volgende programma zal zijn:
Constructor is aangeroepen
Uitleg
We hebben een constructor “Programma” gedefinieerd binnen de klasse “Programma”. Wanneer we nu de klasse initialiseren binnen de hoofdmethode, wordt de constructor automatisch aangeroepen.
Daarom wordt elk codefragment dat we in de constructor hebben bewaard, aangeroepen. Hier hebben we een bericht afgedrukt 'Constructor is aangeroepen' binnen de constructor accolades, dus wanneer we de klasse initialiseren, wordt de constructor standaard geïnitialiseerd en wordt het bericht afgedrukt als uitvoer.
Geparametriseerde constructor
Zoals de naam suggereert, zijn geparametriseerde constructors de constructor met parameters. Deze constructors worden gebruikt om verschillende waarden door te geven aan de objecten.
De output van het volgende programma zal zijn:
qa het testen van interviewvragen en antwoorden voor ervaren
De som is: 5
Uitleg
In ons vorige voorbeeld met de standaardconstructor hebben we onze hoofdmethode in dezelfde klasse. In dit voorbeeld hebben we de hoofdmethode in een andere klasse.
We hebben één klasse met de naam 'Details' die een constructor met parameters bevat die twee gehele waarden accepteert. Binnen de constructor drukken we de sommatie van de gehele getallen af. We hebben een andere klasse genaamd 'Program' die onze hoofdmethode bevat. Binnen de hoofdmethode hebben we de klasse 'Details' geïnitialiseerd.
Zoals eerder uitgelegd, worden de constructors automatisch aangeroepen wanneer een klasse wordt geïnitialiseerd. In dit geval is onze constructormethode 'Details' dus aangeroepen en wanneer we de parameter tijdens de initialisatie hebben doorgegeven, wordt de uitvoer afgedrukt.
Destructors in C #
Destructors zijn precies het tegenovergestelde van constructeurs. Het is een speciale methode van de klasse die wordt aangeroepen wanneer een klasseobject buiten het bereik valt. Net als bij een constructor, is de naam van een destructor ook precies hetzelfde als die van de klassenaam, maar met het voorvoegsel '~' (tilde).
Destructor accepteert geen enkele parameter en retourneert geen waarde. Destructor vernietigt de klasseobjecten, daarom wordt het voornamelijk gebruikt om geheugen vrij te maken nadat het programma is uitgevoerd. Een ander belangrijk ding om op te merken over destructor is dat het niet kan worden overbelast en ook niet kan worden geërfd.
Voorbeeld van vernietigers:
De output van het volgende programma zal zijn:
Constructor is aangeroepen
Destructor is ingeroepen
Uitleg
We gebruikten hetzelfde voorbeeld dat we gebruikten om constructeur te leren. We hebben zojuist een destructor toegevoegd aan de programmaklasse (~ Programma). Wanneer we het object van de klasse initialiseren, wordt de constructor aangeroepen en wordt het object van de klasse gemaakt. Dit drukt de frase 'Constructor is aangeroepen' naar de console.
Wanneer de uitvoering is voltooid en het klasseobject buiten bereik valt, beweegt het programma naar destructor. De destructor wordt vervolgens aangeroepen, die op zijn beurt het object vernietigt. Hier hebben we een bericht in de destructor afgedrukt, dat naar de console wordt afgedrukt nadat de destructor is aangeroepen.
Statische leden in een klas
De leden van de klasse kunnen statisch worden verklaard met behulp van het statische sleutelwoord. Wanneer een object als statisch wordt gedeclareerd, is er, ongeacht het aantal gemaakte objecten, slechts één kopie van het statische object.
Statisch zijn houdt in dat er een enkele instantie van het lid zal bestaan voor een bepaalde klasse. Het betekent dat de waarde van de statische functie of variabelen binnen de klasse kan worden aangeroepen zonder er een object voor te maken.
Statische variabelen worden gebruikt voor het declareren van constanten, aangezien hun waarden direct kunnen worden verkregen door de klasse aan te roepen in plaats van er een instantie van te maken.
Voorbeeld:
De output van het volgende programma zal zijn:
Statische methode aangeroepen
hoe je een array java omkeert
Uitleg
In het bovenstaande voorbeeld hebben we een klasse 'Details' gemaakt die een statische methode 'stat' bevat. We hebben nog een klasse 'Programma' die de hoofdmethode bevat. In onze vorige onderwerpen hebben we gezien hoe we een klasse kunnen initialiseren om toegang te krijgen tot methoden. Maar zoals we hebben besproken, zijn de statische leden van de klasse toegankelijk via initialisatie van klasseobjecten.
Dus in de hoofdmethode hebben we zojuist de methode aangeroepen met behulp van de klasse rechtstreeks zonder een object te maken. De uitvoer van het programma heeft de code uitgevoerd die in de statische methode is geschreven. In dit geval hebben we een bericht naar de console afgedrukt.
Statische klasse in C #
Een statische klasse is vergelijkbaar met een normale klasse in C #. De statische klasse kan alleen statische leden hebben en kan niet worden geïnstantieerd. Een statische klasse wordt gebruikt om ervoor te zorgen dat de klasse niet wordt geïnstantieerd. Een statische klasse wordt gedeclareerd door het trefwoord static vóór de trefwoordklasse te gebruiken tijdens de declaratie.
Voorbeeld:
De output van het volgende programma zal zijn:
Het resultaat van vermenigvuldiging is: 16
Uitleg
In het bovenstaande voorbeeld hebben we een statische klasse 'Details' gemaakt en binnen de statische klasse hebben we een andere statische methode 'vermenigvuldigen' gemaakt. Binnen de methode hebben we enkele codefragmenten die we willen uitvoeren. We hebben ook een andere klasse 'Programma' met de hoofdmethode.
Binnen de hoofdmethode hebben we de vermenigvuldigingsmethode aangeroepen die aanwezig is in de statische klasse. Als je naar onze hoofdmethode kijkt, zul je zien dat we geen object voor de statische klasse hebben geïnitialiseerd of gemaakt, in plaats daarvan hebben we de klasse rechtstreeks vanuit de hoofdmethode aangeroepen.
Dus wanneer we de vermenigvuldigingsmethode rechtstreeks aanroepen met behulp van de klassennaam en door parameters op te geven, wordt de code uitgevoerd en de uitvoer afgedrukt.
Structuren in C #
Waardetype entiteit in de C # wordt structuur genoemd. Het helpt de gebruiker om gerelateerde gegevens van verschillende gegevenstypen op te slaan in een enkele variabele. Zoals gezegd is een structuur een waarde-type entiteit die velden, methoden, constructors, operatoren, gebeurtenissen, enz. Bevat. Een structuur wordt gedeclareerd door het sleutelwoord “struct” te gebruiken.
Kenmerken van Structs:
- Het kan constanten, methoden, eigenschappen, index, operators, constructeurs, enz. Bevatten.
- Het kan geen standaardconstructor hebben.
- Het kan een interface implementeren, maar kan niet erven met andere structuren of klassen.
- Structs moeten worden geïnitialiseerd door een nieuw trefwoord te gebruiken.
Verschil tussen structuur en klasse
Structuur en Klasse kunnen op de een of andere manier op elkaar lijken, maar ze hebben verschillende verschillen.
De verschillen zijn onder meer:
- Een struct is een waardetype, terwijl een klasse een referentietype is.
- Het nieuwe sleutelwoord is vereist om structs te initialiseren.
- Structs kunnen alleen een geparametriseerde constructor hebben en aan de andere kant kan een klasse zowel standaard constructors als geparameteriseerde constructors hebben.
Struct: definitie
Een structuur kan worden gedefinieerd door het struct sleutelwoord te gebruiken. Een structuur kan een nieuw gegevenstype definiëren met verschillende leden voor het programma.
Een struct kan worden geïnitialiseerd op een manier die vergelijkbaar is met die van een objectinitialisatie, d.w.z. door het nieuwe trefwoord te gebruiken. Omdat een struct een waardetype-entiteit is, is het sneller te bedienen dan een klasse-object. Overal waar gegevens moeten worden opgeslagen, moeten we een struct gebruiken. Aan de andere kant, als u gegevens moet overdragen, is het raadzaam om klasse te gebruiken dan een struct.
Voorbeeld:
De output van het volgende programma zal zijn:
Het volume van de balk is: 6000
Uitleg
In het bovenstaande voorbeeld hebben we een struct-balk gedefinieerd waarin we gegevenstypen voor lengte, breedte en hoogte van de balk hebben opgeslagen. We hebben nog een klasprogramma waar we onze hoofdmethode hebben.
In de hoofdmethode initialiseren we de 'Cuboid' -structuur door het nieuwe trefwoord te gebruiken. Vervolgens hebben we het object gebruikt om waarden aan te roepen en toe te wijzen aan de gegevenstypen die in de struct zijn opgeslagen. Vervolgens hebben we een bewerking uitgevoerd op de variabelen uit de struct en het resultaat op de console afgedrukt.
Dus als u een eigenschap, gebeurtenis of methode wilt gebruiken, moet de struct worden geïnitialiseerd met het nieuwe trefwoord, anders krijgt u een compilatiefout.
Enums in C #
Enum is een set van integerconstanten en vergelijkbaar met een struct is het ook een waarde-type entiteit. Het wordt voornamelijk gebruikt om een lijst met gehele getallen te declareren door het sleutelwoord “enum” te gebruiken in een naamruimte, klasse of zelfs struct. In enum geven we een naam aan elk van de integerconstanten, zodat we ze kunnen verwijzen met hun respectievelijke namen.
Enum kan een vast aantal constanten hebben. Het helpt bij het verbeteren van de veiligheid en kan ook worden doorkruist.
Kenmerken van Enum
- Enum verbetert de leesbaarheid en onderhoudbaarheid van de code door betekenisvolle namen aan de constanten te geven.
- Enum kan niet worden gebruikt met constanten van het stringtype.
- Enum kan constanten bevatten zoals int, long, short, byte, etc.
- Standaard begint de waarde van enum-constanten met nul
Een enum declareren
De syntaxis voor het declareren van enum wordt hieronder gegeven.
Alle enum-constanten hebben standaardwaarden. De waarde begint bij 0 en gaat een voor een omhoog.
Voorbeeld:
De output van het volgende programma zal zijn:
De lengte is: 0
De breedte is: 1
De hoogte is: 2
Uitleg
We werkten met een soortgelijk voorbeeld dat we leerden tijdens struct. In dit voorbeeld hebben we een enum gemaakt met de naam Cuboid. Deze opsomming bevat drie leden, d.w.z. lengte, breedte en hoogte.
We hebben een ander klasseprogramma waarin we onze hoofdmethode hebben. Er is een expliciete cast gebruikt om variabelen van het enum-type om te zetten in integer-type, daarna hebben we hun waarden in verschillende variabelen in de hoofdmethode opgeslagen en deze naar de console afgedrukt.
Standaard is de waarde van de eerste enum nul, de tweede heeft 1 enzovoort. Daarom hebben we bij het afdrukken van de waarden de bovengenoemde uitvoer ontvangen.
De waarde van Enum veranderen
Met Enum kunnen gebruikers ook de standaard startindex van de leden wijzigen. Nadat u de startindex van de variabele heeft gewijzigd, worden de waarden van de volgende leden in de incrementele volgorde bijgewerkt.
Laten we een waarde toewijzen aan het eerste lid van de enum die we in ons vorige voorbeeld hebben gedefinieerd, en kijken wat er gebeurt:
De output van het volgende programma zal zijn:
De lengte is: 10
De breedte is: 11
De hoogte is: 12
Uitleg
Wanneer we het eerste lid van de enum een waarde hebben toegewezen, worden alle volgende leden van de enum toegewezen met een verhoging van die waarde. Zoals we hebben gedefinieerd, wordt de eerste waarde 10, de volgende waarde wordt 11 en de volgende wordt 12.
De gebruiker kan elke gewenste waarde toewijzen en alle leden van de enum zullen automatisch worden toegewezen met de toename van de door de gebruiker gedefinieerde waarden.
Eigenschappen in C #
Eigenschappen in C # zijn in feite het genoemde lid van interface, klassen en struct. Eigenschappen zijn een uitbreiding van de lidvariabelen / methode van struct of class. Ze worden gebruikt om de waarde van de privévelden te lezen, te schrijven of te wijzigen.
Eigenschappen zijn net als de velden toegankelijk. Ze hebben accessors die kunnen worden gebruikt om de waarden op te halen, in te stellen en te berekenen. We kunnen ook logica plaatsen bij het instellen van waarden in de eigenschappen. Het kan ook worden gebruikt met de privéklasse die de toegang van buitenaf beperkt, maar tegelijkertijd kan de gebruiker eigenschappen gebruiken om waarden op te halen of in te stellen.
Wat zijn accessors?
Accessors of property vormen de statements die kunnen worden gebruikt om een bepaalde eigenschap te lezen, te schrijven of te berekenen. De eigendomsverklaring kan get, set of beide bevatten.
Voorbeeld:
Wanneer het bovenstaande codefragment met succes is gecompileerd en uitgevoerd, wordt de volgende uitvoer waargenomen.
Het volume van de kubus is: 125
Uitleg
In het bovenstaande voorbeeld hebben we een klasse 'Cube' waarin we een 'Side' -eigenschap van het type integer hebben gedeclareerd. Daarna hebben we de eigenschap opgehaald en ingesteld waar we zijn geretourneerd en de waarde aan de variabele kant verstrekt.
array van objecten in het Java-voorbeeldprogramma
We hebben nog een klasse 'Programma' met de hoofdmethode waarin we de Cube-klasse hebben geïnitialiseerd en de waarde voor de eigenschap Side hebben opgegeven, en daarna hebben we het berekende resultaat op de console afgedrukt.
Gevolgtrekking
In deze tutorial hebben we geleerd over de lidfuncties van de klas. Een lidfunctie kan werken op elk object van de klasse waarin deze aanwezig is. We leerden ook over constructeurs en destructors.
Constructors worden automatisch geïnitialiseerd op het moment dat het klasseobject wordt gemaakt, terwijl destructors de klasse vernietigen en voornamelijk worden gebruikt om de geheugentoewijzing te verwijderen na voltooiing van de uitvoering. Constructors kunnen van twee typen zijn, namelijk standaard en geparametriseerd.
De destructor accepteert geen enkele parameter en retourneert ook geen waarde. Zowel Constructor als Destructors hebben namen die exact hetzelfde zijn als de klassenaam. We hebben ook geleerd over statische variabelen en statische klassen en hoe ze toegankelijk zijn zonder klasseninstanties te gebruiken. We kwamen erachter dat een statische klasse alleen statische leden kan hebben.
We hebben ook gesproken over structuren of structuren. De Structs zijn entiteiten van het waardetype en moeten worden geïnitialiseerd voor toegang.
Enum en eigenschappen van C # werden ook besproken. Enum is een set van benoemde integerconstanten. Net als bij de struct, is het ook een entiteit van het waardetype. De opsomming heeft zijn leden en elk lid heeft zijn eigen standaardwaarde.
Aan het einde hebben we eigenschappen besproken die een uitbreiding zijn van de lidvariabelen / methode van struct of class. Ze worden gebruikt om de waarde van de privévelden op te halen, in te stellen of te wijzigen.
Bekijk hier onze complete C #-trainingsserie
Aanbevolen literatuur
- Statisch in C ++
- Overerving in C ++
- Klassen en objecten in C ++
- Gebruik van Selenium Selecteer klasse voor het omgaan met vervolgkeuzelijsten op een webpagina - Selenium-zelfstudie # 13
- Runtime-polymorfisme in C ++
- Vriendfuncties in C ++
- Bespotten van privé-, statische en ongeldige methoden met behulp van Mockito
- C # Klassen en objecten: een diepgaande zelfstudie met voorbeelden