Last Updated on February 28, 2021 by RAJENDRAPRASAD
Variables in Java in Hindi – Hello दोस्तों rajhindime.in में आपका स्वागत है |
दोस्तों, पिछले पोस्ट – Non-Primitive Data Types in Java in Hindi में आपने Non-Primitive Data Types तथा उसके विभिन्न types के बारे में विस्तृत जानकारी प्राप्त की | आज के इस पोस्ट Variables in Java in Hindi में – आप Variables के बारे में विस्तार से जानेंगे |
Variables क्या है?
हमनें Data Types in Java in Hindi इस post में यह जाना कि Variable और कुछ नहीं बल्कि reserved memory locations के name होते हैं, जिनका उपयोग values को store करने के लिए किया जाता है | इसका अर्थ यह है कि, जब भी हम कोई variable declare करते हैं ,तो हम memory में values को store करने के लिए कुछ जगह (space) आरक्षित (reserve) करते हैं |
यह एक संदूक/पेटी (container) की तरह कार्य करता है, जो data value को hold करने के लिए उपयोग में लाया जाता है | Variable जिस data value को hold करता है, उस value को program के execution के दौरान, जरुरत के हिसाब से change किया जा सकता है |
Java Language में हर variable का एक Data type जरूर होता है | Data type के आधार पर ही JVM, memory allocate करता है और यह decide करता है कि इस reserved memory में क्या store करना है |
Java में सभी variables को उनके use करने से पहले declare करना जरुरी (mandatory) है |
Variables को कैसे declare करें ?
DataType_Name variable_Name;
Example:
int age;
boolean b;
यहाँ int तथा boolean दोनों ही datatypes हैं, age तथा b दोनों ही variable के नाम हैं |
Variables को कैसे initialize करें ?
variable_Name = variableValue_AsPerDataType;
Example:
age = 50;
b = false;
यहाँ age तथा b दोनों ही variable के नाम हैं, 50 तथा false दोनों ही variables के values हैं |
हम variables का declaration तथा initialization दोनों एक साथ, एक ही लाइन में कर सकते हैं |
DataType_Name variable_Name = variableValue_AsPerDataType;
Example:
int age = 50;
boolean b = false;
एक से अधिक (multiple) Variables को एक साथ कैसे declare करें ?
Comma (,) का उपयोग करके हम एक साथ कई variables को एक साथ declare कर सकते हैं|
Example:
int age, num, count;
int age = 500, num = 20;
boolean b = false, t = true;
Types of Variables in Java
Variables को हम दो प्रकार से बाँट सकते हैं |
- Type of value representation के आधार पर
- Position of declaration और behavior के आधार पर
Type of value representation के आधार पर, variables दो प्रकार के होते हैं |
A. Primitive variables: ऐसे variables जो primitive values को represent करते हैं | जैसे,
int age = 50;
B. Reference variables: ऐसे variables जो reference values अर्थात किसी object को refer करते हैं | जैसे,
Student s = new Student();
Reference variables के बारे में अधिक जानने के लिए यहाँ click करें |
Position of declaration और behavior के आधार पर, variables तीन प्रकार के होते हैं |
- Instance Variables
- Static Variables
- Local Variables
आइए अब इन तीनों के बारे में विस्तार से जानें |
Instance Variables:
1. यदि किसी variable की value एक object से दूसरे object में change होती रहती है तो उस variable को Instance Variable कहते हैं |
2. Program execution के दौरान हर object के लिए, instance variable की एक separate copy बनती अर्थात create होती है | उदाहरण के लिए,
Student एक Class है, जिसमे name और id दो instance variables हैं | यहाँ हर object अर्थात हर एक student के name और id अलग-अलग होंगे |
Class Student{
String name;
int id;
.
.
.
.
{
3. Instance variable, multiple threads द्वारा एक साथ access किये जा सकते हैं तथा जरुरत के अनुसार modified भी किये जा सकते हैं अतः ये thread safe नहीं होते | Threads के बारे में हम आने वाले post में विस्तार से जानेंगे | संक्षिप्त जानकारी के लिए Java in Hindi इस post को पढ़ सकते हैं |
4. Instance variables को हमेशा directly Class के अंदर, परन्तु किसी भी methods अथवा blocks अथवा constructors के बाहर ही declare करना चाहिए |
5. Instance variables हमेशा object creation के दौरान ही create होता है तथा object destruction के साथ ही समाप्त (destroy) हो जाता है अतः Instance variables का scope exactly object के scope के समान ही होता है |
6. Objects का part होने के कारण, Instance variables हमेशा heap memory में store होता है |
7. हम Instance variables को किसी भी static area से directly access नहीं कर सकते परन्तु, object reference के द्वारा इसे access किया जा सकता है | इसे किसी भी instance area से direct access किया जा सकता है |
public class Student {
int age = 50;
String name = "Raj";
public static void main(String[] args) {
// System.out.println(age); //compile time error: non-static variable age cannot be referenced from static context
Student s1 = new Student();
System.out.println(s1.age);
System.out.println(s1.name);
}
public void method_m1() {
System.out.println(age); //No error
}
}
8. JVM हमेशा Instance variables के लिए default value assign करता है अतः हमें इसे explicitly initialize करने के जरुरत नहीं होती |
public class Student {
int age;
String name;
float weight;
public static void main(String[] args) {
Student s1 = new Student();
System.out.println(s1.age); //0
System.out.println(s1.name); //null
System.out.println(s1.weight); //0.0
}
}
Static Variables:
1. यदि किसी variable की value एक object से दूसरे object में change नहीं होती तब उस variable को Instance Variable की तरह declare नहीं करना चाहिए | उस variable को static modifier का उपयोग करके Class level पर declare करना चाहिए |
2. Instance variable के case में हर object के लिए, एक separate copy बनती अर्थात create होती है परन्तु, static variable के case में ऐसा नहीं होता | इसमें class level पर एक single copy create होती है, जिसे उस class के सारे objects मिलकर share करते हैं | उदाहरण के लिए,
Student एक Class है, जिसमे name और id दो instance variables तथा schoolName एक static variable है | यहाँ हर object अर्थात हर एक student के लिए schoolName एक ही अर्थात same होगा |
3. Static variable, multiple threads द्वारा एक साथ access किये जा सकते हैं तथा जरुरत के अनुसार modified भी किये जा सकते हैं अतः ये thread safe नहीं होते | Threads के बारे में हम आने वाले post में विस्तार से जानेंगे | संक्षिप्त जानकारी के लिए Java in Hindi इस post को पढ़ सकते हैं |
4. static variables को भी हमेशा directly Class के अंदर, परन्तु किसी भी methods अथवा blocks अथवा constructors के बाहर ही declare करना चाहिए |
5. यह हमेशा class loading के दौरान ही create होता है तथा class unloading के साथ ही समाप्त (destroy) हो जाता है अतः static variables का scope exactly .class के scope के समान ही होता है |
6. यह हमेशा method area में ही store होता है | (oracle docs के अनुसार method area यह heap memory में ही एक छोटा सा विशेष (specific) हिस्सा (part) है )
7. Static variables को object reference अथवा class name का उपयोग करके access किया जा सकता है, परन्तु, एक good programmer को इसे class name द्वारा की call करना चाहिए |
public class Student {
static int age = 50;
static String name = "Raj";
static float weight = (float) 45.5;
public static void main(String[] args) {
Student s1 = new Student();
System.out.println(s1.age); //called using object name
System.out.println(Student.name); //called using Class name directly
System.out.println(Student.weight); //called using Class name directly
}
}
8. अगर same class में इसे use करना हो तो, इसके लिए class name की भी जरुरत नहीं पड़ती, हम इसे directly call कर सकते हैं |
9. Same class के अन्दर, हम static variable को instance और static area दोनों में directly call कर सकते हैं |
public class Student {
static int age = 50;
static String name = "Raj";
static float weight = (float) 45.5;
public static void main(String[] args) {
System.out.println(age); //called directly in static area(method)
System.out.println(name); //called directly in static area(method)
System.out.println(weight); //called directly in static area(method)
}
public void method_m1() {
System.out.println(age); //called directly in non-static area(method)
System.out.println(weight); //called directly in non-static area(method)
}
}
10. JVM हमेशा static variables के लिए default value assign करता है अतः हमें इसे explicitly initialize करने के जरुरत नहीं होती |
11. इसे Class level variable तथा Fields भी कहते हैं |
Local variables:
1. कभी कभी temporary requirements को पूरा करने के लिए ,हम variables को methods अथवा blocks अथवा constructors के भीतर declare करते हैं, ऐसे variables को local variables कहते हैं | इन्हे temporary variables, stack variables तथा automatic variables जैसे नामों से भी जाना जाता है |
2. Local variables, Stack memory में store होते हैं |
3. ऐसे variables हमेशा उस block के execution के समय ही create होते हैं, जिस block में इन्हे declare किया गया होता है | जैसे ही उस block का execution complete हो जाता है, local variables destroy हो जाते हैं | अतः इस variable का scope, इसके block के अंदर ही सीमित होता है, जिस block में ये declared होते हैं | उदाहरण के लिए, यदि कोई method m1() है, जिसे हम किसी program में 10 बार call करते हैं, इस case में हर एक call के दौरान local variable बार- बार create और destroy होगा |
4. Multiple Threads के case में, प्रत्येक threads के लिए local variables की एक separate copy create होती है, जिससे एक copy में किया गया modification दूसरे copy को प्रभावित (affect) नहीं करता, अतः ये thread safe होते हैं |
5. Local variables के लिए JVM कभी-भी, default value assign नहीं करता है अतः हमें इसे उपयोग करने से पहले explicitly initialize करना पड़ता है | इसका अर्थ यह है कि, अगर हम इसे use नहीं कर रहे हैं, तो इसे initialize करना जरुरी नहीं है |
6. Local variables को किसी भी logical blocks (जैसे if, while) के अंदर initialize नहीं करना चाहिए, क्योकि logical blocks के execution के guarantee नहीं होती | logical blocks के बारे में हम आने वाले post में विस्तार से जानेंगे |
7. एक अच्छी programming के लिए local variables को हमेशा, उसे declare करने के दौरान ही at least उसके default value से initialize करना ही चाहिए |
8. इसके लिए केवल final modifier ही applicable है, यदि हम गलती से भी किसी अन्य modifier को apply करते है तो हमें compile time error “illegal start of expression” प्राप्त होगा | modifier के बारे में हम आने वाले post में विस्तार से जानेंगे |
Variables को define करने के कुछ नियम
1) Java में केवल a-z, A-Z, 0-9, $ (dollar) तथा _ (underscore) का ही उपयोग करके variable को define कर सकते हैं, इसके अलावा किसी भी अन्य character अथवा symbol का प्रयोग करने पर compile time error प्राप्त होगा | उदहारण के लिए,
Total_number, total$, $_$_$_$, ca$h यह valid variables है, जबकि total#, total+, total-, ca#h यह invalid variables है |
2) Variables के बीच में खाली जगह अर्थात space नहीं होना चाहिए | उदहारण के लिए,
My_book, my$book, myBook, RajHindiMe, Raj_Hindi_Me यह सभी valid variable Name है, जबकि my book यह invalid variable name है, क्योकि यहाँ my तथा book के बीच में space है |
3) Variables कभी भी digit अर्थात number से शुरू नहीं हो सकते | यह हमेशा letter या $ या फिर _ से ही start होने चाहिए | उदहारण के लिए,
total123, $total, total123number, _number, total$num यह valid variables है, जबकि 123total, 123nubmer, यह invalid variables है |
4) Variable, case sensitive होते हैं ,क्योकि जावा खुद एक case sensitive programming language है |
यहाँ number, Number, NUMBER तीनों को अलग-अलग differentiate किया जा सकता है |
5) Reserve words को Variables के रूप में use नहीं कर सकते | उदहारण के लिए,
int x=10 valid है, जबकि int for = 10 invalid है |
6) Java में variables कि कोई length limit नहीं होती, परन्तु बहुत lengthy variables से बचना चाहिए, क्योकि इससे code की readability कम ही जाती है |
7) सभी predefined class तथा interface को variable के रूप में use किया जा सकता है | उदहारण के लिए,
int String=777 तथा int Runnable=555 दोनों ही valid है |
यद्यपि predefined class तथा interface का use करना valid है, फिर भी अच्छी programming practice के लिए इनका use नहीं करना चहिए. क्योकि इससे code की readability कम तो होती ही है, साथ ही साथ confusion भी create होता है |
8) Instance तथा static variable की value constant अथवा fixed होने की स्थिति में उसे declaration के दौरान ही final keyword का use करके initialize करना चाहिए | एक अच्छा programmer, constant को हमेशा Capital letter में लिखता है | उदहारण के लिए,
final double PI = 3.14159;
Conclusion – आज आपने क्या सीखा
इस post में आपने Variables in Java तथा उसके विभिन्न types के बारे में विस्तृत जानकारी प्राप्त की | आशा है कि, आपको मेरा यह Blog Variables in Java in Hindi जरूर पसंद आया होगा |
अगर आप इस post से related कोई सवाल पूँछना चाहते हैं अथवा कोई सुझाव देना चाहते हैं तो comment करके जरूर बताएं, मैं उसका reply जरूर दूँगा |
इस post को अपना कीमती समय देने के लिए बहुत बहुत धन्यवाद् | फिर मिलेंगें |
Excellent article! We will be linking to this great article on our site. Keep up the good writing.
Thank You!
Im thankful for the article. Much thanks again. Keep writing.
Thank You!
Hum variable ko kisme likhate hai
Method ke ander or
Class ke andar
Mayur, hum variable to dono jagah likh sakte hain | method ke andar jo bhi variable likhte hain, wah local variable hota hai aur Class ke andar hum instance aur static variable to likhte hain |