Verschil tussen klassen en structuren

Anonim

Klassen vs Structuren

Enkele van de hoofdbegrippen van Object Oriented (OO) programmeertalen zijn inkapseling, erfenis en polymorfisme. Klasse en structuur zijn twee van de OO-constructies / -gereedschappen, die de programmeurs helpen om deze concepten te behalen in de meeste OO-programmeertalen (Java biedt geen structuren). Klassen zijn een abstracte weergave van echte wereldobjecten. Structuren lijken zeer op klassen met een vergelijkbaar gebruik, maar hebben weinig beperkingen in vergelijking met klassen. Beide klassen en structuur worden gebruikt om samen soortgelijk type gegevens samen te groeperen.

Wat zijn klassen?

Klassen tonen de abstracte weergave van echte wereldobjecten, terwijl de relaties uitbeelden hoe elke klas verbonden is met anderen. Beide klassen en relaties hebben eigenschappen genaamd attributen. Methoden in de lessen vertegenwoordigen of definiëren het gedrag van deze lessen. Methoden en kenmerken van lessen worden de leden van de klas genoemd. Typisch wordt inkapseling bereikt door de attributen privé te maken, terwijl er publieke methoden worden gemaakt die gebruikt kunnen worden om toegang te krijgen tot die attributen. Een object is het voorbeeld van een klas. Erfelijkheid stelt de gebruiker in staat om klassen (subklasseën) uit andere klassen uit te breiden (superklassen genoemd). Polymorfisme laat de programmeur toe om een ​​voorwerp van een klas te vervangen in plaats van een voorwerp van zijn superklasse. Typisch worden de zelfstandige naamwoorden gevonden in de probleemdefinitie direct klassen in het programma. En ook, werkwoorden worden methoden. Publiek, privé en beschermd zijn de typische toegangsmodificanten die worden gebruikt voor klassen. Een klasdiagram toont de klassen van de systemen, relaties tussen klassen en hun attributen.

Wat zijn structuren?

Zoals hierboven vermeld, zijn structuren zeer vergelijkbaar met klassen met een vergelijkbaar gebruik, maar zijn een beetje beperkt vermogen dan klassen. In feite kunnen lessen beschouwd worden als een uitbreiding van de structuren. Bijvoorbeeld, structuren zijn hetzelfde als klassen in C ++, maar ze hebben standaard publieke leden. Een structuur kan door de gebruiker worden gedefinieerd om een ​​type dat is samengesteld te vertegenwoordigen. In vergelijking met lessen bevatten structuren leden die tot veel soorten kunnen behoren. De structuur van het trefwoord wordt gebruikt om een ​​structuur in C en C ++ te definiëren, terwijl de structuur van het trefwoord wordt gebruikt voor dezelfde in. NET programmeertalen.

Wat is het verschil tussen klassen en structuren?

Hoewel beide klassen en structuren vergelijkbare constructen zijn die in de programmeertaal voorkomen, hebben ze subtiele verschillen. Typisch is de klas een uitbreiding van de structuur, en daarom hebben structuren een aantal relatieve beperkingen. Bijvoorbeeld, structuren kunnen worden beschouwd als dezelfde als klassen in C ++, maar leden zijn standaard niet in de klas open (anders dan in structuren).Dit betekent eigenlijk dat u een klasse en een structuur kunt definiëren met precies dezelfde eigenschappen door gebruik te maken van de juiste toegangsverwerkers in C ++. In C kunnen structuren echter geen functies of overbelaste operaties bevatten. Trefwoorden klasse en struct worden gebruikt om een ​​klasse en een structuur in respectievelijk C ++ te definiëren. Als het aankomt op. NET talen (C #, VB. NET, enz.), De klas is een referentietype, terwijl de structuur een waarde is. En meestal worden structuren gebruikt voor kleinere objecten, maar klassen worden gebruikt voor grotere voorwerpen die langere tijd in het geheugen worden opgeslagen.