जावा में ऑब्जेक्ट को सही तरीके से कॉपी कैसे करें: शैलो और डीप कॉपी
सभी को नमस्ते! मैंने अभी-अभी Java सीखना शुरू किया है और एक समस्या का सामना करना पड़ा जो मुझे बहुत भ्रमित करती है। मैं एक ऑब्जेक्ट को कॉपी करने की कोशिश कर रहा हूं, लेकिन मुझे अप्रत्याशित परिणाम मिल रहे हैं। मान लीजिए, मेरे पास name और age फील्ड वाला एक सरल Person क्लास है, और एक नेस्टेड Address ऑब्जेक्ट भी है।
जब मैं लिखता हूं:
```java
Person p1 = new Person("इवान", 30, new Address("मॉस्को", "टावर्सकाया", 10));
Person p2 = p1;
p2.setName("पीटर");
System.out.println(p1.getName()); // "पीटर" प्रिंट करता है - क्यों?!
```
मुझे उम्मीद थी कि p1 "इवान" ही रहेगा, और p2 "पीटर" बन जाएगा। लेकिन, जैसा कि मैंने समझा, यह सिर्फ रेफरेंस कॉपी करना है। मैंने clone() मेथड का उपयोग करने की कोशिश की:
```java
public class Person implements Cloneable {
private String name;
private Address address;
// कंस्ट्रक्टर, गेटर्स, सेटर्स
@Override
protected