Wann und wo das Kotlin Companion-Objekt zu verwenden ist

Kailash Vaviya 15 Februar 2024
  1. Java statische Methoden
  2. Kotlin Begleiter-Objekt
  3. Wann sollten wir ein Kotlin-Begleitobjekt verwenden?
Wann und wo das Kotlin Companion-Objekt zu verwenden ist

In jeder objektorientierten Programmiersprache wie Kotlin, Java oder C# müssen wir Objekte einer Klasse erstellen, um auf ihre Mitglieder zuzugreifen. In Kotlin sieht das ungefähr so aus:

class className{
    fun funName() = // code will come here
}
fun main(){
    val obj = className()
    obj.funName() // calling the function using the class's object
}

Es gibt jedoch eine Möglichkeit, auf die Methode einer Klasse zuzugreifen, ohne ein Objekt zu erstellen. Und hier kommen Javas statische und Kotlins begleitende Objekte ins Spiel.

In diesem Artikel erfahren wir mehr über das Objekt Begleiter und wie es in Kotlin verwendet wird. Aber bevor wir darauf eingehen, schauen wir uns ein Beispiel für die statischen Methoden von Java an.

Java statische Methoden

Java ermöglicht es, einen objektorientierten Programmieransatz zu verfolgen, ohne ein Objekt zu erstellen. Dies geschieht durch die Verwendung von statischen Objekten oder Instanzen.

Das Schlüsselwort static ermöglicht die Erstellung von statischen Variablen oder Methoden innerhalb einer Klasse. Diese Variablen oder Methoden bleiben konstant und können nach der Initialisierung nicht mehr geändert werden.

Die bedeutendste Verwendung des Schlüsselworts static in Java ist die Speicherverwaltung. Wir können auf statische Variablen und Methoden zugreifen, ohne ein Objekt zu erstellen, was Speicher spart.

Auf solche Methoden können wir mit Hilfe von Klassennamen zugreifen.

Das folgende Java-Programm demonstriert dasselbe. Die cubeNumber() in diesem Programm ist eine statische Methode.

Es nimmt einen ganzzahligen Parameter und gibt seinen Würfel zurück.

import java.util.*;

public class Example {
  public static void main(String[] args) {
    int res = Example.cubeNumber(3);
    System.out.println("Cube of 3 is: " + res);
  }

  public static int cubeNumber(int i) {
    return i * i * i;
  }
}

Statische Methode in Java

Wie wir sehen, ist die cubeNumber() die statische Methode im obigen Beispiel. Daher könnten wir es mit dem Klassennamen aufrufen.

Kotlin Begleiter-Objekt

Java hat statische Methoden, aber es gibt kein statisches in Kotlin. Es gibt immer noch eine Möglichkeit, solche Variablen zu erstellen, aber der Ansatz ist ein anderer.

In Kotlin verwenden wir das Schlüsselwort companion-Objekt, um solche Methoden zu erstellen.

Das Schlüsselwort companion funktioniert genauso wie das Schlüsselwort static in Java. Es ermöglicht den Zugriff auf Methoden, die mit dem Schlüsselwort companion ohne Objekt erstellt wurden.

Hier ist ein Beispiel, um die Verwendung von companion-Objekten in Kotlin zu demonstrieren. In diesem Beispiel erstellen wir eine Klasse Employee.

Wir werden dann eine Funktion erstellen, um den Namen des Mitarbeiters mit dem Schlüsselwort companion auszugeben und ohne das Objekt der Klasse darauf zuzugreifen.

class Employee {

    companion object {
        fun printName() = println("Hi, my name is David.")
    }
}

fun main(args: Array<String>) {
    Employee.printName()
}

Kotlin-Begleitobjekt-Beispielprogramm

Wir können den Namen der Funktion auch weglassen. In diesem Fall können wir den Namen Companion verwenden.

Wann sollten wir ein Kotlin-Begleitobjekt verwenden?

Das beste Szenario für die Verwendung eines Kotlin-Begleitobjekts ist, wenn es den Zustand des Objekts der Klasse nicht beeinträchtigt. Das heißt, wenn Sie reine Funktionen oder Endwerte verwenden, auf die von außerhalb der Klasse selbst zugegriffen werden muss, können Sie das Kotlin-Objekt Begleiter verwenden.

Wenn das Objekt jedoch den Zustand des Objekts der Klasse stört, wird davon abgeraten, das Objekt companion zu verwenden. Denn seine Verwendung kann zu zahlreichen Fehlern führen.

Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn

Verwandter Artikel - Kotlin Object