हेलो दोस्तों आज के इस ब्लॉग पोस्ट(Inner Class In Java In Hindi) में मैं आपको java के अंतर्गत inner Class के बारे में जानकारी देने वाला हूँ |
जैसे कि inner Class(What Is Inner Class In Java In Hindi) के नाम से ही क्लियर हो जाता है कि यह एक inner Class है जो कि किसी outer Class के अंदर declare की जाती है |
inner Class एक ऐसा security mechanism है जिससे कि हम किसी क्लास को पूरी तरह से protect कर सकते है | पर हम ऐसा कैसे कर सकते है ?|Inner Class In Java In Hindi|
दोस्तों जब भी हम ऐसा चाहते है कि कोई भी क्लास के Instance variable को Class के बाहर access न कर पाए|
तब हम उस variable को private declare कर देते है |
और इससे अब इस variable को Class के बाहर कोई भी access नहीं कर सकता है |Inner Class In Java In Hindi|
पर जब हम यही process किसी Class के साथ करते है|
मतलब कि उस क्लास को हम private declare कर देते है|
तब उस Class का object किसी भी क्लास में create नहीं कर सकते है |Inner Class In Java In Hindi|
पर यहाँ पर एक problem हो जाती है कि जब भी हम किसी क्लास को private declare कर देते है|
तो फिर यह Class JVM अथवा java compiler के लिए उपलब्ध नहीं होती है |
और फिर यह एक illegal activity हो जाती है |
इसलिए किसी भी Class को security प्रोवाइड करने के लिए हमें दूसरा concept देखना पड़ता है और वह होता है inner Class का कांसेप्ट|
अगर हम inner Class को प्राइवेट कर दे तो फिर हम इस क्लास का ऑब्जेक्ट आउटर क्लास में क्रिएट कर सकते है |
और inner Class को प्राइवेट करना allowed भी है |
इसलिए हम इस तरह से किसी भी सेंसिटिव क्लास अथवा डाटा को एक अच्छी सिक्योरिटी प्रोवाइड करवा सकते है |
चलिए अगर आपको अभी भी यह inner Class का कांसेप्ट अच्छी तरह से समझ नहीं आया है|
तो फिर हम आपको एक example कि मदद से इसका कांसेप्ट clear करते है |
suppose कीजिये हम एक BankAcct क्लास को क्रिएट करते है|
और इसमें balance और rate of Interest को हम Instance variable के तौर पर declare करते है |
class BankAcct
{
//Balance and rate of interest
Private double bal;
private double rate;
//calculate interest and update balance
void calculateinterest()
{
double interest = bal*rate/100;
bal += interest;
system.out.println("Balance="+bal);
}
}
और इसमें Interest कैलकुलेट करने के लिए एक calculateinterrest () मेथड बनाते है|
और बाद में इसे balance में add करते है | इसका कोड आप नीचे देख सकते है
जैसे कि आप ऊपर लिखे कोड में देख सकते है कि यहाँ पर इस कोड में कोई भी सिक्योरिटी कोड नहीं है |
यहाँ पर हमने न तो क्लास को private declare किया है | इसलिए यहाँ पर default स्पेसिफिएर माना जायेगा |
और default specifier के होने से कोई भी बाहर कि क्लास इस Class का ऑब्जेक्ट क्रिएट कर सकती है|
और इस Class के members को access कर सकती है |
जैसे कि नीचे दिए हुए प्रोग्राम में एक यूजर इस क्लास का ऑब्जेक्ट क्रिएट करता है और इस क्लास के मेथड को एक्सेस करता है |
यहाँ पर हम देख सकते है कि प्रोग्रामर ने BankAcct Class का ऑब्जेक्ट क्रिएट करके calculateinterest मेथड को एक्सेस कर लिए है|
और अब यह बैंक के बैलेंस amount को आसानी से अपडेट कर सकता है |
class Myclass
{
public static void main(String args[])
{
BankAcct account = new BankAcct(10000);
account.calculateinterest(9.5);
}
}
पर यह बहुत ही sensitive डाटा है और इसकी अथॉरिटी केवल कुछ खास लोगो के पास ही होनी चाहिए जो इसे एक्सेस कर पाए|
इसलिए हम इस method को एक नयी क्लास Interest के अंदर रखते है|
और फिर इस क्लास को inner Class बनाते है और इस कॉल्स को BankAcct क्लास के अंदर रखते है ” |
और अब हम इस क्लास को private डिक्लेअर कर सकते है |
Private class Interest
{
Private Double rate;
Void calculate interest()
{
double interest = bal*rate/100;
bal += interest;
system.out.println("balance="+bal);
}
}
अब Class को केवल कुछ खास लोग अथवा authorize लोग ही एक्सेस कर सकते है और वो भी कुछ authentication के बाद|
और अब इस inner Class का object आउटर क्लास में क्रिएट कर सकते है|
और फिर इस क्लास के मेथड calcualteinterest को कॉल कर सकते है |
इस inner Class को access करने के लिए हम outer क्लास में एक मेथड क्रिएट करते है contact ()|
और अब इसी मेथड कि मदद से हम पहले तो उसे यूजर को ऑथेंटिकेट करेंगे और इसके बाद inner Class का ऑब्जेक्ट क्रिएट होगा |
और फिर बाद में यूजर इनर क्लास के मेथड को एक्सेस कर पायेगा|
//In this method, inner class object is created after validation.
//The authenticity of the user. r is the rate of interest.
Void contact(double r) throws IOException
{
//access the password from keyboard and verify
Bufferreader br = New Bufferreader(New Inputstreamreader(system.in));
system.out.print('Enter password :');
String passwd = br.readLine();
if(passwd.equals("xyz123"))
{
// if password is correct then calculate interest
interest in = New interest(r);
}
else{
system.out.println("Sorry, you are not a authorized person");
}
}
इस तरह यह पूरे कोड को हम एक कर दे तो यहाँ पर एक पूरा प्रोग्राम क्रिएट हो जाता है जिसे आप नीचे देख सकते है |
इस प्रोग्राम में हमने inner Class को बनाया है और उसे secure किया है|
जिससे कि हम उसमे लिखे हुए sensitive method अथवा data को secure कर सके|
यहाँ पर जो outer Class है वो एक firewall की तरह काम करती है और inner Class को सेफ रखती है |
जब कोई यूजर successfully authenticate हो जाता है तभी inner Class का ऑब्जेक्ट क्रिएट होता है|
और फिर वह यूजर inner Class में लिखे method को access कर पता है |
//Let us make a program to create the outer class BankAcct and the inner class Interest in it:
//Inner calss example
//this is outer class
import java.io.*;
class BankAcct
{
//balance amount is the variable
private double balance bal;
//initialize the balance
BankAcct(double b)
{
bal = b;
}
//in this method, inner class object is created after verifying
//the authentication of the user, r is the rate of interest.
//this method accept the rate of interest rate
void contact(double r) throws IOException
{
//accept the password from the keyboard and verifying
Bufferreader br = New Bufferreader(New Inputstreamreader(system.in));
system.out.print('Enter password :');
String passwd = br.readLine();
if(passwd.equals("xyz123"))
{
// if password is correct then calculate interest
interest in = New interest(r);
}
else{
system.out.println("Sorry, you are not a authorized person");
}
}
//inner class
private class Interest
{
//rate of interest
private double rate;
//initialize the rate
Interest(double r)
{
rate = r;
}
//calculate interest amount and update the balance
void calculate interest()
{
double interest = bal*rate/100;
bal += interest;
system.out.println("updated balance = "+bal);
}
}
}
//using inner class
Class innerClass
{
public static void main(string args[]) throws IOException
{
//bank account holding a balance of 10000;
BankAcct account = New BankAcct(10000);
//update balance amount by adding interest at 9.5%
account.contact(9.5);
}
}
Output:
C:\> javac Innerclass.java
C:\> java Innerclass
Enter password xyz123
updated balance = 10950.0
You can also go through a few more blog links below related to core Java:
Stack vs Heap Memory Allocation In Hindi…
Inner Class In Java In Hindi…
Instance Variable vs Class Variable In Hindi…
Difference Between Instance Variable And Static Variable In Java…
Inner Class With Suitable Example In Java…
Difference Between PHP and JAVA In Hindi…
Why Java Is A Secure Language In Hindi…
Relational operator in Hindi in Java…
Logical operator in Hindi in Java…
Assignment Operator in Hindi in Java…
Unary operator in Java example in Hindi…
Arithmetic operators in Java in Hindi…
Operators In Java In Hindi…
Types Of Inheritance In Hindi…
Garbage Collection In Java In Hindi…
Interface In Java In Hindi|java में Interface क्या होता है…
Access Specifier In Java In Hindi…
Explain Types Of Jdbc Drivers In Detail…
Super Keyword In Java In Hindi…
Static Keyword in Java in Hindi…
Conclusion:
तो दोस्तों इस ब्लॉग पोस्ट(Inner Class In Java In Hindi) में हमने inner Class के बारे में पढ़ा और जाना | inner Class वह क्लास होती है जिसे हम एक आउटर क्लास के अंदर declare करते है| inner Class का main purpose होता है Class को सिक्योरिटी प्रोवाइड करवाना | inner Class को हम प्राइवेट declare कर सकते है | और inner Class का object हम outer क्लास में क्रिएट कर सकते है | जब भी हमें कोई sensitive डाटा अथवा method जैसे कि बैंक और अकाउंट से रिलेटेड कोई प्रोग्राम बनाना होता है तो फिर हम inner Class का use करते है |
इस ब्लॉग(Inner Class In Java In Hindi) को लेकर आपके मन में कोई भी प्रश्न है तो आप हमें इस पते support@a5theory.comपर ईमेल लिख सकते है|
आशा करता हूँ, कि आपने इस पोस्ट(Inner Class In Java In Hindi) को खूब एन्जॉय किया होगा|
आप स्वतंत्रता पूर्वक अपना बहुमूल्य फीडबैक और कमेंट यहाँ पर दे सकते है|Inner Class In Java In Hindi|
आपका समय शुभ हो|