Java में public, protected, package-private (default) और private के बीच अंतर
सभी को नमस्कार! मैंने अभी Java सीखना शुरू किया है और एक्सेस मॉडिफायर को समझ नहीं पा रहा हूँ। सिद्धांत पढ़ लिया, लेकिन व्यवहार में हमेशा भ्रम होता है कि `public` कब लिखूं और `private` कब।
उदाहरण के लिए, मेरे पास यह कोड है:
```java
public class Animal {
public String name = "Unknown";
protected int age = 5;
String breed = "Mixed"; // package-private
private String id = "A123";
public void showInfo() {
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("Breed: " + breed);
System.out.println("ID: " + id);
}
}
```
उसी पैकेज में दूसरे क्लास में मैं `name`, `age` और `breed` तक पहुँच सकता हूँ, लेकिन `id` तक नहीं। और अगर मैं दूसरे पैकेज में एक subclass बनाता हूँ, तो केवल `name` और `age` का उपयोग कर सकता हूँ। ऐसा क्यों? और "package-private" का क्या मतलब है? वास्तविक प्रोजेक्ट्स में कब कौन सा मॉडिफायर उपयोग करें?
कृपया सरल शब्दों में उदाहरणों के साथ समझाएँ। पहले से धन्यवाद।