JavaRush /Java-Blog /Random-DE /Kaffeepause Nr. 114. Der Standardkonstruktor in Java ist ...

Kaffeepause Nr. 114. Der Standardkonstruktor in Java ist ein Beispiel für einen Klassenkonstruktor. Maven vs. Gradle: So wählen Sie das richtige Build-Tool aus

Veröffentlicht in der Gruppe Random-DE

Standardkonstruktor in Java – Beispiel eines Klassenkonstruktors

Quelle: FreeCodeCamp In diesem Artikel sprechen wir über Konstruktoren, wie man sie erstellt und was die Standardkonstruktoren in Java sind. Kaffeepause Nr. 114.  Der Standardkonstruktor in Java ist ein Beispiel für einen Klassenkonstruktor.  Maven vs. Gradle: So wählen Sie das richtige Build-Tool aus – 1

Was ist ein Konstruktor?

Als klassenbasierter objektorientierter Programmierbegriff ist ein Konstruktor eine einzigartige Methode, die zum Initialisieren eines neu erstellten Objekts (einer Klasse) verwendet wird. Es gibt mehrere Regeln, die Sie beim Erstellen von Konstruktoren beachten sollten. Zu diesen Regeln gehören:
  • Der Konstruktorname muss mit dem Klassennamen übereinstimmen.
  • Ein Konstruktor darf keinen Rückgabetyp haben.
Bevor wir fortfahren, sehen wir uns an, wie eine Klasse in Java aussieht:
public class Student {
  String firstName;
  String lastName;
  int age;
}
Der obige Code zeigt eine Student- Klasse mit drei Attributen: firstName , lastName und age . Wir gehen davon aus, dass die Klasse ein Modell für die Studentenregistrierung sein soll. Denken Sie daran, dass diese drei Attribute keine Werte haben und die darin enthaltenen Informationen daher nicht fest codiert sind. Jetzt werden wir Konstruktoren verwenden, um eine neue Instanz unseres Student- Objekts zu erstellen :
public class Student {
  String firstName;
  String lastName;
  int age;

  //конструктор Student
  public Student(){
      firstName = "Ihechikara";
      lastName = "Abba";
      age = 100;
  }

  public static void main(String args[]) {
      Student myStudent = new Student();
      System.out.println(myStudent.age);
      // 100
  }
}
Wir haben einen Konstruktor erstellt, mit dem wir die im Student- Objekt definierten Attribute initialisieren . Der obige Code ist ein Beispiel für einen Konstruktor ohne Argumente . Schauen wir uns nun ein anderes Beispiel an:
public class Student {
  String firstName;
  String lastName;
  int age;

  //конструктор
  public Student(String firstName, String lastName, int age){
      this.firstName = firstName;
      this.lastName = lastName;
      this.age = age;
  }

  public static void main(String args[]) {
    Student myStudent = new Student("Ihechikara", "Abba", 100);
    System.out.println(myStudent.age);
  }

}
Jetzt haben wir einen parametrisierten Konstruktor erstellt. Ein parametrisierter Konstruktor ist ein Konstruktor, der mit Argumenten/Parametern erstellt wird. Jetzt lasst es uns ändern.
public Student(String firstName, String lastName, int age){

  }
Wir haben einen neuen Konstruktor erstellt, der drei Argumente akzeptiert – zwei Zeichenfolgen und eine Ganzzahl.
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
Anschließend haben wir diese Argumente mit den Attributen verknüpft, die wir beim Erstellen unserer Klasse definiert haben. Jetzt haben wir das Student- Objekt mit dem Konstruktor initialisiert.
public static void main(String args[]) {
    Student myStudent = new Student("Ihechikara", "Abba", 100);
    System.out.println(myStudent.age);
  }
Schließlich haben wir eine neue Instanz des Student- Objekts erstellt und unsere Argumente daran übergeben. Dies war uns möglich, da wir sie bereits im Konstruktor definiert hatten. Ich habe einen Konstruktor mit drei Argumenten erstellt, Sie können aber auch separate Konstruktoren erstellen, um jedes Attribut zu initialisieren. Nachdem Sie nun wissen, was ein Konstruktor in Java ist und wie man ihn verwendet, schauen wir uns die Standardkonstruktoren an.

Was ist der Standardkonstruktor?

Der Standardkonstruktor ist der vom Compiler generierte Konstruktor, wenn wir keine Konstruktoren für die Klasse definieren. Hier ist ein Beispiel:
public class Student {
  String firstName;
  String lastName;
  int age;

  public static void main(String args[]) {
      Student myStudent = new Student();

      myStudent.firstName = "Ihechikara";
      myStudent.lastName = "Abba";
      myStudent.age = 100;

      System.out.println(myStudent.age);
      //100

      System.out.println(myStudent.firstName);
      //Ihechikara
  }
}
Können Sie den Unterschied zwischen diesem und den beiden vorherigen Beispielen erkennen? Beachten Sie, dass wir vor der Erstellung keinen myStudent- Konstruktor definiert haben , um die in der Klasse erstellten Attribute zu initialisieren. Dadurch wird uns kein Fehler in den Weg gelegt. Genauer gesagt erstellt der Compiler einen leeren Konstruktor, aber Sie werden diesen Konstruktor nirgendwo im Code sehen – es geschieht „unter der Haube“. So sieht der obige Code aus, wenn der Compiler mit seiner Arbeit beginnt:
public class Student {
  String firstName;
  String lastName;
  int age;


  /* пустой конструктор, созданный компилятором. Этот конструктор не будет отображаться в вашем Codeе*/
  Student() {

  }

  public static void main(String args[]) {
      Student myStudent = new Student();

      myStudent.firstName = "Ihechikara";
      myStudent.lastName = "Abba";
      myStudent.age = 100;

      System.out.println(myStudent.age);
      //100

      System.out.println(myStudent.firstName);
      //Ihechikara
  }
}
Viele Leute verwechseln den Standardkonstruktor mit dem Konstruktor ohne Argumente, aber in Java sind sie nicht dasselbe. Vom Programmierer erstellte Konstruktoren gelten in Java nicht als Standardkonstruktoren.

Abschluss

In diesem Artikel haben wir gelernt, was Konstruktoren sind und wie wir sie erstellen und zum Initialisieren unserer Objekte verwenden können. Wir haben auch über Standardkonstruktoren gesprochen und wie sie sich von Konstruktoren ohne Argumente unterscheiden. Viel Spaß beim Codieren!

Maven vs. Gradle: So wählen Sie das richtige Build-Tool aus

Quelle: Hackernoon Build-Automatisierung ist ein wichtiger Aspekt der Softwareentwicklung. In diesem Artikel vergleichen wir zwei der beliebtesten Build-Tools für die Java-Entwicklung: Maven und Gradle . Kaffeepause Nr. 114.  Der Standardkonstruktor in Java ist ein Beispiel für einen Klassenkonstruktor.  Maven vs. Gradle: So wählen Sie das richtige Build-Tool aus – 2

Make und Apache Ant

Zuvor verwendeten Entwickler das Make-Tool zum Erstellen von Java-Projekten, und der Erstellungsprozess unterschied sich nicht wesentlich vom Erstellen von Anwendungen in einer anderen Sprache. Aber im Jahr 2000 wurde das Build-System An t (Another Neat Tool) veröffentlicht. Ant verwendet wie Make einen imperativen Stil und seine Build-Skripte haben XML-Syntax. Ant ist als Build-Automatisierungssystem für Java-Projekte konzipiert. Daher können Java-Entwickler die Funktionalität problemlos erweitern.

Maven

Im Jahr 2004 kam das neue Maven-Build-System auf den Markt und veränderte den Prozess der Erstellung von Java-Anwendungen. Zuvor organisierten Entwickler selbst eine Ordnerstruktur zum Speichern von Quellcode, Ressourcen, Klassenpfadverzeichnissen und Ausgabeverzeichnissen. Aus diesem Grund können Ant-Build-Skripte für zwei verschiedene Anwendungen sehr unterschiedlich sein: Kompilierung, Assemblierung, Kopieren von Dateien in das Ausgabeverzeichnis usw. wurden separat geschrieben. In Maven hat ein Java-Projekt immer eine klare Struktur. Quellen sollten sich beispielsweise in src/main/java befinden, Ressourcen für Tests sollten in src/test/resources liegen. Mit Maven können Sie die Dateistruktur eines typischen Projekts mit einem einzigen Befehl erstellen. Maven führt außerdem das Konzept eines „Build-Lebenszyklus“ mit aufeinanderfolgenden Phasen ein: Validieren ➞ Kompilieren ➞ Testen ➞ Verpacken ➞ Verifizieren ➞ Installieren ➞ Bereitstellen) Dank der festen Ordnerstruktur und einer Reihe von Zielen besteht nun keine Notwendigkeit, zu schreiben und Pflegen Sie ein großes Build-Skript – sie sind deklarativ geworden. Für Entwickler ist es komfortabler geworden, nicht nur mit eigenem Code, sondern auch mit Projekten von Drittanbietern zu arbeiten, da klar ist, wie der Quellcode funktioniert und wie er zusammengesetzt wird. In der Java-Welt gibt es eine ganze Reihe von Bibliotheken, und große Anwendungen nutzen Hunderte davon. Wenn Sie Ant verwenden, denken Sie daran, dass Sie die erforderlichen JAR-Dateien selbst zum Projekt hinzufügen müssen. Sie müssen sich auch um die notwendigen transitiven Abhängigkeiten kümmern. Maven stellt Abhängigkeitsmanagerfunktionen über das Maven Central Repository bereit. Wenn Sie nun im Build-Skript eine neue Abhängigkeit angeben, findet Maven automatisch die erforderliche JAR-Datei der entsprechenden Version und alle ihre transitiven Abhängigkeiten, lädt sie herunter und stellt sicher, dass sie im Klassenpfad des Projekts landen. Sie können auch Ihr eigenes privates Repository verwalten, in dem Sie Ihre eigenen oder gepatchten Bibliotheken oder von Hand erstellte Standardbibliotheken speichern können. Es ist zu beachten, dass Ant in Verbindung mit dem Apache Ivy Project verwendet werden kann , wodurch Sie auch Abhängigkeiten verwalten und mit Maven-Repositorys arbeiten können. Trotz aller Vorteile von Maven kann sein deklarativer Ansatz in manchen Situationen ein Nachteil sein. Wenn Sie beispielsweise den Build-Lebenszyklus ändern und dem Build-Prozess neue Ziele hinzufügen müssen. Die Maven-Funktionalität kann mithilfe von Plugins erweitert werden. Es gibt viele vorgefertigte Maven-Plugins, die unterschiedliche Probleme lösen, die alle auch im Maven Central Repository verfügbar sind. Wenn Sie jedoch aus irgendeinem Grund den Standardlebenszyklus geringfügig ändern müssen und kein geeignetes Plugin vorhanden ist, muss der Entwickler es selbst erstellen.

Gradle

Die erste Version des Gradle-Build-Systems wurde 2008 veröffentlicht. 4 Jahre später wurde Version 1.0 veröffentlicht. Ziel des Gradle-Projekts ist es, alle Vorteile von Maven beizubehalten, gleichzeitig aber die Möglichkeiten zur Anpassung des Build-Prozesses zu erhöhen. Gradle-Build-Skripte werden in Groovy DSL geschrieben. Gradle ermöglicht das Schreiben deklarativer Build-Skripte und ist kompakter als Maven, da XML ziemlich umfangreich ist. Sie können Ihrem Gradle-Build-Prozess ganz einfach benutzerdefinierte Logik hinzufügen. Sie müssen lediglich ein Groovy-Skript schreiben und müssen keine Plugins entwickeln. Der Entwickler kann die Ausführung von Build-Skripten problemlos debuggen, da es sich um reguläre Groovy-Dateien handelt. Somit kombiniert Gradle deklarative und imperative Ansätze. Gradle unterstützt auch Plugins, sodass Entwickler Einstellungen ändern können. Einer der wesentlichen Vorteile von Gradle sind inkrementelle Builds. Wenn der Build neu gestartet wird, stellt Gradle fest, ob sich die Eingabedateien des Ziels geändert haben. Wenn nicht, wird die Ausführung des Ziels übersprungen, da seine Ausgabeartefakte bereits erstellt wurden. Dies führt zu einer erheblichen Steigerung der Build-Geschwindigkeit im Vergleich zu Maven, insbesondere bei großen Projekten mit mehreren Modulen. Gradle kann auch den Gradle-Daemon ausführen, einen Hintergrundprozess, der die Verschwendung von Ressourcen und Initialisierungszeit bei jeder Ausführung des Builds vermeidet. Gradle verfügt über eine praktische Gradle-Wrapper-Funktion – die Möglichkeit, Shell- und Windows-Befehlsskripte zu generieren, die automatisch die Gradle-Distribution der angegebenen Version herunterladen und zum Erstellen des Projekts verwenden. Das bedeutet, dass Sie zum Erstellen eines Gradle-Projekts Gradle nicht separat installieren müssen, sondern nur Java installieren müssen. Bei Bedarf können Sie Ihr Projekt problemlos auf eine andere Gradle-Version umstellen.

Wahl zwischen Maven und Gradle

Trotz der Vorteile von Gradle verwenden etliche Projekte das Maven-Build-System. Die Wahl hängt von der Art des Projekts und des Teams ab. Maven wird seit 2004 verwendet, sodass mehr Entwickler damit vertraut sind. Darüber hinaus ist Maven stabil. Die neueste Hauptversion 3 wurde 2010 veröffentlicht. Gradle hat sich ohne Abwärtskompatibilität bereits mehrfach erheblich verändert und Entwickler mussten ihre Build-Skripte auf neue Versionen portieren. Da nicht jeder mit Groovy oder Kotlin vertraut ist, erfordert die Arbeit mit Gradle zusätzliche Kenntnisse, während Maven klares XML verwendet. Dies wirft die Frage auf: Wenn die Entwicklung des Projekts begann, bevor Gradle populär wurde, ist es dann sinnvoll, die Build-Skripte nach Gradle zu verschieben? Einerseits entscheiden sich immer mehr Entwickler für Gradle. Beispielsweise verwenden Spring, Hibernate und LinkedIn Gradle. Das Android-Build-System heißt ebenfalls Gradle und ist bei Android-Anwendungsentwicklern allgemein beliebt. Andererseits sind alle bekannten IDEs in beide Build-Systeme integriert und unterstützen die automatische Vervollständigung beim Bearbeiten von Build-Skripten. Gradle verfügt wie Maven über eine große Anzahl von Plugins, mit denen Sie häufig verwendete Funktionen zum Projekterstellungsprozess hinzufügen können.

Abschluss

Aus den Vor- und Nachteilen der einzelnen oben beschriebenen Montagesysteme lässt sich folgende Schlussfolgerung ziehen. Maven eignet sich besser für kleine Projekte, die keine Anpassung des Build-Prozesses erfordern und bei denen die Projekt-Build-Zeit nicht so wichtig ist. Gradle eignet sich eher für Großprojekte mit vielen Modulen sowie für Android-Anwendungen.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION