class variablesऔर instanceचर के बीच का अंतर , केवल एक सवाल है who knows what?।
उस ठोस उदाहरण के लिए instance variableकेवल एक ज्ञात (= बाध्य ) है - इसलिए नाम।
public class Person {
private String firstName;
private String lastName;
[...]
}
एक वर्ग की परिभाषा ठोस वस्तुओं के निर्माण के लिए एक खाका की तरह है । शायद यह बात आपको थोड़ा भ्रमित कर दे। लेकिन इसे इस तरह से लिखना, प्रत्येक चर अपनी ठोस वस्तु के लिए बाध्य होगा: जैसे कि प्रत्येक व्यक्ति का पहला नाम है
एक class variableदूसरे हाथ पर है - जैसा कि नाम से कहते हैं - प्रत्येक और एक वर्ग के हर सदस्य के लिए जाना जाता है; या तकनीकी रूप से: यह वर्ग स्तर पर ज्ञात / बाध्य है । विशिष्ट उदाहरण कितनी वस्तुओं का एक काउंटर है, आपने बनाया है - हालांकि यह एक बहुत ही समस्याग्रस्त उदाहरण है; लेकिन यह इस प्रारंभिक चरण में कोई फर्क नहीं पड़ता।
public class Person {
private String firstName;
private String lastName;
[...]
static int numberOfPersons = 0
}
numberOfPersonsघोषित किया जाता है staticजो कीवर्ड के बीच distingush है class variablesऔर instance variabes। चर को वर्ग परिभाषा के भीतर अन्य की तरह घोषित किया जाता है। लेकिन staticकीवर्ड संकेत देता है, कि यह अलग है।
firstName, lastNameकर रहे हैं उदाहरण चर और कहा कि ठोस उदाहरण के लिए बाध्य
numberOfPersons वर्ग के लिए बाध्य है, ताकि हर उदाहरण इस चर का उपयोग कर सके।
tl; डॉ
वह स्थान जहाँ चर को परिभाषित किया जाता है, वर्ग परिभाषा है।
वर्ग चर कक्षा स्तर पर / से बंधे हुए होते हैं, अर्थात प्रत्येक ठोस उदाहरण के पास इसकी पहुँच होती है। एक वर्ग चर को परिभाषित करने के लिए, आप कीवर्ड का उपयोग करते हैं static।
इंस्टेंस वेरिएबल्स को केवल एक इंस्टेंस लेवल पर जाना जाता है। आप उन्हें बिना staticकीवर्ड के परिभाषित करते हैं ।
जावा के लिए आगे प्रलेखन यहाँ है