Heim Backend-Entwicklung C#.Net-Tutorial Detaillierte Erklärung, wie man statische Methoden in Kotlin ähnlich wie Java oder C# implementiert

Detaillierte Erklärung, wie man statische Methoden in Kotlin ähnlich wie Java oder C# implementiert

Jun 04, 2017 am 09:41 AM

So implementieren Sie

statische -Methoden in Kotlin ähnlich wie Java oder C#. Dieser Artikel fasst mehrere Methoden zusammen, nämlich: Paketebene Funktion , Begleiter Objekt, Erweiterungsfunktionen und Objektdeklarationen. Dies erfordert, dass jeder je nach Situation eine Auswahl trifft.

Sie können viele solcher Artikel im Internet finden. Die offizielle Empfehlung sind Funktionen auf Paketebene, und einige Leute empfehlen die Verwendung von Begleitobjekten (Companion Klasse). Das sind gute Optionen, aber sie sind nicht perfekt, und wir haben in verschiedenen Situationen bessere Optionen. Ich habe mehrere Methoden zusammengefasst, nämlich: Funktionen auf Paketebene, Begleitobjekte, Erweiterungsfunktionen und Objektdeklarationen. Dies erfordert, dass jeder je nach Situation eine Auswahl trifft.

1. Funktionen auf Paketebene

Der Unterschied zwischen Kotlin und Java und C# besteht darin, dass Sie Funktionen direkt in der deklarieren können Paket. Die Methode ist die gleiche wie in der Kategorie, daher werde ich hier nicht auf Details eingehen. Es ist in der Tat eine sehr gute Wahl. Es eignet sich für Funktionen, die keine internen Klassen für den Datenaustausch enthalten müssen.

2. Begleitobjekt

Semantisch gesehen sind Begleitfunktionen den statischen Methoden in Java am ähnlichsten, sodass Begleitobjekte statische Methoden in Java vollständig implementieren können Inhalte der Klasse. Aber die Verwendung statischer Methoden in Java ist manchmal keine Wahl. In Kotlin sind Begleitobjekte nur eine unserer Optionen. Als nächstes werde ich die Begleitobjekte vorstellen.

Ist Ihnen bei der Verwendung von Java schon einmal aufgefallen, wann die statischen
Variablen und Methoden in Java-Klassen initialisiert werden? Ist es der erste Aufruf der statischen Methode oder das Laden der entsprechenden Java-Klasse? Die Antwort lautet, wenn die Java-Klasse geladen wird (d. h. wenn Sie die Instanzvariablen und -methoden in der Java-Klasse aufgerufen haben, auch wenn Sie keine statischen Variablen und Methoden verwendet haben, wurden die statischen Variablen initialisiert). Ist es nicht angebracht, dieses Phänomen als begleitend zu bezeichnen?

In Kotlin wird davon ausgegangen, dass es zwei Arten von Dingen in einer Klasse gibt: zum einen Instanzvariablen und -methoden in Java-Klassen und zum anderen statische Variablen und Methoden in Java-Klassen. Kotlin packt statische Instanzen und Methoden in eine Begleitklasse, und so sieht es aus. Nachfolgend finden Sie ein Beispiel:

fun main(args: Array<String>) {
 Books.getBestSellers()
}
class Books(var name: String, val page: Int) {
  fun getWordCount()=page*100
  companion object ComBooks{
    var bestSellers=arrayOf("Harry Potter\r\t","Lord of the Rings\r\t")
    fun getBestSellers() {
      bestSellers.forEach{v->println(v)}
    }
  }
}
Nach dem Login kopieren
Die Begleitklasse wird mit Companion deklariert. Sie wird in die Klasse geladen, in der sich das Begleitobjekt befindet, und das Begleitobjekt wird wie statische Java-Mitglieder initialisiert. Sie kann anonym sein oder denselben Namen wie die enthaltende Klasse haben. Es gibt zwei Arten von Aufrufen:

oder Books.ComBooks.getBestSellsers()?Books.getBestSellsers()?。

3. Erweiterungsfunktion

In Java schreiben wir oft Utils-Klassen Diese Klassen führen häufig Operationen an einem bestimmten Objekt aus, die seinen Funktionen und ihren eigenen Programmen entsprechen. Die meisten Methoden sind statische Methoden, zum Beispiel:

public class Utils {

  public static boolean isEmpty(String string){
    return string != null && string.length() == 0;
  }

  public static boolean isWeakEmpty(String string){
    return isEmpty(string) && string.trim().length() == 0;
  }
}
Nach dem Login kopieren
Natürlich können wir die beiden oben genannten Methoden verwenden, um diese statischen Methoden zu implementieren, aber wir haben einen besseren Weg.

fun String.isEmpty() = this != null && this.length == 0;

fun String.isWeakEmpty()= this.isEmpty() && this.trim().length == 0
Nach dem Login kopieren
Die beiden oben genannten Codezeilen erweitern die String-Klasse um zwei Funktionen. Diese beiden Funktionen können wie ihre nativen Funktionen aufgerufen werden. Tatsächlich ändert die Erweiterungsfunktion den internen Inhalt der String-Klasse nicht und fügt String nur zwei statische Funktionen hinzu. Im Vergleich zur Utils-Klasse von Java wurde die Lesbarkeit jedoch erheblich verbessert.


4. Objektdeklaration

Betrachten Sie weiterhin die obige Utils-Klasse. Alle Methoden (und manchmal auch Variablen) in dieser Klasse sind statisch Methode muss überhaupt nicht instanziiert werden. In Java deklarieren wir diesen Typ häufig als statische Klasse. Gibt es eine gute Lösung für diese Situation? Gibt es eine bessere Lösung als Begleitobjekte? Natürlich gibt es eine Objektdeklaration.


Die Objektdeklaration ist sehr einfach zu verstehen. Zum Deklarieren eines Objekts können Variablen und Methoden verwendet werden, z. B.:

object AppInfo{
  var AppName = "Kotlin Message"
  var AppAuthor = "Riley Ge"
  fun toSimpleString() {
    println("AppName:$AppName,AppAuthor:$AppAuthor") 
  }
}
Nach dem Login kopieren
Discover Kotlin-Objekte Wie mächtig! Jeder sollte darauf achten, dass AppInfo beim ersten Zugriff verzögert initialisiert wird, was bedeutet, dass AppInfo nicht initialisiert wird, wenn das Objekt deklariert wird.


5. Zusammenfassung

Nach so vielen Methoden macht sich niemand Sorgen, dass Kotlin jetzt keine statischen Methoden hat, oder? Ich habe es nicht nur wegen ihm. Kann es besser machen. Darüber hinaus bietet Ihnen Kotlin mehr Auswahlmöglichkeiten. Sie können die geeignete Methode entsprechend Ihrer tatsächlichen Situation auswählen, um Ihren Code effizient und schön zu gestalten.


Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie man statische Methoden in Kotlin ähnlich wie Java oder C# implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Der Unterschied zwischen Multithreading und asynchronem C# Der Unterschied zwischen Multithreading und asynchronem C# Apr 03, 2025 pm 02:57 PM

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, während asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, während asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, während der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abhängt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsfähigkeit asynchron verwenden müssen.

Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Gestalten Sie die Zukunft: Java-Programmierung für absolute Anfänger Oct 13, 2024 pm 01:32 PM

Java ist eine beliebte Programmiersprache, die sowohl von Anfängern als auch von erfahrenen Entwicklern erlernt werden kann. Dieses Tutorial beginnt mit grundlegenden Konzepten und geht dann weiter zu fortgeschrittenen Themen. Nach der Installation des Java Development Kit können Sie das Programmieren üben, indem Sie ein einfaches „Hello, World!“-Programm erstellen. Nachdem Sie den Code verstanden haben, verwenden Sie die Eingabeaufforderung, um das Programm zu kompilieren und auszuführen. Auf der Konsole wird „Hello, World!“ ausgegeben. Mit dem Erlernen von Java beginnt Ihre Programmierreise, und wenn Sie Ihre Kenntnisse vertiefen, können Sie komplexere Anwendungen erstellen.

Java -Programm, um das Kapselvolumen zu finden Java -Programm, um das Kapselvolumen zu finden Feb 07, 2025 am 11:37 AM

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung Java leicht gemacht: Ein Leitfaden für Anfänger zur Programmierleistung Oct 11, 2024 pm 06:30 PM

Java leicht gemacht: Ein Leitfaden für Anfänger zur leistungsstarken Programmierung Java ist eine leistungsstarke Programmiersprache, die in allen Bereichen von mobilen Anwendungen bis hin zu Systemen auf Unternehmensebene verwendet wird. Für Anfänger ist die Syntax von Java einfach und leicht zu verstehen, was es zu einer idealen Wahl zum Erlernen des Programmierens macht. Grundlegende Syntax Java verwendet ein klassenbasiertes objektorientiertes Programmierparadigma. Klassen sind Vorlagen, die zusammengehörige Daten und Verhaltensweisen organisieren. Hier ist ein einfaches Java-Klassenbeispiel: publicclassPerson{privateStringname;privateintage;

So öffnen Sie das XML -Format So öffnen Sie das XML -Format Apr 02, 2025 pm 09:00 PM

Verwenden Sie die meisten Texteditoren, um XML -Dateien zu öffnen. Wenn Sie eine intuitivere Baumanzeige benötigen, können Sie einen XML -Editor verwenden, z. B. Sauerstoff XML -Editor oder XMLSPY. Wenn Sie XML -Daten in einem Programm verarbeiten, müssen Sie eine Programmiersprache (wie Python) und XML -Bibliotheken (z. B. XML.etree.elementtree) verwenden, um zu analysieren.

Wie führe ich Ihre erste Spring -Boot -Anwendung in der Spring Tool Suite aus? Wie führe ich Ihre erste Spring -Boot -Anwendung in der Spring Tool Suite aus? Feb 07, 2025 pm 12:11 PM

Spring Boot vereinfacht die Schaffung robuster, skalierbarer und produktionsbereiteter Java-Anwendungen, wodurch die Java-Entwicklung revolutioniert wird. Der Ansatz "Übereinkommen über Konfiguration", der dem Feder -Ökosystem inhärent ist, minimiert das manuelle Setup, Allo

Fortgeschrittene C# .NET: Parallelität und Multithreading erklärt Fortgeschrittene C# .NET: Parallelität und Multithreading erklärt Apr 03, 2025 am 12:01 AM

C#.NET bietet leistungsstarke Tools für die gleichzeitige, parallele und multitHhread -Programmierung. 1) Verwenden Sie die Thread -Klasse, um Threads zu erstellen und zu verwalten.

See all articles