Oops Concepts In C# Interview Questions in Hindi

Oops interview questions in Hindi

Q. 1) Oops क्या है?

Answer: Oops पूरा नाम Object Oriented Programming System है | Oops एक methodology या model या फिर एक paradigm है | इस paradigm बुनियाद objects पे होती है |

Oops concept से पहले procedural programming का concept था जहां program का मुख्य बुनियाद procedures या methods पे दिया जाता था और data के वजाए logic से organized होता था |

पर Oops का concept object के ऊपर based है |

Q. 2) Object oriented programming और procedural progrmming में क्या फर्क है?

Answer:

Procedural Programming

  • Procedural Programming में procedures या methods के ऊपर organized होता है | इसमें programming priority, procedures और logic पे जाती है |
  • इस programming में programs को functions के हिसाब से बाटां जाता है |
  • Procedural Programming में कोई access specifier का उपयोग नहीं होता है |

  • इस programming में नया data और function डालना मुस्किल होता है |
  • Procedural Programming में data hide करना मुशकिल होता है | इसी वजह से ये programming उतना secure नहीं होती है |
  • इसमें overloading possible नहीं है |
  • इसमें data के compare में function को priority दी जाती है |
  • इसमें code reusability नहीं होती है |
  • C, Cobol, Pascal आदि सब procedural programming के उदाहरण है |

Object Oriented Programming

  • पर object oriented programming, objects के ऊपर organized होता है |

  • इसमें programs को objects के हिसाब से बाटां जाता है |
  • Oops programming में कई प्रकार के access specifier का उपयोग होता है जैसे की private, public, protected |
  • इस programming में नया data और function डालना आसान होता है |
  • Oops programming में abstraction feature के वजह से data hide हो पाता है | इसीलिए ये programming secure है |
  • इसमें overloading possible है |
  • इसमें function के compare में data को priority दी जाती है |
  • इसमें code reusability होती है |
  • C++, Java, Python, .net आदि oops concept से बनी program है |

Q. 3) Oops के features क्या हैं?

Answer: Oops के features है :

  • Oops का मुख्य feature है data security | ये data और functions को एक unit में bind कर देता है | और data को access करने के लिए कुछ special functions लिखी जाती है |
  • Oops concept के जरिए लिखी program ज्यादा clear और organized होता है |
  • इससे लिखी code आसानी से औए fast execute करता है |
  • इसका मुख्य feature है code reusability जिससे एक जैसी code को दुबारा लिखनी नहीं पड़ती है | जहाँ एक जैसी code की जरुरत होती है, वहां inheritance या overloading के जरिए access की जा सकती है |

Q. 4) Class और Object क्या है?

Answer: Class एक user-defined type है जो data members और member functions को hold करता है | Class एक blue-print की तरह काम करता है |

Class को consume करने के object बनाया जाता है | Oops programming की बुनियाद object है | Object एक real time entity को represent करता है |

Q. 5) Oops programming के क्या principles क्या हैं?

Answer: Oops programming के 4 principles हैं और वो है

  1. Encapsulation
  2. Abstraction
  3. Inheritance
  4. Polymorphism

c# oops interview questions in hindi

Q. 1) Access Specifier क्या होता है और Oops में access specifier का क्या role है ?

Answer: Access Specifiers से class और इसके members की scope को define की जाती है | ये बताता है किसी type या इसके members को कोन access कर सकता है और कोन नहीं |

Oops में 5 प्रकार के access specifiers होतें हैं और वो है 1) private, 2) public, 3) Protected, 4) Internal, 5) Protected Internal

  1. private – जब किसी members को private define किया जाता है तो उस members को सिर्फ उसी class में access की जा सकती है |
  2. public – जब किसी members को public define किया जाता है तो उस members को हम किसी भी class में access की जा सकती है |
  3. protected – जब किसी members को protected define किया जाता है तो उस members को उसके child class में access की जा सकती है |
  4. internal – इस access specifier के जरिये एक class के member variables और member functions, एक ही assembly के दुसरे class objects के जरिये access हो सकतें हैं |
  5. protected internal – इस access specifier के जरिये किसी class की variables और functions एक ही assembly के दुसरे class objects से access हो सकतें हैं और साथ साथ ही किसी भी child class के जरिये access हो सकतें हैं |

Q. 2) Inheritance क्या है और कितने प्रकार का होता है?

Answer: किसी class members जब हम दुसरे class में consume करते हैं और दोनों वो भी दोनों classes में parent-child relationship बनाकर, उस principle को inheritance कहा जाता है |

class जिसकी members को consume किया जाता है उसे parent class कही जाती है और class जो दुसरे class के members को consume करता है उसे child class कही जाती है |

C# में 5 तरह के inheritance होतें हैं : 1) Single Inheritance, 2) Multilevel Inheritance, 3) Hierarchical Inheritance, 4) Multiple Inheritance, 5) Hybrid Inheritance.

Q. 3) .net में multiple inheritance कैसे की जाती है?

Answer: .net में class के जरिए multiple inheritance possible नहीं है | पर interface के जरिए multiple inheritance की जा सकती है |

Q. 4) Polymorphism क्या है?

Answer: Polymorphism दो शब्दों से बना है : पहला है poly; poly का अर्थ है many यानि अनेक | दूसरा शब्द है morphism जिसका अर्थ है अवस्था (forms) | Polymorphism को generally समझा जाये तो अनेक अवस्था | एक चीज जो अलग स्तिथि में अलग अलग रूप लेता है |

programmin language इसे समझे तो एक नाम और करे कई काम | जैसे कोई एक method है जो अलग अलग parameters लेता है और अलग अलग result देता है |

उदाहरण के लिए add() method | अगर इसमें दो integer parameters दी जाए तो ये integer value add करके return करेगा |

और अगर इसमें दो decimal parameters दी जाए तो ये decimal value add करके return करेगा |

तो नाम एक ही है add() पर काम अलग अलग करता है |

Q. 5) Polymorphism कितने प्रकार के होतें हैं?

Answer: C# में दो प्रकार के polymorphism होतें हैं : 1) compile-time polymorphism, 2) run-time polymorphism

compile-time polymorphism को method overloading के जरिये achieve की जाती है | इसे static binding या early binding भी कही जाती है |

run-time polymorphism को method overriding के जरिये achieve की जाती है | इसे dynamic binding या late binding भी कही जाती है |

static binding में compile time में कोनसा method पहले run होगा वो बताया है |

late binding में run time में कोनसा method पहले run होगा वो बताया जाता है |

Q. 6) Constructor क्या होता है?

Answer: Constructor एक खास तरह का method होता है जिसे class के members को initialize करने के लिए define की जाती है |

Constructor भी उसी नाम से define की जाती है जिस नाम से Class को define की जाती है | किसी भी class को execute होने के लिए constructor की जरुरत होती है |

पर Constructor कभी कोई value return नहीं करता है |

Q. 7) .net में static और non-static members में क्या फर्क है ?

Answer:

Non-Static Members

  • Class members जो object के जरिये initialize और execute होतें हैं उन्हें non-static members या instance members कही जाती है |
  • जब Class का object बनता है तब non-static members initialize होता है |
  • जितनी ही बार object बनेगा उतने ही बार Non-static members initialize होता है |
  • non-static members को access करने के लिए object का उपयोग होता है |
  • instance members तब बनानी चाहिए जब उस members का scope सिर्फ किसी खास object तक रखनी है |

Static Members

  • Class members जिसे initialize या execute होने के लिए object की जरुरत नहीं पड़ती है उसे static members कही जाती है |
  • जैसे ही class का execution सुरु होता है तभी static members initialize होता है |
  • पर static members बस एक ही बार initialize होता है |
  • static members को access करने के लिए class name का उपयोग होता है |
  • static members तब बनानी चाहिए जब उसका scope पूरी तरह class को देनी हो | यानि members की value पूरी class में common रखनी हो तो उसे static बनाया जाता है |

Q. 8) C# में Boxing और Unboxing क्या होता है?

Answer: जब value-type value को reference-type में convert किया जाता है, उसे Boxing कहा जाता है | और इसके उलट reference-type values को value-type में convert किया जाये तो उसे Un-Boxing कहा जाता है |

उदाहरण:

int x = 100;
Object obj = x; //Boxing

int y = (int)obj; //Unboxing

Q. 9) Static Class क्या है?

Answer: Static Class सिर्फ static members को allow करता है |

Q. 10) Method Overloading क्या होता है?

Answer: Method Overloading एक process है जो एक class में एक ही नाम के method को एक से अधिक बार declare करता है | method का नाम same होता है, पर number of parameters, parameter types और order of parameters के जरिए methods में फर्क आता है |

उदाहरण:

public int add(int a);
public int add(int a, int b);
public int add(float x, float y);

Q. 11) Method Overriding क्या होता है ?

Answer: Method Overriding के जरिये parent class का method को same name और same signature के साथ child class में दुबारा define किया जाता है |

Q. 12) virtual और override keyword का क्या उपयोग है ?

Answer: virtual, override keywords का उपयोग method overriding के समय होता है |

जब parent class का कोई method, same name और same signature से उसके child class में define करना हो तब parent class में उस method को virtual keyword के जरिये पहले define किया जाता है |

उसके बाद उसी method को override keyword के जरिये child class में फिर से लिखी जाती है |

उदाहरण:

class loadParent
{
  public virtual void test(int x)
   { 
      console.writeline("parent method);
    }
}

class loadChild : loadParent
{
  public override void test(int x)
   { 
      console.writeline("child method);
    }
}

Q. 13) Sealed Class क्या है?

Answer: Sealed Class को sealed keyword के जरिये define किया जाता है | अगर किसी class को inheritance से रोकना है तो उसे sealed class बना दिया जाता है |

Q. 14) Sealed Method क्या होता है?

Answer: sealed methods कभी भी child class में override नहीं हो पाते हैं | C# में हर method का default scope sealed ही होता है |

Q. 15) Interface क्या होता ?

Answer: Interface एक user defined type है और इसमें सभी members सिर्फ और सिर्फ abstracts members होतें हैं |

Q. 16) Encapsulation vs Abstraction क्या है?

Answer: Class members और member functions को bind करके एक unit बनाने के process को Encapsulation कहा जाता है |

End developer को उसकी minimum requirement देना बिना class के अन्य members बताये यानि class complexity को hide करके user की requirement पूरी करने की process को Abstraction कही जाती है |

Q. 17) Private Constructor क्या होता है? Private Constructor का उपयोग क्या है?

Answer: अगर किसी class को किसी दुसरे class या interface के जरिये accessible नहीं होने देना है तब उस class के constructor को private करना पड़ता है |

private constructor के जरिये एक class किसी दुसरे class objects call नहीं हो पाएगा और नाहीं inherit हो पायेगा |

Singleton design pettern को support करने के लिए private constructor इस्तेमाल होता है | अगर किसी class के सारे members static है तो उन members को access करने के लिए single instance बनाने की जरुरत होती है | बार बार object create करने की जरुरत नहीं होती | तो ऐसे में उस class के constructor को private बना दिया जाता है |

कुछ classes जैसे की utility classes, helper classes जो पुरे project में जरुरत होती है उन्हीं classes को single instance से call किया जाता है और उसके constructor को private कर दिया जाता है |

Q. 18) Static Constructor क्या होता है ?

Answer: Static Constructor static members को initialize करने के लिए उपयोग होता है | एक class सिर्फ एक ही static constructor लिखी जा सकती है |

Q. 19) Dispose और Finalize method में क्या अंतर है?

Answer: Dispose और Finalize दोनों methods unused, unmanaged resources को clean करने के लिए उपयोग होतें हैं और memory को free करते हैं |

दोनों में अंतर यह है की Dispose method को user explicitly call करता है | और Finalize method को garbage collector implicitly call करता है |

Dispose method, IDisposable inteface का part है | और Finalize method, Object class का part है |

Q. 20) ref और out parameter में क्या अंतर है?

Answer: C# में ref और out keywords का इस्तेमाल किसी method या function में reference के जरिए parameters pass करने के लिए होता है |

refout
ref keyword से define parameter को initialize करना जरुरी होता है |out keyword से define parameter को initialize करना जरुरी नहीं होता है |
ref parameter में data bi-directional pass होता है |out parameter में data unidirectional pass होता है |
called method ref keyword से define parameter को initialize करना जरुरी है |called method out keyword से define parameter को initialize करना जरुरी नहीं है |

अन्य सुझाव