Un point de confusion lors du développement dans différentes langues est le modificateur d'accès. Cette fois, en tant qu'édition de développement d'applications pour smartphone, nous étudierons chaque qualificatif d'accès pour Java / Kotlin utilisé pour le développement Android, Objective-C / Swift utilisé pour le développement iOS et C # / F # utilisé pour Xamarin, et le résumerons sous forme de tableau de comparaison. Je l'ai essayé.
Modificateur d'accès | Java | Kotlin | Objective-C | Swift | C# | F# |
---|---|---|---|---|---|---|
open | (n'existe pas) | (n'existe pas) | (n'existe pas) | Accessible de n'importe où * Ajouté dans Swift3 |
(n'existe pas) | (n'existe pas) |
public | Accessible de n'importe où | Accessible de n'importe où | Accessible de n'importe où | Accessible de n'importe où ※ただし別モジュールからの継承とオーバーライドは不可(Swift2まではAccessible de n'importe où) |
Accessible de n'importe où | Accessible de n'importe où |
package | (n'existe pas) | (n'existe pas) | Accessible depuis le même cadre * Privé hors du cadre |
(n'existe pas) | (n'existe pas) | (n'existe pas) |
protected | Accessible à partir de la classe + classe dérivée dans le même package | 継承したAccessible à partir de la classe + classe dérivée dans le même package | Accessible depuis la même classe + classe dérivée | (n'existe pas) | Accessible depuis la même classe + classe dérivée | (n'existe pas) |
protected internal | (n'existe pas) | (n'existe pas) | (n'existe pas) | (n'existe pas) | Accessible depuis la classe + la classe dérivée dans le même projet | (n'existe pas) |
internal | (n'existe pas) | Accessible dans le même module | (n'existe pas) | Accessible dans le même module | Accessible dans le même assemblage | Accessible dans le même assemblage |
fileprivate | (n'existe pas) | (n'existe pas) | (n'existe pas) | Peut être consulté dans le même fichier * Ajouté dans Swift3 |
(n'existe pas) | (n'existe pas) |
private | Accessible dans le même périmètre * Vous pouvez également vous référer à la variable privée de la classe interne. |
Accessible dans le même périmètre | Accessible dans le même périmètre | Accessible dans le même périmètre * Jusqu'à Swift2 est accessible dans le même fichier |
Accessible dans le même périmètre | Accessible dans le même périmètre |
Non précisé | Accessible dans le même package | Identique au public | Identique à protégé | Identique à interne | Identique à privé | Identique au public * Laissez la liaison/do束縛ではIdentique à privé |
Il semble que vous deviez être prudent car le mouvement lorsque vous ne spécifiez rien est merveilleusement différent.
Premier Kotlin. Je l'ai comparé à Java Contrôle d'accès depuis Swift 3 Spécificateur d'accès Objective-C
Recommended Posts