Define Class in Java – Attributes and Behaviors

Define Class in Java: हमने Class तो बना ली और उदाहरणों द्वारा उसे Access करना भी सीख लिया, लेकिन ये Class अभी पूरी नहीं है। जिस तरह से हर Object की कुछ States या Situations होती हैं, जिनसे वह अन्‍य Objects से अलग पहचान प्राप्त करता है। इसके अलावा हर Object किसी ना किसी प्रकार का व्‍यवहार भी करता है। यानी हर Object में व्‍यवहार करने की भी कुछ (Abilities) क्षमताएं होती हैं।

जैसे एक पक्षी Class के Instances को देखें तो हर पक्षी के पास पंख होते हैं, हर पक्षी के चोंच होती है। ये दोनों Features तो ये बताते हैं कि कोई पक्षी किस तरह का दिखता (Appearance) है। इसके अलावा एक पक्षी कुछ काम भी कर सकता है। यानी वह दाना खा सकता है और उड भी सकता है।

यानी हर Object की अपनी कुछ स्थितियां (States) होती हैं और हर Object की अपनी कुछ क्षमताएं (Abilities) होती हैं। Object की उन क्षमताओं से Object की States में परिवर्तन होता है। किसी भी Object की स्थिति (State and Appearance) के मान में परिवर्तन हो सकता है।

यानी यदि कार का ही उदाहरण लें तो कोई Car Yellow Color की भी हो सकती है और किसी दूसरी Car का Color Blue भी हो सकता है। हम किसी Car के Color को Red Color से भी Paint कर सकते हैं और White Color से भी Paint कर सकते हैं।

यानी Real World में किसी भी Object की स्थिति में परिवर्तन किया जा सकता है। उसी प्रकार से Computer में भी किसी Object के Color State या Attribute का मान Change किया जा सकता है। यानी हम ये भी कह सकते हैं कि Real World में एक Object में उसके Attributes के मान को Change करने की क्षमता होती है।

एक Real World Object जिस Operation को Perform करके अपनी स्थिति या Appearance में परिवर्तन करता है, उस Operation को Operation का Behavior या Object की Ability कहते हैं। चलिए, एक और उदाहरण देखते हैं।

हम सभी ने देखा है कि बडे शहरों में कई-कई मंजिलों की इमारतें होती हैं इसलिए अक्सर उन मंजिलों पर पहुंचने के लिए Lift का प्रयोग किया जाता है। Lift को सामान्‍यतया Elevator कहते हैं। Elevator भी एक Real World Physical Object है, क्योंकि हम इसे देख और छू सकते हैं। यदि हम इसकी States व Appearance यानी Characteristics को Describe करें तो इस Elevator का निम्नानुसार Description दे सकते हैं:

  • एक Elevator किसी ना किसी मंजिल (Floor) पर :का हुआ या स्थित हो सकता है।
  • एक Elevator अधिकतम चार लोगों को वहन सकता है।
  • एक Elevator में कुछ Buttons होते हैं, जिनको Press करके विभिन्न Passengers किसी ना किसी Floor पर पहुंच सकते हैं।
  • एक Elevator में एक दरवाजा हो सकता है जो Open व Close होता है।

किसी Elevator में ये तीनों गुण हो सकते हैं जो उस Elevator की स्थिति व Appearance को Describe कर रहे हैं। लेकिन ये Elevator Passengers की इच्छानुसार कुछ Operations भी Perform कर सकता है, क्योंकि इन Operations को Perform करने की Ability भी एक Elevator Object में होती है। Elevator की इन Abilities को निम्नानुसार Describe किया जा सकता है:

  • एक Elevator किसी भी समय किसी ना किसी Floor पर स्थित होगा, इसलिए वह अपनी Current State में परिवर्तन करने के लिए अपनी मंजिल (Floor) से ऊपर की मंजिल (Floor) पर जा सकता है।
  • एक Elevator किसी भी समय किसी ना किसी Floor पर स्थित होगा, इसलिए वह अपनी Current State में परिवर्तन करने के लिए अपनी मंजिल (Floor) से नीचे की मंजिल (Floor) पर आ सकता है।
  • Passengers Elevator में प्रवेश कर सकें और Elevator से बाहर निकल सकें, इसके लिए एक Elevator का दरवाजा (Door) Open या Close हो सकता है।
  • जब कोई Passenger किसी मंजिल पर जाने के लिए उस मंजिल का कोई Number Press करता है, तब Elevator ये Calculate कर सकता है कि उसे किस जगह जाना है।
  • एक Elevator ये भी पता लगाता है कि उस Building के अन्‍य Elevators किस स्थिति (Floor) पर हैं।

इस Elevator Object की States या Characteristics व Object द्वारा उन Characteristics पर Perform किए जा सकने वाले Operations को हम निम्नानुसार Describe कर सकते हैं-

//Characteristics (Attributes or States)

  •         noOfCarrentFloor
  •         noOfPassengers
  •         listOfButtonsPushed

//Performable Operations (Behaviors or Abilities)

  •         GoDown
  •         GoUp
  •         OpenDoors
  •         CloseDoors
  •         GetOtherElevatorsInfo
  •         CalculateWhereToGoNext

इस उदाहरण से हम समझ सकते हैं कि एक Real World Physical Object में भी वास्तव में दो Components होते हैं। पहला Component Object की स्थिति बताता है और दूसरा Component Object की क्षमता बताता है। जब एक Real World Physical Object के भी दो Component होते हैं तो उस Object को Represent करने वाली Logical Class में भी इन दोनों Components का Description होना चाहिए, ताकि Computer का Logical Object Real World के Physical Object को पूरी तरह से Represent करे।

एक और उदाहरण लेते हैं, Real World के Class व Objects की परिभाषा के अनुसार दुनिया की हर चीज को उसकी Class बना कर, उस Class के Instance यानी Object के रूप में परिभाषित किया जा सकता हैं। इसी आधार पर आप भी एक Real World Physical Object हैं और किसी एक समय पर आप भी किसी ना किसी एक Class के Instance होते हैं।

उदाहरण के लिए मान लीजि, कि आप एक Student हैं और 10th कक्षा में पढते हैं इसलिए आप भी एक Student का उदाहरण (Instance) हैं क्योंकि आपको किसी कक्षा (Class) का एक विधार्थी (Object) कहा जा सकता है। आप जैसे ही कई और Students होंगे जो आपके साथ पढते होंगे। मानलो कि 10th Class में पढने वाले सभी Students को मुख्‍य रूप से 6 Subjects पढने होते हैं। सभी Students को सभी प्रकार के Exams देने होते हैं। सभी Students समान समय पर Class में जाते हैं और एक समय में सभी Students समान Subject पढते हैं।

जब एक कक्षा के सभी Students उस कक्षा में जो भी काम करते हैं, वे सभी काम सभी को एक साथ करने होते है तो इस आधार पर हम ये कह सकते हैं कि आप सभी Student एक ही कक्षा (Class) के विधार्थी (Objects) हैं, क्योंकि आप सभी एक ही कक्षा की सभी स्थितियों (States) का एक साथ वहन करते हैं। सभी Students को एक समूह के रूप में देखा जाए तो सभी Students Objects का एक ऐसा समूह (Entity Set) है, जो कई समान Features को Share करते हैं। चूंकि आप 10th कक्षा के सभी नियमों (Descriptions) का पालन करते हैं, इसलिए आप 10th कक्षा (Class) के Students (Objects) हैं।

इस उदाहरण में हमने देखा कि एक Student उसकी कक्षा का एक विधार्थी होता है। ये Description वास्तव में कक्षा का Description है और कक्षा के Description के आधार पर बनी Class का Instance विधार्थी होता है। कक्षा के Description को प्रदिर्शत करने वाले Attributes (Instance Variable) के मान को Change किया जाए, तो Student का पूरा समूह Change हो जाता है, ना कि केवल एक Student Change होता है।

यानी यदि 10th कक्षा की Description Change करके 11th कक्षा की Description को ले लिया जाए, तो उस कक्षा के सभी विधार्थी बदल जाते हैं, क्योंकि वास्तव में पूरी कक्षा ही बदल जाती है। लेकिन यदि हम चाहते हैं कि हम Particular किसी विधार्थी की Description बनाएं तो हमें कक्षा की Class बनाने के बजाय Student की Class बनानी होगी।

जब किसी Student के Class की Description तय करनी होती है या एक Student को Represent करने वाला Modal (Class) Create करना होता है, तब हमारा मुख्‍य Object Student होता है। इसलिए हमें केवल Student के Attributes व States का ही पता लगाना होता है। अब यदि देखा जाए किस एक Student के समूह (Entity Set) की ऐसी कौनसी Characteristics होती हैं, जो उसे दुनियां के सभी Objects से अलग बनाते हैं, तो हम एक Student की निम्न Attributes या States प्राप्त कर सकते हैं:

  • Student Entity Set के हर Entity का एक Serial Number होता है।
  • Student Entity Set के हर Entity का एक नाम होता है।
  • Student Entity Set के हर Entity के पिता का नाम होता है।
  • Student Entity Set के हर Entity का एक Address होता है।
  • Student Entity Set के हर Entity की एक City होती है।
  • Student Entity Set के हर Entity की एक District होती है।
  • Student Entity Set के हर Entity का एक State होता है।
  • Student Entity Set के हर Entity के City का एक Pin Code Number होता है।
  • Student Entity Set के हर Entity की कोई जाति होती है।
  • Student Entity Set के हर Entity का कोई रंग होता है।
  • Student Entity Set के हर Entity की कोई कक्षा होती है।
  • Student Entity Set के हर Entity के कद की एक लम्बाई होती है। आदि

इसी तरह से हम एक Student की कई और Attributes व States का पता लगा सकते हैं। चलिए, Real World में हम देखते हैं कि हर Object अपना काम खुद करता है। मानलो कि आप एक Student हैं। क्या आपको भूख लगने पर आपका खाना कोई और खा सकता है। क्या आपको प्यास लगने पर आपके लिए कोई और पानी पी सकता है।

क्या ऐसा होता है कि School जाते समय आपकी Uniform कोई और पहने और School आप चले जाएं। क्या ऐसा होता है कि आपके बदले कोई और आपका Exam Fight करे और मिलने वाला Certificate आपके नाम का हो और आप को प्राप्त हो जाए। नहीं! Real World में ऐसा नहीं होता।

इसीलिए Computer में भी यदि ऐसा होता है, तो उस Programming Language को Object Oriented नहीं कहा जा सकता। Java में भी ऐसा नहीं होता है। किसी Class के Description के आधार पर जो Object Create किया जाता है, उस हर Object का अपना स्वयं का Attribute या States को Represent करने वाला स्वतंत्र Variable होता है, जिसमें केवल उसी Object के Attributes या States के मान होते हैं।

चलिए, अब Object के Behavior या Ability पर थोडा और विचार करते हैं। हम सभी इन्सान हैं। हमारी एक Physical आकृति, रंग, रूप, लम्बाई आदि है, इसलिए हम सभी Human Being Class के Instances या Objects हैं। यदि हम एक Human Being Class का Description देना चाहें, तो निम्न Description दे सकते हैं-

  • हर Human Being का एक नाम होता है।
  • हर Human Being Object के पास उसका स्वयं का दिमाग होता है।
  • हर Human Being के दो हाथ होते हैं।
  • हर Human Being के दो पैर होते हैं।
  • हर Human Being के एक सिर होता है।
  • हर Human Being के सिर पर बाल होते हैं।
  • हर Human Being कान होते हैं
  • हर Human Being के दो आंखें होती हैं।
  • हर Human Being के चेहरे पर एक मुंह होता है।
  • हर Human Being के दोनों हाथों में पांच अंगुलियां होती हैं। आदि

इन सभी States व Attributes के अलावा एक Human Being में कुछ Abilities भी होती हैं। कुछ  Abilities को निम्नानुसार Describe किया जा सकता है-

  • हर Human Being अपना नाम Change कर सकता है।
  • हर Human Being Object अपने दिमाग से सोंचता है और निर्णय लेता है।
  • हर Human Being अपने हाथों का प्रयोग करके किसी प्रकार का इशारा कर सकता है।
  • हर Human Being अपने पैरों से चल सकता है।
  • हर Human Being भाग सकता है।
  • हर Human Being अपने सिर पर टोपी रख सकता है।
  • हर Human Being अपने सिर पर पगडी बांध सकता है।
  • हर Human Being अपने सिर के बिखरे हुए बालों को कं?ो से संवार सकता है।
  • हर Human Being अपने बाल कटवा सकता है।
  • हर Human Being अपने बाल बडे कर सकता है।
  • हर Human Being अपने कानों से सुन सकता है।
  • हर Human Being अपनी आंखों से देख सकता है।
  • हर Human Being अपनी आंखों को बन्द करके सो सकता है।
  • हर Human Being अपनी आंखों से इशारे कर सकता है।
  • हर Human Being अपने मुंह से बोल सकता है।
  • हर Human Being अपने मुंह से खाना खा सकता है।
  • हर Human Being अपने हाथों की अंगुलियों में कोई चीज पकड सकता है।
  • हर Human Being अपने हाथों की अंगुलियों से कोई चीज फेंक सकता है।

यहां हमने कुछ ऐसे काम बताए जो सभी Human Being Class के Instances यानी इन्सान Objects कर सकते हैं। ऐसे और भी हजारों उदाहरण दिए जा सकते हैं। क्या आपको Human Being Object के StatesBehavior में किसी प्रकार का कोई सम्बंध पता चला\

हर Object के Attributes व Objects के Operations में एक सम्बंध होता है और सम्बंध बस यही है कि एक Object कुछ Operations Perform करके अपने ही किसी Attribute की State को Change करता है।

हम इस Human Being उदाहरण को ही लें, तो हर Human Being Object के बाल होते हैं और हर Human Being Object किसी प्रकार का Operation Perform करके अपने बालों की स्थिति में परिवर्तन कर सकता है। बालों की स्थिति में परिवर्तन करना Object की एक Ability है।

इसी तरह से हर Human Being Object के पैर होते हैं। ये पैर Human Being Object का Attribute है। इस Attribute की State को Change करने के लिए Object उस पर चलने का Operation Perform कर सकता है। Object के चलने से Object के पैर की स्थिति (State) में परिवर्तन होता है।

हर Human Being Object के पास अपना मुंह होता है जो कि Human Being Object का एक Attribute है। यदि Human Being खाना खाता है, तो उसका मुंह चलता है यानी मुंह की स्थिति (State) में परिवर्तन होता है।

यानी यदि हम सारांश में कहें तो कह सकते हैं कि हर Object में किसी भी प्रकार का Operation Perform करके अपने स्वयं के Attributes की स्थिति (States) में परिवर्तन करने की क्षमता (Ability) होती है।

एक Object केवल स्वयं ही अपने Attributes की स्थिति (State) में परिवर्तन करने के लिए, किसी प्रकार का Operation Perform कर सकता है। यानी किसी Object A का कोई Operation किसी Object B के किसी Attributes की स्थिति (States) में परिवर्तन नहीं कर सकता है। एक Object A के विभिन्न Attributes की States को Change करने का अधिकार केवल उसी Object A के पास ही होता है।

इस बात को यदि Human Being के उदाहरण से समझें तो कोई Human Being Object स्वयं ही ये निर्णय कर सकता है कि उसे उसके किसी Attribute की स्थिति में परिवर्तन करने के लिए कोई Operation Perform करना है या नहीं।

यानी किसी Human Being को अपने बाल कटवाने हैं या नहीं, इस बात का निर्णय केवल वह Human Being ही ले सकता है। ऐसा नहीं हो सकता कि उस Human Being के बदले कोई दूसरा Human Being ये निर्णय करे और बिना उसकी Permission लिए उसके बाल काट दे।

यानी एक ही Class के विभिन्न Objects भी एक दूसरे पर बिना Permission लिए किसी भी प्रकार का Operation Perform करके किसी दूसरे Object के Attributes की स्थिति में परिवर्तन नहीं कर सकते हैं। इस पूरे Discussion का यदि सारांश निकालें तो हम निम्न सारांश प्राप्त कर सकते हैं:

  • दुनिया के हर Object को उसके समूह के आधार पर एक Class के रूप में Describe किया जा सकता है।
  • एक बार किसी एक Object के आधार पर Class की Description बना लेने के बाद, उस Class के जितने चाहें उतने Instances Create कर सकते हैं। इन Instances को ही Object कहा जाता है।
  • हर Object के दो Components Attributes की States व Object की Ability होते हैं, जिनके आधार पर उस Object की Class का Description तैयार किया जाता है।
  • किसी Objects के Attributes की States व उन Attributes की States में Object द्वारा किए जाने वाले परिवर्तनों की Description, इन दोनों को एक साथ मिलाकर एक Entity के रूप में Use करना Encapsulation कहलाता है। इस Entity को ही Object कहते हैं और Encapsulation की ये प्रक्रिया Class पर Perform की जाती है।
  • एक Object के Attributes की स्थिति (State) के मान (Data) में केवल वह Object ही किसी Operation द्वारा परिवर्तन कर सकता है, अन्‍य किसी भी Object को ये अधिकार नहीं होता है, कि वह किसी दूसरे Object के Attributes की State में अपने किसी Operation द्वारा परिवर्तन करें। इस स्थिति में किसी Object के Data को केवल वह स्वयं ही Access कर सकता है। यानी एक Object का Data केवल उसी Object के लिए उपलब्ध रहता है, दूसरे Objects कि लिए वह Data Hide रहता है। इसलिए Data के इस प्रकार से किसी Object के अन्दर छुपे हुए रहने के तरीके (Structure) को Data Hiding कहते हैं।

चलिए, अब Student की Class की Description को पूरा करते हैं। चूंकि हमें Student के सभी Attributes पता हैं जिनकी जरूरत School के Principal को है। लेकिन एक School में तो कई Students होंगे। साथ ही School में नए Students का Admission भी होता होगा और किसी पुराने Student को School से Transfer भी किया जाता होगा या निकाला जाता होगा।

कई बार Student की Information को Update भी करना पडता होगा। जैसे मानलो कि Student के पिता ने अपना घर बदल लिया है, तो Computer में Student के Address को भी Change करना होगा। School में तो कई Students होते हैं, इसलिए किसी विशेष Student को खोजना भी होगा ताकि School के Principal को किसी Student की जानकारी प्राप्त करने के लिए सभी Students के Records को ना Check करना पडे।

इसी तरह से यदि सभी Students के Records को एक क्रम में Store किया जाए, तो Students के Records को Manage करना सरल होगा। इस तरह से हम किसी Student के Records को Manage करने के लिए निम्नानुसार Operations की Description तैयार कर सकते हैं:

//Ability Description (Operation Description)

  •         addNewStudent
  •         removeStudent
  •         updateStudent
  •         searchStudent
  •         sortStudent

Computer में किसी Object के विभिन्न Logical Operations को जो कि एक Object अपने Attributes के States को Change करने के लिए Perform करता है, उन सभी Operations को Methods से Represent किया जाता है।

Methods के बारे में हम आगे चर्चा करेंगे, लेकिन यदि Student Class के Operations को यदि Methods के रूप में लिखना हो, तो हम Java में Methods को निम्नानुसार Describe करते हैं:

//Ability Description (Operation Description)
	Access_Specifier Return_Data_Type addNewStudent(Arguments)
	{
		//Code Statements ;
	}

	Access_Specifier Return_Data_Type removeStudent(Arguments)
	{
		//Code Statements ;
	}

	Access_Specifier Return_Data_Type updateStudent(Arguments)
	{
		//Code Statements ;
	}

	Access_Specifier Return_Data_Type searchStudent(Arguments)
	{
		//Code Statements ;
	}

	Access_Specifier Return_Data_Type sortStudent(Arguments)
	{
		//Code Statements ;
	}

यदि हम Student Class की पूरी Description Java Syntax के अनुसार लिखना चाहें, तो ये Class Description निम्नानुसार होगा:

Student Class Defining 
class Student
{
	//Attributes Description 

        String studentName;
        String studentFName;
        String studentAddress;
        String studentCity;
        String studentTehsil;
        String studentDistrict;
        String studentState;
        byte studentClass;
        long studentContactNumber;
        long studentDateOfBirth;
        long studentDateOfAdmission;
        byte studentAge;
        String studentSerialNumber;
        String studentCast;

	//Ability Description (Operation Description)
	Access_Specifier Return_Data_Type addNewStudent(Arguments)
	{
		//Code Statements ;
	}

	Access_Specifier Return_Data_Type removeStudent(Arguments)
	{
		//Code Statements ;
	}

	Access_Specifier Return_Data_Type updateStudent(Arguments)
	{
		//Code Statements ;
	}

	Access_Specifier Return_Data_Type searchStudent(Arguments)
	{
		//Code Statements ;
	}

	Access_Specifier Return_Data_Type sortStudent(Arguments)
	{
		//Code Statements ;
	}
}

अब हमारी Student Class पूरी तरह से तैयार है। हमें केवल इसके Operations को Define करना है। Operations को Define करने के बाद इस Class के Objects Create किए जा सकते हैं और उनके साथ Interaction किया जा सकता है।

यदि हमें इस Class के Objects Create करने हों, तो हम उसी प्रकार के Syntax का प्रयोग करते हैं, जिस प्रकार के Syntax का प्रयोग करके हम कोई Integer प्रकार का Variable Create करते हैं। हम ऐसा इसलिए कर सकते हैं, क्योंकि Class के रूप में हम एक नए प्रकार का Data Type ही Develop करते हैं।

यदि सरल शब्दों में कहें तो हमने यहां एक Student प्रकार का Data Type Create किया है और हम इस Data Type के कई Variables Create कर सकते हैं, जिन्हें Class का Instance या Object कहते हैं।

उदाहरण के लिए यदि हम किसी Student के Roll Number को Store करने के लिए एक Integer Data Type का Roll Number नाम का Variable Create करना चाहें, तो हम ये Variable निम्नानुसार Statement द्वारा Create कर सकते हैं:

int rollNumber;

और यदि हम Student Data Type (Class) का Rahul Sharma नाम का एक Variable (Object) Create करना चाहें तो निम्नानुसार कर सकते है:

Student rahulSharma;

चूंकि Primary Data Types Java के Compiler में Built–In होते हैं, इसलिए जब हम किसी Standard या Primary Data Type का Variable Create करते हैं, तो Compiler स्वयं ही उस Variable के Data Type की Size के हिसाब से उस Variable के लिए Memory Allocate कर देता है।

लेकिन जब हम किसी User Defined Data Type यानी किसी Class का Object Create करते हैं, तो उसे Use करने से पहले हमें उसे Memory Allocate करनी पडती है। किसी Object को Memory Allocate करने के लिए Java के new Operator का प्रयोग किया जाता है।

उदाहरण के लिए यदि हम Rahul Sharma को Computer में Use व Access करना चाहें तो सबसे पहले तो हमें Rahul Sharma को Student Class के एक Object के रूप में Declare करना होगा और उसके बाद Rahul Sharma को Memory Allocate करनी होगी। उसके बाद ही हम Rahul Sharma को Computer में Access कर सकते हैं। ये दोनों काम हम निम्नानुसार करते हैं:

Student rahulSharma;
rahulSharma = new Student();

किसी Class के Object के Data को Manage करने के लिए उस Class के Object को Object के Data पर विभिन्न प्रकार के Operations Perform करने पडते हैं। इन Operations को Java में Methods कहा जाता है। Methods Statements का एक ऐसा समूह होता है, जो उसके Object के Data में परिवर्तन करने का अधिकार रखता है। इन्हें अन्‍य Procedural Languages में Function कहा जाता है।

किसी Class में Define किया गया Method, उस Class के Object के Data को Access करने का काम करता है। दूसरे शब्दों में कहें तो किसी Class के Object के Data को Access करने के लिए उसी Class के किसी Method को Call करना पडता है। वह Call किया गया Method ही एक मात्र ऐसा साधन होता है, जो एक User को ये सुविधा देता है कि वह Object के Data को Access कर सके। यदि User किसी Object के किसी Data को Access करना चाहता है, तो उसे उस Method को Call करना पडता है, जिसे उस Object की Class में Define किया गया है।

उदाहरण के लिए यदि एक School का Principal किसी Student के Record को Update करना चाहता है, तो उसे उसी Student Class के updateStudent Method को Call करना होगा, क्योंकि केवल वह updateStudent Method ही उस Student Object के Data को Access कर सकता है।

यानी किसी Object के Methods द्वारा ही उस Object के Data के साथ User Interact कर सकता है। इसलिए इन Methods को Interfaces भी कहते हैं, क्योंकि ये ही वे माध्‍यम होते हैं जिनके द्वारा एक User किसी Object के Data के साथ Interact कर पाता है।

किसी Object के Attributes के मान में परिवर्तन करने (नया मान Insert करने या मान को Update करने या फिर मान को Read करने) यानी Object के Data पर किसी प्रकार का Operation Perform करने के लिए उस Object के Class के किसी Method (Appropriate Operation) को Call किया जाता है। इन Methods को Call करने के Java में मुख्‍यत: चार तरीके हैं:

  • Method with Argument and Return Value
  • Method with Argument but No Return Value
  • Method with No Argument and No Return Value
  • Method with No Argument but Return Value

Argument को सामान्‍यतया Parameters भी कहते हैं। Arguments वे मान होते हैं, जो Program का User किसी तरीके से किसी Object के किसी Attribute Field को प्रदान करना चाहता है। इन मानों पर Method के अन्दर आवश्‍यकतानुसार किसी भी प्रकार का Operation Perform किया जा सकता है।

दाहरण के लिए User Arguments के रूप में 2 Input करे, और Program की Requirements के अनुसार Method उस मान का Square ज्ञात करे, तो उस मान को Object के Data के रूप में Store किया जा सकता है। यानी Operation की Requirement के अनुसार इन Arguments पर Operation Perform हो सकते हैं और इन Arguments के मानों मे परिवर्तन भी आ सकता है। तीनों प्रकार के Methods को समझने के लिए हम सबसे पहले एक Camera Class बनाते हैं। मानलो की हमारी Camera Class निम्नानुसार है-

Class Camera
{
  //Instance Variables Representing State and Appearance of Camera

  //Operations to be performed on Instance Variable’s Values
}

एक Camera की कुछ मुख्‍य Characteristics निम्नानुसार हो सकती हैं-

  • हर Camera के Modal का कोई नाम होता है।
  • हर Camera कुछ Photos खींचता है।
  • हर Camera की कुछ कीमत होती है।
  • हर Camera की Reel में 36 Photos के लिए Negatives होते हैं।

और इन Characteristics की States व Appearance के मान को Change करने के लिए हम इन पर निम्नानुसार Operations Perform कर सकते हैं-

  • हर Camera का Photo खींचने के लिए एक Button Click हो सकता है।
  • कुल खींची गई Photographs की Counting कर सकता है।
  • Camera के Shutter की Speed Change हो सकती है।

Camera की Properties को हम आसानी से Class में Place कर सकते हैं। ऐसा करने पर Class निम्नानुसार बन जाएगी:

Class Camera
{
    //Instance Variables Representing State and Appearance of Camera
	String modelName;
	int noOfPhotosTaken;
	int noOfTotalNegativesToBeTakenPhoto;
	float priceOfCamera;

    //Operations to be performed on Instance Variable’s Values
}

अब हमें ये देखना है कि जब किसी Camera के Click Button को Press किया जाता है, तब क्या होता है। हम समझ सकते हैं कि जब भी Click Button को Press किया जाता है, तब Camera एक Photo खींचता है। यानी noOfPhotosTaken नाम के Object के Instance Variable का मान एक बढ जाता है जबकि कुल Negatives की संख्‍या एक कम हो जाती है।

यहां किसी प्रकार का कोई ऐसा मान Generate नहंी हो रहा है, जिसे इसी Class या किसी अन्‍य Class में Use किया जाए, इस लिए हम कह सकते हैं, कि ये Method कोई मान return नहीं करेगा। साथ ही User केवल Click Button को Press करता है, इसके अलावा कुछ भी नहीं करता है, इसलिए इस Method में Argument के रूप में भी कोई मान User प्रदान नहीं कर रहा है।

मानलो हम इस Method का नाम pressClickButton रखना चाहते हैं। इस स्थिति में चूंकि इस Method का Return Value भी कुछ नहीं है और Argument भी कुछ नहीं है, इसलिए हम इसे निम्नानुसार Define करना चाहते है।

void pressClickButton(void)
{
	//Increments the Number of Photographs Taken
	noOfPhotos = noOfPhotos + 1;
}

जब भी User Click Button को Press करता है, उस Camera Object के कुल Photos की संख्‍या एक बढ जाती है। खींची गई Photos की संख्‍या केवल एक ही इसलिए बढती है, क्योंकि एक बार Click Button को Press करने पर कोई भी Camera केवल एक ही Photo खींचता है। हम चाहें तो Arguments के कोष्‍ठक को Empty भी रख सकते हैं। इसका भी यही मतलब होता है कि User किसी प्रकार का कोई Argument इस Method को Pass नहीं कर रहा है।

Java Programming Language in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Java in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

Java Programming Language in Hindi | Page: 682 | Format: PDF

BUY NOW GET DEMO REVIEWS