Skillnad mellan versioner av "Accessmetoder och Property"
Taifun (Diskussion | bidrag) m |
Taifun (Diskussion | bidrag) m |
||
Rad 58: | Rad 58: | ||
<big> | <big> | ||
<b>Property</b> är en hybrid mellan datamedlem och metod, även kallad <b><span style="color:red">generaliserad datamedlem</span></b>. | <b>Property</b> är en hybrid mellan datamedlem och metod, även kallad <b><span style="color:red">generaliserad datamedlem</span></b>. | ||
− | |||
− | |||
Property är till för att utanför klassen kunna läsa värdet av och skriva ett nytt värde till en privat datamedlem. | Property är till för att utanför klassen kunna läsa värdet av och skriva ett nytt värde till en privat datamedlem. | ||
+ | |||
+ | Propertys uppgift är att automatisera Get- och Set-metoder i klasser med privata datamedlemmar. | ||
+ | |||
+ | För att kunna göra det måste Property vara publik. | ||
</big> | </big> | ||
</div> | </div> |
Versionen från 5 februari 2021 kl. 22.58
Lektion 22 | Genomgång | Övningar |
Inkapslingens konsekvenser
Inkapsling innebär privata datamedlemmar.
Konstruktorn löser problemet med initieringen av privata datamedlemmar.
Problem som kvarstår:
Hur ska privata datamedlemmar ändras efter initieringen när de är oåtkomliga?
Hur ska de läsas, hur ska de skrivas?
Lösningen är publika accessmetoder. Det finns tre sorters accessmetoder:
- Get-metoder
- Set-metoder
- Strängrepresentationsmetoder
Klassen Empl
Programmet GetSet
Klassen Circle:s datamedlem radius är oåtkomlig här pga åtkomstmodifieraren private.
Men vi kan initiera den med input via den publika metoden Circle() dvs klassens konstruktor.
Ett körexempel
Vad är Property?
Property är en hybrid mellan datamedlem och metod, även kallad generaliserad datamedlem.
Property är till för att utanför klassen kunna läsa värdet av och skriva ett nytt värde till en privat datamedlem.
Propertys uppgift är att automatisera Get- och Set-metoder i klasser med privata datamedlemmar.
För att kunna göra det måste Property vara publik.
Klassen EmplP
Programmet Property
Klassen Circle:s datamedlem radius är oåtkomlig här pga åtkomstmodifieraren private.
Men vi kan initiera den med input via den publika metoden Circle() dvs klassens konstruktor.
Läs om accessmetoder och Property i kursboken på sid 132-136.
Copyright © 2021 TechPages AB. All Rights Reserved.