blogg-vitalika.ru

  

Bästa artiklarna:

  
Main / Vad är klassmappning

Vad är klassmappning

Detta innehåll kan inte visas utan JavaScript. Aktivera JavaScript och ladda om sidan. Den genererade klassen innehåller en offentlig datamedlem för varje Slice-datamedlem precis som för strukturer och undantag och en medlemsfunktion för varje operation. Tänk på följande klassdefinition :. För tillfället kan du ignorera denna parameter och låtsas att den inte finns. Som ett resultat kan du inte klara en klass där en proxy förväntas och tvärtom eftersom bastyperna för klasser och proxyservrar inte är kompatibla.

Detta innebär att klasser jämförs med grund referensjämlikhet, inte värdejämlikhet som används för strukturer. Som standard kartläggs datakomponenter i klasser exakt som för strukturer och undantag: Närvaron av detta direktiv gör att Slice-kompilatorn genererar datakomponenten med skyddad synlighet.

Som ett resultat kan medlemmen endast nås av klassen själv eller av en av dess underklasser. För en klass där alla datamedlemmar är skyddade kan metadatadirektivet tillämpas på själva klassen snarare än på varje medlem individuellt.

Operationer av klasser mappas till abstrakta medlemsfunktioner i den genererade klassen. Till exempel:. För att se varför, överväga följande enkla gränssnitt :. För andra typ-ID: er hävdar metoden eftersom den inte vet hur man ska initiera andra typer av objekt. Att använda en bokstavs-ID-sträng i din kod avskräcks eftersom det kan leda till fel som bara upptäcks vid körningstid.

Detta ger dig en chans att rensa upp alla resurser som kan användas av din fabrik. Observera att du inte kan registrera en fabrik för samma typ-ID två gånger: Tänk slutligen att om en klass bara har datamedlemmar, men inga operationer, behöver du inte skapa och registrera en objektfabrik för att överföra instanser av en sådan klass. Endast om en klass har operationer måste du definiera och registrera en objektfabrik.

Konstruktören initialiserar inte uttryckligen en datamedlem om Java-standardbeteendet för den typen ger önskat resultat. Standardkonstruktören initialiserar var och en av dessa datamedlemmar till det deklarerade värdet istället. Den genererade klassen innehåller också en andra konstruktör som accepterar ett argument för varje medlem i klassen.

Detta låter dig skapa och initiera en klass i ett enda uttalande, till exempel :. För härledda klasser kräver konstruktören ett argument för varje klassmedlem, inklusive ärvda medlemmar. På den här sidan:

(с) 2019 blog-vitalika.ru