Relation entre les modificateurs d'accès kotlin et java

introduction

Nous avons étudié comment kotlin «public», «interne», «protected», «private» et «public» de java, «package private», «protected», «private» se ressemblent.

Voyons d'abord de quel type de droits d'accès ils disposent.

Modificateur d'accès Java (déclaration pour la classe)

public Accessible de n'importe où
protected Je ne peux pas déclarer
package private Accessible à partir du même package
private Je ne peux pas déclarer

Modificateur d'accès Java (déclaration pour les membres de la classe)

public Accessible depuis toutes les classes
protected Accessible à partir de sous-classes ou de classes dans le même package
package private Accessible depuis les classes du même package
private Uniquement accessible depuis la classe déclarée

Modificateurs d'accès Kotlin (déclarations pour les classes / fonctions / variables de niveau supérieur)

public Accessible de n'importe où
internal Accessible depuis le même module
protected Je ne peux pas déclarer
private Uniquement accessible depuis la classe déclarée

Modificateur d'accès Kotlin (déclaration pour les membres de la classe)

public Accessible depuis toutes les classes
internal Accessible à partir des classes du même module
protected Uniquement accessible depuis les sous-classes
private Uniquement accessible depuis le fichier déclaré

Relation entre les modificateurs d'accès dans kotlin et java

Entrons dans le sujet principal à partir d'ici, voyons ce qui se passe lorsque les modificateurs d'accès de kotlin sont visualisés à partir de Java.

la classe privée de kotlin

Les classes privées de kotlin sont considérées comme des packages privés en java.

A.kt


package com.example.model

private class A(name: String, age: Int, height: Int)

B.java


package com.example.model

public class B {

  public B() {
    A a = new A("taku", 23, 168); // OK
  }
}

C.java


package com.example.ui


public class C {

  public C(){
    A a = new A("taku", 23, 168) // ERROR
  }
}

modificateur interne de kotlin

Java n'a pas de modificateur interne. Par conséquent, tout ce qui est marqué comme interne dans kotlin est considéré comme public par Java. Cependant, si vous êtes un membre de la classe, il sera masqué.

A.kt


package com.example.model

internal class A(val name: String, internal val age: Int, private val height: Int)

B.java


package com.example.model

public class B {

  public B() {
    A a = new A("taku", 23, 168); // OK

    a.getName(); // OK

    a.getAge(); // ERROR
    
    a.getAge$production_sources_for_module_example(); // OK
    
    a.getHeight(); // ERROR
  }
}

Recommended Posts

Relation entre les modificateurs d'accès kotlin et java
Différences entre Java "débutant" et Kotlin
[Java] Relation entre H2DB et JDBC
Conversion entre Kotlin nullable et Java facultative
[Pour les débutants] Différence entre Java et Kotlin
À propos des modificateurs d'accès Java
[Java] Différence entre == et égal
Relation entre le contrôleur et la vue
Relation entre le package et la classe
[Java] Différence entre Hashmap et HashTable
[JAVA] Différence entre abstrait et interface
[Java] Différence entre array et ArrayList
Différences entre Java et .NET Framework
[Java] Différence entre fermable et fermable automatiquement
[Java] Différence entre StringBuffer et StringBuilder
[Java] Différence entre longueur, longueur () et taille ()
[Java] Structure d'introduction Définition de classe Relation entre classe et instance Format de définition de méthode
La relation entre la vérification stricte de la date Java et l'heure d'été
À propos de la relation entre l'opérateur d'égalité de chaîne Java (==) et l'initialisation. Débutants
Différence entre final et immuable en Java
[Java] Différences entre les variables d'instance et les variables de classe
Un ingénieur Java a comparé Swift, Kotlin et Java.
[Note] Coopération entre Java et DB (basique)
Relation entre le plug-in Eclipse m2e et Maven
[Java] Différence entre la plage Intstream et la plageClosed
Différence entre int et Integer en Java
HashMap # putAll () se comporte différemment entre Java 7 et Java 8
Interpréter la relation entre les méthodes Java et les arguments en formules biochimiques
Modificateur d'accès [Java]
[Java] Comprendre la différence entre List et Set
Fonctions Kotlin et lambdas à envoyer aux développeurs Java
Instruction de commutation Java et pause, Kotlin lorsque l'expression ...
Différence entre next () et nextLine () dans Java Scanner
Résumer les différences entre l'écriture C # et Java
Java et JavaScript
XXE et Java
Distinguer les nombres positifs et négatifs en Java
[Java] Différence entre "variable finale" et "objet immuable"
Comment accéder aux méthodes et champs Java Private
Relation entre le test et l'enregistrement de l'interface utilisateur, méthode de mise en œuvre
Organisez la différence de confort d'écriture entre l'expression lambda Java et l'expression lambda Kotlin.
À propos des modificateurs d'accès
Revenir au début et démarrer avec Java ① Types de données et modificateurs d'accès
Échantillon jusqu'à l'authentification OAuth 2.0 et l'acquisition de jetons d'accès (Java)
Veuillez noter la division (division) de java kotlin Int et Int
Langage Java du point de vue de Kotlin et C #
Ecrire une classe en Kotlin et l'appeler en Java
Accéder au résumé des qualificatifs - Édition du langage JVM (Java / Groovy / Scala / Kotlin)
À propos de la relation entre les méthodes HTTP, les actions et CRUD
[Java] Différence entre statique final et final dans les variables membres
[JAVA] Quelle est la différence entre interface et abstract? ?? ??
Vérification de la relation entre l'image Docker et le conteneur
Je veux faire des transitions d'écran avec kotlin et java!
Conversion entre objets Java et JSON à l'aide de Moshi
[Java] [Kotlin] Appeler valueOf et les valeurs de Enum de manière générique
[Java débutant] Différence entre la longueur et la longueur () ~ Je ne sais pas ~
Getter et Setter (Java)