कल्पना कीजिए कि मेरे पास यह वर्ग है:
public class Test
{
private String[] arr = new String[]{"1","2"};
public String[] getArr()
{
return arr;
}
}
अब, मेरे पास एक और वर्ग है जो उपरोक्त वर्ग का उपयोग करता है:
Test test = new Test();
test.getArr()[0] ="some value!"; //!!!
तो यह समस्या है: मैंने बाहर से एक वर्ग के निजी क्षेत्र तक पहुंच बनाई है! मेरे द्वारा इसे कैसे रोका जा सकता है? मेरा मतलब है कि मैं इस सरणी को कैसे अपरिवर्तनीय बना सकता हूं? क्या इसका मतलब यह है कि प्रत्येक गेट्टर विधि से आप निजी क्षेत्र तक पहुंचने के लिए अपना काम कर सकते हैं? (मुझे अमरूद जैसी कोई लाइब्रेरी नहीं चाहिए। मुझे बस इसे करने का सही तरीका पता होना चाहिए)।
final
करता है क्षेत्र के संशोधन को रोकने के । हालाँकि,Object
किसी फ़ील्ड द्वारा संदर्भित के संशोधन को रोकना अधिक जटिल है।