Ein Punkt der Verwirrung bei der Entwicklung in verschiedenen Sprachen ist der Zugriffsmodifikator. Dieses Mal werden wir als Entwicklungsversion für Smartphone-Anwendungen jedes Zugriffsqualifikationsmerkmal für Java / Kotlin, das für die Android-Entwicklung verwendet wird, Objective-C / Swift, das für die iOS-Entwicklung verwendet wird, und C # / F #, das für Xamarin verwendet wird, untersuchen und als Vergleichstabelle zusammenfassen. Ich versuchte es.
Zugriffsmodifikator | Java | Kotlin | Objective-C | Swift | C# | F# |
---|---|---|---|---|---|---|
open | (nicht existieren) | (nicht existieren) | (nicht existieren) | Von überall zugänglich * In Swift3 hinzugefügt |
(nicht existieren) | (nicht existieren) |
public | Von überall zugänglich | Von überall zugänglich | Von überall zugänglich | Von überall zugänglich ※ただし別モジュールからの継承とオーバーライドは不可(Swift2まではVon überall zugänglich) |
Kann von überall zugegriffen werden | Kann von überall zugegriffen werden |
package | (nicht existieren) | (nicht existieren) | Zugriff über denselben Rahmen * Privat außerhalb des Rahmens |
(nicht existieren) | (nicht existieren) | (nicht existieren) |
protected | Zugriff über Klasse + abgeleitete Klasse im selben Paket | 継承したZugriff über Klasse + abgeleitete Klasse im selben Paket | Zugriff über dieselbe Klasse + abgeleitete Klasse | (nicht existieren) | Kann von derselben Klasse + abgeleiteten Klasse aus aufgerufen werden | (nicht existieren) |
protected internal | (nicht existieren) | (nicht existieren) | (nicht existieren) | (nicht existieren) | Zugriff über Klasse + abgeleitete Klasse im selben Projekt | (nicht existieren) |
internal | (nicht existieren) | Zugriff innerhalb desselben Moduls | (nicht existieren) | Zugriff innerhalb desselben Moduls | Zugriff innerhalb derselben Baugruppe | Zugriff innerhalb derselben Baugruppe |
fileprivate | (nicht existieren) | (nicht existieren) | (nicht existieren) | Kann innerhalb derselben Datei aufgerufen werden * In Swift3 hinzugefügt |
(nicht existieren) | (nicht existieren) |
private | Zugänglich im selben Bereich * Sie können auch auf die private Variable der inneren Klasse verweisen. |
Zugänglich im selben Bereich | Zugänglich im selben Bereich | Zugänglich im selben Bereich * Auf bis zu Swift2 kann in derselben Datei zugegriffen werden |
Zugänglich im selben Bereich | Zugänglich im selben Bereich |
Unbestimmt | Zugriff innerhalb desselben Pakets | Gleich wie öffentlich | Gleich wie geschützt | Gleich wie intern | Gleich wie privat | Gleich wie öffentlich * Bindung binden lassen/do束縛ではGleich wie privat |
Es scheint, dass Sie vorsichtig sein müssen, weil die Bewegung, wenn Sie nichts spezifizieren, wunderbar anders ist.
Zum ersten Mal Kotlin. Ich habe es mit Java verglichen Zugriffskontrolle von Swift 3 Objective-C-Zugriffsspezifizierer
Recommended Posts