So verwenden Sie die Java Object Clone()-Methode

Das Java-Objekt Klon() Die Methode erstellt genau dieselbe Kopie des Objekts. Es implementiert die klonbare Klasse von Java, um eine exakte Kopie der bereitgestellten Eingaben zu erstellen. Diese Methode bietet eine einfache Methode zum Kopieren der Objekte. Die Objekte können kopiert werden, ohne dass Codes wiederholt geschrieben werden müssen.

In diesem Artikel wird die Verwendung der clone()-Methode von Java im Detail demonstriert.

Wie verwende/nutze ich die Java Object clone()-Methode?

Die clone()-Methode von Java repliziert die Objekte und liefert die exakte Kopie inklusive aller Parameter. Es gibt bestimmte Methoden für die Implementierung des Java clone()-Objekts wie das Flache Kopie Dies ist die Standard-Klonmethode in Java, die Kopien primitiver Datentypen ohne Objektreferenzen erstellt, während in tiefe Kopie Sowohl die Datentypen als auch die Objektreferenzen werden kopiert.

In diesem Artikel wurde die Implementierung zweier Methoden besprochen.

Methode 1: Implementierung der clone()-Methode mithilfe von Shallow Copy

Diese Methode ist standardmäßig eine Methode des clone()-Objekts, die alle Objekte kopiert.

// Built-in class cloneable of Java
class Main implements Cloneable{
// strings and integers are declared
   
  String employeename;
  int employeeid;
  String employeepost;
  String employeeadd;
  public static void main(String[] args) {
//Declare values respectively in the Main class
    Main object1 = new Main();
    object1.employeename = "Mr Adam";
    object1.employeeid = 3489;
    System.out.println(object1.employeename); 
    System.out.println(object1.employeeid);   
// Declare values respectively in the Main Class
   
    Main object3= new Main();
// Declare input for the objects crteated
    object3.employeeadd="Block D street 29,circular road";
    object3.employeepost="Banker";
// Print the output
    System.out.println(object3.employeeadd);      
    System.out.println(object3.employeepost);
// try catch block for exception handling

    try {
// Clone method on object 2 along with the outputs
      Main object2 = (Main)object1.clone();
      System.out.println(object2.employeename);     
      System.out.println(object2.employeeid);
// Clone method on object 4 along with the respective outputs
      Main object4 = (Main)object3.clone();
      System.out.println(object4.employeeadd);     
      System.out.println(object4.employeepost);
    }
    catch (Exception o) {
      System.out.println(o);
    }

  }
}

Im obigen Code:

  • Das heißt, eine integrierte Klasse von Java klonbar genannt worden.
  • Die Objekte in Form von Zeichenfolgen und Ganzzahlen wurden deklariert.
  • Verwendung der Klon() Mit der Methode im try-Block werden die deklarierten Objekte genau wie die bereitgestellte Eingabe geklont.
  • Als Ausnahme wurde der Catch-Block verwendet.

Ausgabe

In der obigen Ausgabe wurden dieselben Objekte gedruckt, da die Methode clone() die Kopie des Originals erstellt.

Methode 2: Implementierung der clone()-Methode mithilfe von Deep Copy

Die tiefe Kopie wird so verwendet, dass ein neues Array erstellt wird und alle in diesem Array vorhandenen Werte kopiert werden.

class Post implements Cloneable{
    int employeeid;
    String employeepost;
//Declaring respective integers and strings
    public Post(int employeeid,String employeepost) {
        this.employeeid = employeeid;
        this.employeepost = employeepost;
    }//Exception for the clone() method.
    protected Object clone() throws CloneNotSupportedException {//return the clone() value.

        return super.clone();
    }
}
//Cloneable class
class newEmployee implements Cloneable {
    int empid;
    String emppost;
   

    public newEmployee(int empid, String emppost) {
        this.empid = empid;
        this.emppost = emppost;
    }
    protected Object clone() throws CloneNotSupportedException {//The clone() method to create a copy.
        newEmployee emp = (newEmployee) super.clone();

        return emp;
    }
}
//Creating Deep copy class
class DeepCopyInJava {
    public static void main(String[] args) {
        newEmployee empl1 = new newEmployee(111, "Operation Manager");
        newEmployee empl2 = null;
        try {
// Assigning clone of empl1 to empl2
            empl2 = (newEmployee) empl1.clone();
        } catch (CloneNotSupportedException f) {
            f.printStackTrace();
        }
// Printing the results
        System.out.println(empl1.emppost);
        empl2.emppost = "Manager";
        System.out.println(empl1.emppost);
    }
}

Im obigen Code:

  • Eine klonbare Namensklasse Post wurde erschaffen.
  • Für das Klonen wurden sowohl Integer- als auch String-Werte übergeben.
  • Eine weitere klonbare Namensklasse neuer Angestellter wurde erstellt, das auch einen Integer- und einen String-Wert enthält.
  • Die jeweiligen Integer- und String-Werte für die erste und zweite Klasse wurden im deklariert DeepcopyJava Klasse.
  • Im Try-Block wurde der Klon für die Werte erstellt.
  • Die Ausnahmebehandlung wurde im Catch-Block deklariert.
  • Die Werte wurden jedoch in Manager geändert.
  • Da der Wert geklont wurde, erscheint die Ausgabe daher als geklonter Wert.

Ausgabe

In der folgenden Ausgabe wird der Wert des Objekts trotz Änderung geändert Beitrag in empl2 es hat die Ergebnisse nicht beeinflusst.

Die Implementierung der clone()-Methode in Java geht zu Ende.

Abschluss

Die clone()-Methode in Java ist dafür verantwortlich, genau dieselbe Kopie des Objekts zu erstellen, das als Eingabe bereitgestellt wurde. In diesem Artikel haben wir effektiv demonstriert, wie man die clone()-Methode mit flachem Kopieren und tiefem Kopieren in Java verwendet.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen