2016-04-09 16 views
1

Ich arbeite an einigen Hausaufgaben für Einsteiger Java, und ich lief in diesem. Ich habe keine Ahnung, was es mit mir machen soll. Ist das nur "Date" gleich dem Wert in "Date d"? oder verpasse ich etwas? Ich habe nicht das Gefühl, dass eine Erklärung für einen einzeiligen Code benötigt würde.verstehen, wie man Daten kopiert

Könnte jemand bitte erklären, was hier passiert und was ich vermisse?

Copykonstruktor: dies ist ein Konstruktor, der einen Parameter des Typ Datums akzeptiert und stellt dann den Empfang (oder Ausführung) Objekte Instanz Variablen gleich die des Parameterobjekts. Das Ergebnis ist, dass das empfangende Objekt eine Kopie des formalen Parameter Objekt ist:

public Date(Date d) 

Antwort

0

Alles, was Sie tun müssen, ist es, alle Felder von d zu nehmen und sie zu kopieren, um das neue Datum über. Wenn also ein Datum eine Uhrzeit, einen Tag, einen Monat und ein Jahr hat, kopieren Sie alle auf das neue Datum. Das ist es.

+0

also, wenn ich richtig verstehe, alles, was ich tun müsste, ist mit einem Accessor, um das Datum zu ziehen, und setzen Sie es auf was auch immer es zieht? –

+0

@JWelch Ja, wenn das einzige Feld in einem Date-Objekt das Datum ist. Wenn mehrere Felder vorhanden sind, müssen Sie ein Accessoire verwenden, um jedes von ihnen zu ziehen, und das neue Objekt für jedes geeignet festlegen. – nhouser9

+0

genial. danke nhouser9, das löst mein Problem. –

0
class Complex { 

private double re, im; 

// A normal parametrized constructor 
public Complex(double re, double im) { 
    this.re = re; 
    this.im = im; 
} 

// copy constructor 
Complex(Complex c) { 
    System.out.println("Copy constructor called"); 
    re = c.re; 
    im = c.im; 
} 

// Overriding the toString of Object class 
@Override 
public String toString() { 
    return "(" + re + " + " + im + "i)"; 
    } 
} 

public class Main { 

public static void main(String[] args) { 
    Complex c1 = new Complex(10, 15); 

    // Following involves a copy constructor call 
    Complex c2 = new Complex(c1); 

    // Note that following doesn't involve a copy constructor call as 
    // non-primitive variables are just references. 
    Complex c3 = c2; 

    System.out.println(c2); // toString() of c2 is called here 
    } 
} 
Verwandte Themen