2010-02-15 12 views
12

अरवा जावा में ऑब्जेक्ट्स के रूप में लागू किए गए हैं? यदि हां, तो मैं सरणी वर्ग के लिए स्रोत कोड कहां देख सकता हूं। मैं सोच रहा हूं कि सरणी में लंबाई चर को स्थिर के रूप में परिभाषित किया गया है और यदि ऐसा है तो कोड को और समझने योग्य बनाने के लिए यह सभी पूंजी अक्षरों में क्यों नहीं है।जावा में सरणी कैसे लागू की जाती हैं?

+4

के लिए अगर यह एक निरंतर था (एक स्थिर अंतिम क्षेत्र में के रूप में), सभी सरणियों एक ही आकार है करने के लिए होगा (या विभिन्न आकारों के सरणी के पास अलग-अलग प्रकार होंगे (जो आगे बताएंगे कि एक सरणी का आकार संकलन समय पर जाना होगा))। – sepp2k

+0

जो मैं यिशई के उत्तर से समझ रहा हूं उससे यह है कि सरणी गतिशील रूप से बनाई गई है जब इसे परिभाषित किया जाता है। – AFK

+0

sepp2k का मुद्दा यह है कि कोई भी वैश्विक लंबाई क्षेत्र नहीं है। आम तौर पर हम सार्वजनिक स्थिर और अंतिम के रूप में ऊपरी केस चर के बारे में सोचते हैं। यहां लंबाई सार्वजनिक और अंतिम है, लेकिन स्थैतिक नहीं है, और यह मूल्य प्रति ऑब्जेक्ट उदाहरण अलग है, हालांकि यह कभी नहीं बदलता है। – Yishai

उत्तर

13

हालांकि सरणी इस अर्थ में वस्तुएं हैं कि वे java.lang.Object का उत्तराधिकारी हैं, कक्षाएं भाषा की विशेष विशेषता के रूप में गतिशील रूप से बनाई गई हैं। वे स्रोत कोड में परिभाषित नहीं हैं।

इस सरणी पर विचार करें:

MySpecialCustomObject[] array; 

वहाँ उस के लिए कोई स्रोत कोड है। आपने इसे गतिशील रूप से कोड में बनाया है।

कारण कम लंबाई में है और एक क्षेत्र वास्तव में इस तथ्य के बारे में है कि बाद में जावा कोडिंग मानकों को विकसित किया गया था जब यह विकसित हुआ था। यदि आज एक सरणी विकसित की जा रही है, तो यह शायद एक विधि होगी: getLength()।

लंबाई वस्तु निर्माण पर परिभाषित एक अंतिम क्षेत्र है, यह स्थिर नहीं है, इसलिए कुछ कोडिंग मानकों को ऊपरी मामले में नहीं होना चाहिए। हालांकि जावा में सामान्य रूप से आज सब कुछ आम तौर पर ऊपरी मामले में निरंतर के रूप में किया जाता है या सार्वजनिक गेटर विधि के साथ निजी चिह्नित किया जाता है, भले ही यह अंतिम हो।

+0

एक सरणी कक्षा उत्पन्न करने के लिए सामान्य रूपरेखा क्या है? – AFK

+2

@ sn3twork, मूल रूप से सरणी में ऑब्जेक्ट की सभी विधियां हैं, साथ ही एक सार्वजनिक अंतिम लंबाई चर है और इसमें एक सार्वजनिक क्लोन विधि है, जो क्लोनेबल और सीरियलज़ेबल लागू करता है (लेकिन मुझे विरासत कारणों के लिए मानना ​​नहीं है)। विवरण जेएलएस में हैं: http://java.sun.com/docs/books/jls/second_edition/html/arrays.doc.html – Yishai

+0

लिंक के लिए धन्यवाद http://java.sun.com/docs/books/ jls/second_edition/html/arrays.doc.html # 11358 मैंने पाया कि यह सरणी प्रारंभकर्ताओं और सृजन अभिव्यक्तियों का उपयोग करके सरणी को परिभाषित करने के बारे में कहता है – AFK

-1

हम कह सकते हैं कि एक सरणी एक कंटेनर है जिसमें एकल डेटा प्रकार के डेटा की निश्चित लंबाई होती है। उदाहरण के लिए।

int[] MyArray = new int[101]; // allocates memory for 101 integers, Range from 0 to 100. 

और बहुआयामी

String[][] names = {{"FirstName", "LastName"},{"Kaji", "Islam"},...}; 

के लिए और चरित्र सरणी

char[] ch={'a','b'....}; 
संबंधित मुद्दे