Java में ऑब्जेक्ट को सही तरीके से कॉपी कैसे करें: Shallow और Deep Copy
सभी को नमस्ते! मैंने अभी Java सीखना शुरू किया है और एक समस्या का सामना किया जो मुझे बहुत भ्रमित करती है। मैं एक ऑब्जेक्ट को कॉपी करने की कोशिश कर रहा हूँ, लेकिन मुझे अप्रत्याशित परिणाम मिल रहे हैं। मान लीजिए, मेरे पास name और age fields के साथ एक सरल Person class है, और एक nested Address object भी है।
जब मैं लिखता हूँ:
```java
Person p1 = new Person("Иван", 30, new Address("Москва", "Тверская", 10));
Person p2 = p1;
p2.setName("Петр");
System.out.println(p1.getName()); // "Петр" प्रिंट करता है - क्यों?!
```
मुझे उम्मीद थी कि p1 "Иван" ही रहेगा, और p2 "Петр" बन जाएगा। लेकिन, जैसा कि मैंने समझा, यह सिर्फ reference कॉपी करना है। मैंने clone() method का उपयोग करने की कोशिश की:
```java
public class Person implements Cloneable {
private String name;
private Address address;
// constructor, getters, setters
@Override
protected
```