ઓબ્જેક્ટ ઓરિએન્ટેડ પ્રોગ્રામિંગ વિથ જાવા (4341602) - વિન્ટર 2024 સોલ્યુશન
ઓબ્જેક્ટ ઓરિએન્ટેડ પ્રોગ્રામિંગ વિથ જાવા (4341602) વિન્ટર 2024 પરીક્ષા માટે સોલ્યુશન ગાઇડ
પ્રશ્ન 1(અ) [3 ગુણ]
OOP અને POP વચ્ચેનો તફાવત લખો.
જવાબ:
| પાસાં | OOP | POP |
|---|---|---|
| અભિગમ | બોટમ-અપ અભિગમ | ટોપ-ડાઉન અભિગમ |
| ફોકસ | ઓબ્જેક્ટ અને ક્લાસ | ફંક્શન અને પ્રોસીજર |
| ડેટા સિક્યોરિટી | એન્કેપ્સુલેશન દ્વારા ડેટા હાઇડિંગ | ડેટા હાઇડિંગ નથી |
| પ્રોબ્લેમ સોલ્વિંગ | સમસ્યાને ઓબ્જેક્ટમાં વિભાજિત કરો | સમસ્યાને ફંક્શનમાં વિભાજિત કરો |
મેમરી ટ્રીક: "ઓબ્જેક્ટ બોટમ, પ્રોસીજર ટોપ"
પ્રશ્ન 1(બ) [4 ગુણ]
બાઇટ કોડ શું છે? JVM ને વિગતવાર સમજાવો.
જવાબ:
બાઇટ કોડ: Java compiler દ્વારા સોર્સ કોડમાંથી જનરેટ થતો પ્લેટફોર્મ-ઇન્ડિપેન્ડન્ટ ઇન્ટરમીડિયેટ કોડ.
JVM કોમ્પોનન્ટ્સ:
- Class Loader: .class ફાઇલોને મેમરીમાં લોડ કરે છે
- Memory Area: Heap, stack, method area સ્ટોરેજ
- Execution Engine: બાઇટકોડને ઇન્ટરપ્રેટ અને એક્ઝિક્યુટ કરે છે
- Garbage Collector: ઓટોમેટિક મેમરી મેનેજમેન્ટ
મેમરી ટ્રીક: "બાઇટ કોડ દરેક જગ્યાએ ચાલે છે"
પ્રશ્ન 1(ક) [7 ગુણ]
એરેના એલિમેન્ટ્સને ચડતા ક્રમમાં સૉર્ટ કરવા માટે જાવામાં પ્રોગ્રામ લખો
જવાબ:
Java
મુખ્ય મુદ્દાઓ:
- Bubble Sort: બાજુના એલિમેન્ટ્સની તુલના કરે છે
- Time Complexity: O(n²)
- Space Complexity: O(1)
મેમરી ટ્રીક: "બબલ અપ ધ સ્મોલેસ્ટ"
પ્રશ્ન 1(ક OR) [7 ગુણ]
કમાન્ડ લાઇન આર્ગ્યુમેન્ટ્સનો ઉપયોગ કરીને કોઈપણ દસ સંખ્યાઓમાંથી મહત્તમ શોધવા માટે જાવામાં પ્રોગ્રામ લખો.
જવાબ:
Java
મુખ્ય મુદ્દાઓ:
- Command Line: args[] array આર્ગ્યુમેન્ટ્સ સ્ટોર કરે છે
- parseInt(): સ્ટ્રિંગને ઇન્ટિજરમાં કન્વર્ટ કરે છે
- Validation: Array length ચેક કરો
મેમરી ટ્રીક: "આર્ગ્યુમેન્ટ્સ મેક્સિમમ સર્ચ"
પ્રશ્ન 2(અ) [3 ગુણ]
Wrapper ક્લાસ શું છે? ઉદાહરણ સાથે સમજાવો.
જવાબ:
Wrapper Class: પ્રિમિટિવ ડેટા ટાઇપ્સને ઓબ્જેક્ટમાં કન્વર્ટ કરે છે.
| Primitive | Wrapper Class |
|---|---|
| int | Integer |
| char | Character |
| boolean | Boolean |
| double | Double |
Java
મેમરી ટ્રીક: "પ્રિમિટિવ્સને ઓબ્જેક્ટમાં લપેટો"
પ્રશ્ન 2(બ) [4 ગુણ]
જાવાના વિવિધ લક્ષણોની યાદી આપો. કોઈપણ બે સમજાવો.
જવાબ:
Java Features:
- Simple: સરળ syntax, pointers નથી
- Platform Independent: એકવાર લખો, દરેક જગ્યાએ ચલાવો
- Object Oriented: ઓબ્જેક્ટ અને ક્લાસ પર આધારિત
- Secure: explicit pointers નથી, bytecode verification
વિગતવાર સમજૂતી:
- Platform Independence: Java bytecode JVM વાળા કોઈપણ પ્લેટફોર્મ પર ચાલે છે
- Object Oriented: inheritance, encapsulation, polymorphism, abstraction સપોર્ટ કરે છે
મેમરી ટ્રીક: "સિમ્પલ પ્લેટફોર્મ ઓબ્જેક્ટ સિક્યોરિટી"
પ્રશ્ન 2(ક) [7 ગુણ]
ઓવરરાઇડિંગ પદ્ધતિ શું છે? ઉદાહરણ સાથે સમજાવો.
જવાબ:
Method Overriding: ચાઇલ્ડ ક્લાસ પેરન્ટ ક્લાસની મેથડનું વિશિષ્ટ implementation પ્રદાન કરે છે.
Java
મુખ્ય મુદ્દાઓ:
- Runtime Polymorphism: ઓબ્જેક્ટ ટાઇપના આધારે મેથડ કોલ થાય છે
- @Override: મેથડ ઓવરરાઇડિંગ માટે annotation
- Dynamic Binding: રનટાઇમ પર મેથડ રિઝોલ્યુશન
મેમરી ટ્રીક: "ચાઇલ્ડ પેરન્ટ મેથડ બદલે છે"
પ્રશ્ન 2(અ OR) [3 ગુણ]
જાવામાં Garbage collection સમજાવો.
જવાબ:
Garbage Collection: ઓટોમેટિક મેમરી મેનેજમેન્ટ જે અનુપયોગી ઓબ્જેક્ટ્સને દૂર કરે છે.
મુખ્ય મુદ્દાઓ:
- Automatic: મેન્યુઅલ મેમરી deallocation નથી
- Mark and Sweep: અનુપયોગી ઓબ્જેક્ટ્સને ઓળખે અને દૂર કરે છે
- Heap Memory: heap memory area પર કામ કરે છે
મેમરી ટ્રીક: "ઓટો ક્લીન અનયુઝ્ડ ઓબ્જેક્ટ્સ"
પ્રશ્ન 2(બ OR) [4 ગુણ]
static કીવર્ડ ઉદાહરણ સાથે સમજાવો.
જવાબ:
Static Keyword: ઇન્સ્ટન્સને બદલે ક્લાસનું છે.
Java
Static Features:
- Memory: ક્લાસ લોડિંગ ટાઇમે લોડ થાય છે
- Access: ઓબ્જેક્ટ વિના એક્સેસ કરી શકાય છે
- Sharing: બધા instances વચ્ચે શેર થાય છે
મેમરી ટ્રીક: "ક્લાસ લેવલ મેમરી શેરિંગ"
પ્રશ્ન 2(ક OR) [7 ગુણ]
કન્સ્ટ્રક્ટર શું છે? કોપી કન્સ્ટ્રક્ટરને ઉદાહરણ સાથે સમજાવો.
જવાબ:
Constructor: ઓબ્જેક્ટ્સને initialize કરવા માટેની વિશેષ મેથડ.
Java
Constructor Types:
- Default: કોઈ પેરામીટર નથી
- Parameterized: પેરામીટર લે છે
- Copy: અસ્તિત્વમાં રહેલા ઓબ્જેક્ટમાંથી ઓબ્જેક્ટ બનાવે છે
મેમરી ટ્રીક: "ડિફોલ્ટ પેરામીટર કોપી"
પ્રશ્ન 3(અ) [3 ગુણ]
super કીવર્ડ ઉદાહરણ સાથે સમજાવો.
જવાબ:
Super Keyword: પેરન્ટ ક્લાસના સભ્યોનો સંદર્ભ આપે છે.
Java
Super Uses:
- Variables: પેરન્ટ ક્લાસના variables એક્સેસ કરો
- Methods: પેરન્ટ ક્લાસની methods કૉલ કરો
- Constructor: પેરન્ટ ક્લાસના constructor કૉલ કરો
મેમરી ટ્રીક: "સુપર પેરન્ટને કૉલ કરે છે"
પ્રશ્ન 3(બ) [4 ગુણ]
inheritance ના વિવિધ પ્રકારોની યાદી આપો. multilevel inheritance સમજાવો.
જવાબ:
Inheritance Types:
| Type | વર્ણન |
|---|---|
| Single | એક પેરન્ટ, એક ચાઇલ્ડ |
| Multilevel | inheritance ની ચેઇન |
| Hierarchical | એક પેરન્ટ, બહુવિધ ચિલ્ડ્રન |
| Multiple | બહુવિધ પેરન્ટ્સ (interfaces દ્વારા) |
Multilevel Inheritance:
Java
મેમરી ટ્રીક: "સિંગલ મલ્ટી હાયરાર્કિકલ મલ્ટિપલ"
પ્રશ્ન 3(ક) [7 ગુણ]
ઇન્ટરફેસ શું છે? ઉદાહરણ સાથે multiple inheritance સમજાવો.
જવાબ:
Interface: કોન્ટ્રાક્ટ જે ક્લાસે શું કરવું જોઈએ તે વ્યાખ્યાયિત કરે છે, કેવી રીતે નહીં.
Java
Interface Features:
- Multiple Inheritance: ક્લાસ બહુવિધ interfaces implement કરી શકે છે
- Abstract Methods: બધી methods ડિફોલ્ટ રૂપે abstract છે
- Constants: બધા variables public, static, final છે
મેમરી ટ્રીક: "મલ્ટિપલ એબ્સ્ટ્રાક્ટ કોન્સ્ટન્ટ્સ"
પ્રશ્ન 3(અ OR) [3 ગુણ]
final કીવર્ડ ઉદાહરણ સાથે સમજાવો.
જવાબ:
Final Keyword: modification, inheritance, અથવા overriding પ્રતિબંધિત કરે છે.
Java
Final Uses:
- Class: extend કરી શકાતું નથી
- Method: override કરી શકાતું નથી
- Variable: reassign કરી શકાતું નથી
મેમરી ટ્રીક: "ફાઇનલ ફેરફાર અટકાવે છે"
પ્રશ્ન 3(બ OR) [4 ગુણ]
જાવામાં વિવિધ એક્સેસ કંટ્રોલ સમજાવો.
જવાબ:
Access Modifiers:
| Modifier | સેમ ક્લાસ | સેમ પેકેજ | સબક્લાસ | ડિફરન્ટ પેકેજ |
|---|---|---|---|---|
| public | ✓ | ✓ | ✓ | ✓ |
| protected | ✓ | ✓ | ✓ | ✗ |
| default | ✓ | ✓ | ✗ | ✗ |
| private | ✓ | ✗ | ✗ | ✗ |
મેમરી ટ્રીક: "પબ્લિક પ્રોટેક્ટેડ ડિફોલ્ટ પ્રાઇવેટ"
પ્રશ્ન 3(ક OR) [7 ગુણ]
પેકેજ શું છે? પેકેજ બનાવવાના પગલાં લખો અને તેનું ઉદાહરણ આપો.
જવાબ:
Package: સંબંધિત ક્લાસ અને interfaces નું જૂથ.
પેકેજ બનાવવાના પગલાં:
- Declare: ટોપ પર package statement વાપરો
- Compile: javac -d . ClassName.java
- Run: java packagename.ClassName
Java
Package Benefits:
- Organization: સંબંધિત ક્લાસોને જૂથ કરે છે
- Access Control: પેકેજ-લેવલ પ્રોટેક્શન
- Namespace: નામિંગ કન્ફ્લિક્ટ ટાળે છે
મેમરી ટ્રીક: "ડિક્લેર કમ્પાઇલ રન"
પ્રશ્ન 4(અ) [3 ગુણ]
યોગ્ય ઉદાહરણ સાથે thread ની પ્રાથમિકતાઓ સમજાવો.
જવાબ:
Thread Priority: thread execution order નક્કી કરે છે (1-10 સ્કેલ).
Java
Priority Constants:
- MIN_PRIORITY: 1
- NORM_PRIORITY: 5
- MAX_PRIORITY: 10
મેમરી ટ્રીક: "મિન નોર્મલ મેક્સ"
પ્રશ્ન 4(બ) [4 ગુણ]
થ્રેડ શું છે? થ્રેડ જીવન ચક્ર સમજાવો.
જવાબ:
Thread: concurrent execution માટે lightweight process.
Thread States:
- New: Thread બનાવ્યું પણ શરૂ થયું નથી
- Runnable: ચાલવા માટે તૈયાર
- Running: હાલમાં execute થઈ રહ્યું છે
- Blocked: resource માટે રાહ જોઈ રહ્યું છે
- Dead: execution પૂર્ણ થયું
મેમરી ટ્રીક: "ન્યૂ રનેબલ રનિંગ બ્લોક્ડ ડેડ"
પ્રશ્ન 4(ક) [7 ગુણ]
જાવામાં એક પ્રોગ્રામ લખો જે રનેબલ ઇન્ટરફેસનો અમલ કરીને બહુવિધ થ્રેડો બનાવે છે.
જવાબ:
Java
મુખ્ય મુદ્દાઓ:
- Runnable Interface: Thread ક્લાસ extend કરવા કરતાં સારું છે
- Thread.sleep(): thread execution pause કરે છે
- Multiple Threads: એકસાથે concurrent ચાલે છે
મેમરી ટ્રીક: "ઇમ્પ્લિમેન્ટ રનેબલ સ્ટાર્ટ મલ્ટિપલ"
પ્રશ્ન 4(અ OR) [3 ગુણ]
ચાર અલગ-અલગ ઇનબિલ્ટ exception ની યાદી આપો. કોઈપણ એક ઇનબિલ્ટ exception સમજાવો.
જવાબ:
Inbuilt Exceptions:
- NullPointerException: null object એક્સેસ કરવું
- ArrayIndexOutOfBoundsException: અમાન્ય array index
- ArithmeticException: શૂન્યથી ભાગાકાર
- NumberFormatException: અમાન્ય સંખ્યા ફોર્મેટ
ArithmeticException: arithmetic operation નિષ્ફળ થાય ત્યારે throw થાય છે.
Java
મેમરી ટ્રીક: "નલ એરે એરિથમેટિક નંબર"
પ્રશ્ન 4(બ OR) [4 ગુણ]
યોગ્ય ઉદાહરણ સાથે ટ્રાય અને કેચ સમજાવો.
જવાબ:
Try-Catch: Exception handling મેકેનિઝમ.
Java
Exception Handling Flow:
- Try: કોડ જે exception throw કરી શકે છે
- Catch: વિશિષ્ટ exceptions handle કરે છે
- Finally: હંમેશા execute થાય છે
મેમરી ટ્રીક: "ટ્રાય કેચ ફાઇનલી"
પ્રશ્ન 4(ક OR) [7 ગુણ]
Exception શું છે? Arithmetic Exception નો ઉપયોગ દશાવતો પ્રોગ્રામ લખો.
જવાબ:
Exception: runtime error જે સામાન્ય પ્રોગ્રામ flow ને વિક્ષેપ કરે છે.
Java
Exception Types:
- Checked: કમ્પાઇલ-ટાઇમ exceptions
- Unchecked: રનટાઇમ exceptions
- Error: સિસ્ટમ-લેવલ પ્રોબ્લેમ્સ
મેમરી ટ્રીક: "રનટાઇમ એરર ફ્લો ડિસરપ્ટ કરે છે"
પ્રશ્ન 5(અ) [3 ગુણ]
JavaમાંArrayIndexOutOfBound અપવાદને ઉદાહરણ સાથે સમજાવો.
જવાબ:
ArrayIndexOutOfBoundsException: અમાન્ય array index એક્સેસ કરતી વખતે throw થાય છે.
Java
મુખ્ય મુદ્દાઓ:
- Valid Range: 0 થી array.length-1
- Negative Index: નકારાત્મક index પણ exception throw કરે છે
- Runtime Exception: unchecked exception
મેમરી ટ્રીક: "એરે ઇન્ડેક્સ રેન્જ ચેક"
પ્રશ્ન 5(બ) [4 ગુણ]
stream classes ની મૂળભૂત બાબતો સમજાવો.
જવાબ:
Stream Classes: input/output operations handle કરે છે.
| Stream Type | Classes |
|---|---|
| Byte Streams | InputStream, OutputStream |
| Character Streams | Reader, Writer |
| File Streams | FileInputStream, FileOutputStream |
| Buffered Streams | BufferedReader, BufferedWriter |
Stream Features:
- Sequential: ડેટા sequence માં flow કરે છે
- One Direction: કાં તો input કાં output
- Automatic: નીચલા સ્તરની વિગતો handle કરે છે
મેમરી ટ્રીક: "બાઇટ કેરેક્ટર ફાઇલ બફર્ડ"
પ્રશ્ન 5(ક) [7 ગુણ]
ટેક્સ્ટ ફાઇલ બનાવવા માટે જાવા પ્રોગ્રામ લખો અને ટેક્સ્ટ ફાઇલ પર રીડ ઑપરેશન કરો.
જવાબ:
Java
મુખ્ય મુદ્દાઓ:
- FileWriter: ફાઇલ બનાવે અને લખે છે
- BufferedReader: કાર્યક્ષમ વાંચન
- Exception Handling: IOException handle કરો
મેમરી ટ્રીક: "બનાવો લખો વાંચો બંધ કરો"
પ્રશ્ન 5(અ OR) [3 ગુણ]
Java માં Divide by Zero Exception ને ઉદાહરણ સાથે સમજાવો.
જવાબ:
ArithmeticException: શૂન્યથી ભાગાકાર ઑપરેશન દરમિયાન throw થાય છે.
Java
મુખ્ય મુદ્દાઓ:
- Integer Division: માત્ર integer division by zero exception throw કરે છે
- Floating Point: floating point division માટે Infinity return કરે છે
- Runtime Exception: unchecked exception
મેમરી ટ્રીક: "શૂન્ય ભાગાકાર એરિથમેટિક એરર"
પ્રશ્ન 5(બ OR) [4 ગુણ]
java I/O પ્રક્રિયા સમજાવો.
જવાબ:
Java I/O Process: ડેટા વાંચવા અને લખવાની પદ્ધતિ.
I/O Components:
- Stream: ડેટાનો ક્રમ
- Buffer: કાર્યક્ષમતા માટે અસ્થાયી સ્ટોરેજ
- File: સ્થાયી સ્ટોરેજ
- Network: દૂરસ્થ ડેટા ટ્રાન્સફર
I/O Types:
- Byte-oriented: કાચો ડેટા (images, videos)
- Character-oriented: ટેક્સ્ટ ડેટા
- Synchronous: blocking operations
- Asynchronous: non-blocking operations
મેમરી ટ્રીક: "સ્ટ્રીમ બફર ફાઇલ નેટવર્ક"
પ્રશ્ન 5(ક OR) [7 ગુણ]
ટેક્સ્ટ ફાઇલ બનાવવા માટે જાવા પ્રોગ્રામ લખો અને ટેક્સ્ટ ફાઇલ પર રાઇટ ઑપરેશન કરો.
જવાબ:
Java
મુખ્ય મુદ્દાઓ:
- FileWriter: ફાઇલમાં character data લખે છે
- BufferedWriter: મોટા ડેટા માટે વધુ કાર્યક્ષમ
- Auto-close: automatic closing માટે try-with-resources વાપરો
મેમરી ટ્રીક: "બનાવો લખો બંધ કરો હેન્ડલ કરો"