मैं JLS 8 and in Chapter 6 पढ़ रहा हूँ लिखा है:सरल नाम और योग्य नाम
एक योग्य नाम एन एक्स एक पैकेज या संदर्भ प्रकार, जहां N एक साधारण या योग्य नाम है के एक सदस्य का उल्लेख किया जा सकता है और एक्स पहचानकर्ता है। यदि एन पैकेज को नाम देता है, तो एक्स उस पैकेज का सदस्य है, जो या तो कक्षा या इंटरफ़ेस प्रकार या उप-पैकेज है। यदि एन संदर्भ प्रकार या संदर्भ प्रकार का चर है, तो x उस प्रकार के सदस्य का नाम है, जो या तो कक्षा, एक इंटरफ़ेस, फ़ील्ड, या कोई विधि है।
तो मैं कल्पना कर सकता है कि इस होने:
class C
{
public int n;
}
int j;
C c = new C();
j = 11;
c.n = 11;
j
जबकि c.n
एक योग्य नाम है एक सरल नाम है।
हालांकि 6.2 चीजें जटिल हो जाती हैं। इस कोड को दिया जाता है:
class Test {
public static void main(String[] args) {
Class c = System.out.getClass();
System.out.println(c.toString().length() +
args[0].length() + args.length);
}
}
और बाद कहा गया है:
args.length में लंबाई की घटना एक नाम है, क्योंकि args.length एक योग्य नाम है (§6.5.6.2) और फ़ील्ड एक्सेस एक्सप्रेशन (§15.11) नहीं। एक फील्ड एक्सेस एक्सप्रेशन, साथ ही साथ एक विधि आमंत्रण अभिव्यक्ति, एक विधि संदर्भ अभिव्यक्ति, और एक योग्य वर्ग इंस्टेंस सृजन अभिव्यक्ति, नाम के बजाय पहचानकर्ता का उपयोग ब्याज के सदस्य को दर्शाती है। इस प्रकार, तर्कों की लंबाई [0]। लम्बाई() एक नाम नहीं है, बल्कि एक पहचानकर्ता में एक विधि आमंत्रण अभिव्यक्ति में दिखाई देता है।
तो मुझे लगता है मैं समझता हूँ कि नहीं सभी भाव योग्य नाम हैं और भी मेरी अभिव्यक्ति c.n
ईमानदारी से मैं नहीं समझ सकता भेद किसी को भी मेरी मदद कर सकते?
यदि आप कुछ लिंक जोड़ना चाहते हैं तो उस स्पेस के अनुभागों को पढ़ना आसान होगा, जिसका आप उल्लेख कर रहे हैं। –
क्या आप इसे समझने की कोशिश कर रहे हैं? मुझे गलत मत समझो, मैं सवाल खटखटा नहीं रहा हूं, मुझे इस तरह की चीज़ों को ढूंढने के लिए जेएलएस पढ़ना अच्छा लगता है, लेकिन मुझे कहना है, मैं भी भेद के साथ संघर्ष कर रहा हूं - और मुझे लगता है कि यह समझने में मदद कर सकता है spec की सामान्यता के बजाय हाथ में समस्या का विशिष्ट संदर्भ। –