Java Programming Language Basics
Java Programming Language Basics
What is A Class
Anatomy of a Class
Visibility and Accessibility
Java Data Types
Using Arrays
Operators
Statements
What is Class
Class ဆiuတ1 Programming Unit တစ#ခu*ဖစ#ပ?တယ#။ လiuအပ#တ85 Function eတ>ကiu eရ&သ1&လiuတ85အခ?မ91လ8
Class ကiu eရ&6ပ7& အ85ဒ7 Class ထ8မ91 Function eတ>ကiueရ&သ1&ရပ?မယ#။ Java Programming မ91 Function
eတ>ကiu Method လiueခLeလ5Diပ?တယ#။
တဖန# Class eတ>ဟ1 Object တစ#ခuမ91ပ?တ85 State eတ>န8A Behavior eတ>ကiu သတ#မ9တ#eပ&Biuင#ပ?တယ#။ Object
ထ8မ91 ပ?သင#5တ85 State eတ>ကiu Variable eတ>န8A သတ#မ9တ#6ပ7& Behavior eတ>ကiueတ15 Method eတ>န8A eရ&သ1&
eဖL*ပရမ91 *ဖစ#ပ?တယ#။
Anatomy of a Class
Java Programming ကiu စ6ပ7&eရ&သ1&eတ15မယ#ဆiuရင# Class ကeန စ6ပ7& eရ&သ1&ရမ91 *ဖစ#ပ?တယ#။ ကOန#eတ1#
တiu ဒ7eနရ1မ91 Java Class တစ#ခuကiu ဘယ#လiu eရ&သ1&ရမယ#ဆiuတ1ကiu eလ5လ1သ>1&မ91 *ဖစ#ပ?တယ#။ အရင#ဆuP&
Class တစ#ခuကiu မမ91&eအ1င# ဘယ#လiueရ&သ1&ရမလ8 ဆiuတ1ကiu eလ5လ1သ>1&6ပ7&၊ Class ထ8မ91 ဘ1eတ> eရ&လiuရ
တယ#၊ 6ပ7&eတ15 ဘယ#လiu အသuP&*ပuရတယ#ဆiueတ1ကiu eလ5လ1သ>1&ပ?မယ#။
Minimum Requirements
Class တစ#ခuကiu မမ91&eအ1င#eရ&တယ#ဆiuတ1က Compile လuပ#လiuက#တ85အခ?မ91 Error မ*ဖစ#eအ1င# eရ&Biuင#တ1ကiu
ဆiuလiuတ1 *ဖစ#ပ?တယ#။
class keyword
class keyword ဟ1 Class တစ#ခu*ဖစ#e0က1င#&ကiu သတ#မ9တ#eပ&eနတ85 keyword *ဖစ#ပ?တယ#။ Class တစ#ခuကiu
eရ&သ1&ရ1မ91 မ*ဖစ#မeနပ?ဝင#ရမည#5 အရ1တစ#ခu*ဖစ#ပ?တယ#။ Java ဘ1သ1ရပ#ဟ1 Case Sensitive *ဖစ#တ85
အတ>က# Lower Case eတ>*ဖစ#တ85 class လiuသ1eရ&သ1&ရမ91 *ဖစ#ပ?တယ#။ Class လiueရ&သ1&မယ#ဆiuရင#
keyword အeနန8A အသiအမ9တ#*ပuမ91 မဟuတ#ပ?ဘR&။ 6ပ7&eတ15 CLASS လiuလ8 eရ&သ1&လiuမရပ?ဘR&။
Identifier
HelloJava ကeတ15 Class Name *ဖစ#6ပ7& Identifier လiueခLပ?တယ#။ Class ကiu ဘယ#လiueခLeဝLမလ8 ဆiuတ1ကiu
သတ#မ9တ#eပ&တ1ပ?။ အ*ခခPအ1&*ဖင#5eတ15 Class Name eတ>ကiu Noun eတ>ကiu အသuP&*ပu6ပ7& eရ&သ1&eလ5Diပ?
တယ#။ Upper Case န8A စ6ပ7&eရ&သ1&eပ&ရပ?မယ#။ Noun eတ>ကiu ၂ ခuတ>86ပ7& eရ&သ1&မယ#ဆiuရင#eတ15 (Hello န8A
Java) ဒuတiယ Noun ရ8S အစစ1လuP&ကiu Upper Case န8A eရ&သ1&သင#5ပ?တယ#။ Camel Case eရ&သ1&ပuPလiu eခL
eလ5Diပ?တယ#။
Class Name ကiu Lower Case ကiu သuP&လiuမရဘR&လ1&။ Camel Case န8A မeရ&လiuမရဘR&လ1&ဆiueတ15 မeရ&ရင#လ8
ရပ?တယ#။ Compiler Error တက#မ91 မဟuတ#ပ?ဘR&။ ဒ?eပမ85 စနစ#က(တ85 eရ&သ1&ပuPeတ15 မဟuတ#ပ?ဘR&။ Team
Development လuပ#တ85 အခ?eတ>မ91 ဆiuရင# သတ#မ9တ#ထ1&တ85 စည#&ကမ#&eတ>ကiu လiuက#န16ပ7&eရ&သ1&တ1ဟ1
eက1င#&တ85 အက(င#5*ဖစ#ပ?တယ#။
Class Name Identifier eတ>ကiu eရ&သ1&တ85 eနရ1မ91 Java ရ8S Keyword eတ>ကiu အသuP&*ပuလiuမရပ?ဘR&။
Unicode Charactor eတ>၊ Currency Code eတ>၊ Number eတ>န8A Under Score ကiu အသuP&*ပu6ပ7& eရ&သ1&Biuင#ပ?
တယ#။ ဒ?eပမ85 Number eတ>န8A စ6ပ7& eရ&သ1&လiuမရပ?ဘR&။
Class Body
အတ>န#Aက>င#& အဖ>င#5န8A အပiတ#ကeတ15 Class Body *ဖစ#ပ?တယ#။ class တစ#ခuကiu eရ&သ1&တ85 အခ?မဟ1 Class
Body ကiu မ*ဖစ#မeနeရ&သ1&ရပ?မယ#။ Class Body အတ>င#&မ91eတ15 Class ထ8မ91 ပ?eစခ(င#တ85 အရ1eတ>ကiu
eရ&သ1&ရမ91 *ဖစ#ပ?တယ#။
Class Declaration
အထက#eဖL*ပပ?အတiuင#& keyword, Class name Identifier န8A Class Body တiuသ1ပ?မယ#ဆiuရင# Java Compiler
ကeန မ9န#ကန#တ85 Class တစ#ခuအ*ဖစ# အသiအမ9တ#*ပuမ91 *ဖစ#ပ?တယ#။ ဒ7eဖL*ပပuPကeတ15 Class တစ#ခuအတ>က# အ
န8ဆuP&လiuအပ#ခ(က#eတ> *ဖစ#0ကပ?တယ#။ ဒ?eပမ85 Class တစ#ခuမ91 eရ&သ1&မယ#ဆiuရင# အ*ခ1&eရ&သ1&Biuင#တ1eတ>Diပ?
eသ&တယ#၊ ဆက#လက#6ပ7& eလ5လ1သ>1&0ကပ?မယ#။
Modifiers
အထက#ပ?ပuPတ>င#ပ?ဝင#eသ1 public န8A final တiuဟ1 Modifier eတ>*ဖစ#0ကပ?တယ#။ Modifier ဆiuတ1ဟ1 Default
အရည#အeသ>&eတ>ကiu *ပu*ပင#လiuတ85အခ? (Modify) အသuP&*ပuBiuင#eသ1 အရ1မ(1&*ဖစ#ပ?တယ#။ Modifier eတ>ကiu
Access Modifier န8A Non Access Modifier ဆiu6ပ7& ၂ မ(iu&ခ>8*ခ1&Biuင#ပ?တယ#။ နမRန1ထ8တ>င#ပ?ဝင#eသ1 public ဆiu
တ1ဟ1 Access Modifier တစ#ခu*ဖစ#6ပ7& Student Class ကiu မည#သည#5 eနရ1မ9မဆiu အသuP&*ပuBiuင#e0က1င#&
သတ#မ9တ#eပ&eနပ?တယ#။
✴ Access Modifier န8A ပတ#သက#6ပ7& Modifier အခန#&B9င#5 OOP ရ8S Encapsulation အခန#&တiuမ91 အeသ&စiတ#
eဖL*ပသ>1&ပ?မယ#။
final ဆiuတ1ကလ8 Non Access Modifier တစ#ခu*ဖစ#ပ?တယ#။ final လiueရ&သ1&လiuက#တ1န8A Student Class ဟ1
final class *ဖစ#သ>1&6ပ7& Student Class ကiu အ*ခ1& Class eတ>ကလ16ပ7& Extends လuပ#လiuရeတ15မ91 မဟuတ#ပ?
ဘR&။
အထက#ပ?ပuPမ91 Student extends Person လiueရ&သ1&ထ1&တ85အတ>က# Student ဟ1 Person Class ကiu Extends လuပ#ထ1&
တယ#လiu eဖL*ပထ1&ပ?တယ#။ ဒ?5e0က1င#5 Student is A Person *ဖစ#သ>1&ပ?မယ#။
Implements Interface
Class တစ#ခuဟ1 Interface eတ>ကiu Implement လuပ#Biuင#6ပ7& implements keyword eန1က#မ91 Implement လuပ#လiuတ85
Interface eတ>ကiu eက1#မ1 ခP6ပ7&eရ&သ1&eပ&ရမ91 *ဖစ#ပ?တယ#။ Interface Implementation eတ>ကiu အ6မ8တမ#& Class
Extension eတ>ရ8Seန1က#မ91 eရ&သ1&ရမ91 *ဖစ#ပ?တယ#။ Class တစ#ခuဟ1 Class တစ#ခuထ8ကiuသ1 Exends လuပ#ပiuင#ခ>င#5Dieပမ85
Interface eတ>ကiueတ15 တစ#ခuထက#မက Implements လuပ#ပiuင#ခ>င#5Diပ?တယ#။
Class Members
Class Body အတ>င#&မ91 eရ&သ1&လiuရတ85အရ1eတ>ကeတ15 Class Members eတ>*ဖစ#ပ?တယ#။ ဒ?*ဖင#5 Class
Body ထ8မ91 ဘ1eတ>eရ&လiuရလ8။
1. Variables
2. Methods
3. Constructors
4. Nested Classes and Interfaces
5. Nested Enums
Variables
Variable ဟ1ဘ1လ8လiue*ပ1ရမယ#ဆiuရင# ကOန#eတ1#တiu အလယ#တန#&eလ1က#မ91 သင#ခ85ဘR&တ85 မသiကiန#& တစ#ခuန8A
တRပ?တယ#။ မသiတ85 ကiန#&တစ#ခuကiu x လiueပ&6ပ7& x eနရ1ကiu 10 လiueပ&လiuက#ရင# x ကiu 10 လiuထ1&6ပ7& တ>က#ခ850ကတ1
ကiu မ9တ#မiပ?ဦ&မယ#။ Java ရ8S variable ဟ1လ8 ဒ7သeဘ1ပ?ပ8။ ဒ?eပမ85 Java မ91က Variable ကiu အသuP&*ပuခ(င#ရင#
သuP&ပ?မယ#ဆiu6ပ7& eဖL*ပeပ&ရပ?တယ#။ အ85ဒ?ကiu Variable Declaration လiu eခLပ?တယ#။ Variable တစ#ခuကiu
Declare လuပ#တ85 eနရ1မ91 Variable Type ရယ# Variable Name ကiu eဖ1#*ပeပ&ဖiuလiuအပ#ပ?တယ#။
eန1က#6ပ7& Java Class eတ>ထ8မ91 Variable eတ>ကiu Xကiuက#တ85 eနရ1မ91 Declare လuပ#6ပ7& အသuP&*ပuBiuင#ပ?တယ#။
ကOန#eတ1#တiu Variable eတ>ကiu eလ5လ1တ85eနရ1မ91 eအ1က#ပ?အခ(က#eတ>ကiu သiထ1&ဖiuလiuအပ#ပ?တယ#။
int တiu char တiuလiu Primitive Data Type eတ>ကiuလ8 Type အ*ဖစ# အသuP&*ပuBiuင#သလiu String တiuလiu Java API က
*ပင#ဆင#ထ1&တ85 Class eတ>ကiuလ8 Type အ*ဖစ#အသuP&*ပuBiuင#ပ?တယ#။ ဒ?5အ*ပင# User က eရ&သ1&ထ1&တ85 Class
eတ>ကiuလ8 Type အ*ဖစ# အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။
Global Variables
Class Body eအ1က#တည#5တည#5မ91 eရ&ထ1&တ85 Variable eတ>ဟ1 Global Variable eတ>*ဖစ#0ကပ?တယ#။ အ85ဒ7
Variable eတ>ကiu Class အတ>င#&Xကiuက#တ85eနရ1မ91 အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။ ဒ7eနရ1မ91 အ85ဒ7 Variable eတ>ကiu
အသuP&*ပuBiuင#တ85 အခ(iန# အတiuင#&အတ1ဆiuတ1ကiuလ8 သiဖiuလiuအပ#ပ?တယ#။ ဒ?ကiueတ15 eန1က#မ91 ဆက#6ပ7& Dင#&*ပသ>1&
ပ?မယ#။
class Student {
String name;
အထက#ပ?အတiuင#& Student Class ရ8S Class Body eအ1က#မ91 String name လiueရ&ထ1&တ1ဟ1 String Type
Variable *ဖစ#တ85 name ဆiuတ85 Variable တစ#ခuကiu eရ&သ1&လiuက#တ1ပ?ပ8။ Class Body eအ1က#မ91 eရ&သ1&ထ1&
တ1 *ဖစ#တ85 အတ>က# ဒ?ဟ1 Global Variable *ဖစ#ပ?တယ#။
ဒ?5e0က1င#5 name variable ကiu showName method ထ8ကeနလ8 အသuP&*ပueနBiuင#တ1 *ဖစ#ပ?တယ#။ Global
Variable eတ>ကiuဆiuရင# Class တစ#ခuလuP&ကeန အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။
Global Variable eတ>မ91 Value ကiu သတ#မ9တ#မထ1&ဘR&ဆiuရင# Compiler ကeန Default တန#ဖiu&ကiu သတ#မ9တ#
eပ&မ91 *ဖစ#ပ?တယ#။ Number eတ>ရ8S Default တန#ဖiu&ဟ1 0 *ဖစ#6ပ7&၊ boolean eတ>ရ8S Default တန#ဖiu&ဟ1 false
*ဖစ#ပ?တယ#။ Object eတ>ရ8S Default တန#ဖiu&ကeတ15 null *ဖစ#ပ?တယ#။
Instance Variable
Instance Variable eတ>ဆiuတ1ကeတ15 Object eတ>မ91 အသuP&*ပuခ(င#တ85 Variable eတ>*ဖစ#ပ?တယ#။ Class တစ#ခu
ကiu eရ&သ1&ရတ85 အဓiက ရည#ရ>ယ#ခ(က#ဟ1 Object eဆ1က#ဖiuဆiuတ1 *ဖစ#တ85 အတ>က# Default အတiuင#&ဆiuရင#
Global Variable eတ>ဟ1 Instance Variable eတ> *ဖစ#0ကပ?တယ#။
Global Variable *ဖစ#6ပ7& value ကiu ဘ1မ9 မeရ&ထ1&တ85 အတ>က# Default တန#ဖiu&ဟ1 null *ဖစ#eနမယ#ဆiuတ1ကiu
သieနBiuင#ပ?တယ#။ 6ပ7&eတ15 Instance Variable တစ#ခu*ဖစ#တယ#ဆiuတ1ကiuလ8 သiBiuင#ပ?တယ#။ eUမ91လ8e*ပ1ခ856ပ7&
*ဖစ#ပ?တယ#။ Instance Variable eတ>ဟ1 Class ထ8မ91 ထ1&6ပ7&သuP&တ85 Variable eတ>မဟuတ#ပ8 အ85ဒ7 Class ကeန
Object ကiu တည#eဆ1က#တ85အခ?မ91 အ85ဒ7 Object eတ>မ91 ပiuင#ဆiuင#သင#5တ85 State eတ>ကiu သiမ#&eပ&ထ1&ဖiuအတ>က#
သuP&*ပuပ?တယ#။
ဒ?5e0က1င#5 Instance Variable eတ>ဟ1 Object တစ#ခuခ(င#&ဆ7န8A သက#ဆiuင#တ85 Variable eတ> *ဖစ#0ကပ?တယ#။
Class တစ#ခuကeန Object ဘယ#B9စ#ခueဆ1က#Biuင#လ8ဆiuရင# အXကiမ#Xကiမ#တည#eဆ1က#Biuင#ပ?တယ#။ 6ပ7&eတ15 အ85ဒ7
Object တစ#ခuခ(င#&စ7ဟ1လ8 သ7&*ခ1&စ7ရပ#တည#eနတ1*ဖစ#ပ?တယ#။
class StudentTest {
Student s1 = new Student() လiueရ&ထ1&တ1ဟ1 အရင#ဆuP& Stack Memory eပLမ91 s1 ဆiuတ85 အမည#န8A
Student Type Variable တစ#ခuကiu သ>1&eဆ1က#ပ?တယ#။ 6ပ7&မ9 new Student() လiueရ&တ85 ကuဒ#ကiu Evaluate လuပ#
6ပ7& Heap Memory eပLမ91 Student Object ကiu သ>1&eဆ1က#ပ?တယ#။ ဒ7လiu Object eဆ1က#တ85အခ?မ91 Student
Class ထ8မ91Diတ85 instance variable eတ>ကiu Copy ကR&သ>1&6ပ7& ယRသ>1&ပ?တယ#။ ဒ?5e0က1င#5 Student Object ထ8
မ91 name ဆiuတ85 Instance Variable လ8 ပ?သ>1&ပ?တယ#။
6ပ7&မ9 s1 eနရ1ကiu တည#eဆ1က#ထ1&တ85 Object ရ8S Memory Address ကiu အစ1&ထiu&ပ?တယ#။ ဒ7လiuပ8 s2 Variable
ကiuလ8 တည#eဆ1က#သ>1&တ1 *ဖစ#ပ?တယ#။ ဒ?5e0က1င#5 s1 ရ8S name န8A s2 ရ8S name eတ>ဟ1 သ7&*ခ1&စ7 *ဖစ#eနမ91
*ဖစ#ပ?တယ#။ [Link] = “Aung Aung” လiu eရ&လiuက#တယ#ဆiuရင# s1 ရ8S name သ1 Aung Aung *ဖစ#သ>1&မ91 *ဖစ#
6ပ7& s2 ရ8S name န8A သက#ဆiuင#*ခင#& Diမ91 မဟuတ#ပ?ဘR&။ အလ1&တR [Link] = “Thidar” လiueရ&လiuက#ရင#လ8 s2 ရ8S
name သ1 တန#ဖiu&e*ပ1င#&သ>1&တ1 *ဖစ#6ပ7& s1 ရ8S name န8A ပတ#သက#မD - iမ91 မဟuတ#ပ?ဘR&။
Instance Variable eတ>ဟ1 Object eတ>အတ>က# eရ&ထ1&တ85 Variable eတ> *ဖစ#တ85 အတ>က# Instance
Variable eတ>ကiu Object Variable eတ>လiuလ8 eခLeလ5Diပ?တယ#။ ဒ?5e0က1င#5 Instance Variable eတ>ကiu Access
လuပ#ခ(င#တ85 အခ?မ91 Owner *ဖစ#တ85 Object က တဆင#5 [Link] လiu eရ&သ1&ရတ1 *ဖစ#ပ?
တယ#။
Static Variable
Java ဘ1သ1ရပ#မ91 Class eတ>ကiu eရ&သ1&တ1ဟ1 Object eဆ1က#ဖiu Xက7&ပ8 မဟuတ#ပ?ဘR&။ Java မ91 Class မပ?
ပ8 ကuဒ#eတ>ကiu eရ&သ1&လiu မရBiuင#ပ?ဘR&။ ဒ?5e0က1င#5 Utility Function eတ>ကiu eရ&သ1&မယ#ဆiuရင#eတ1င#မ9 Class
ထ8မ91ပ8 eရ&သ1&ရမ91 *ဖစ#ပ?တယ#။ အ85ဒ7လiu Class ထ8မ91ပ8ထ1&6ပ7& အသuP&*ပuခ(င#တ85 Method eတ>ကiueတ15 Static
Method လiueခLပ?တယ#။ တဖန# အ85ဒ7 Method eတ>အ0က1&မ91 ဘuPအeနန8A ထ1&6ပ7& သiမ#ထ1&ခ(င#တ85 တန#ဖiu&eတ>
အတ>က# Variable eတ>လiuအပ#လ1ပ?တယ#။ Object မ91 သuP&ဖiu မဟuတ#ပ8 Class ထ8မ91ပ8 ထ1&6ပ7& အသuP&*ပuခ(င#တ85
Variable eတ>ကiueတ15 Static Variable eတ>လiu eခL0ကပ?တယ#။
က8 ဒ7eနရ1ကစ6ပ7& Static Variable eတ>ကiu ဘယ#လiueရ&ရမယ#၊ 6ပ7&eတ15 Static Variable eတ>ရ8S ထR&*ခ1&ခ(က#eတ>
န8A Static Variable eတ>ကiu ဘယ#လiu အသuP&*ပuရမယ# ဆiuတ1ကiu eလ5လ1သ>1&0ကရeအ1င#။
Global Variable eတ>ကiu ဒ7အတiuင#& eရ&ထ1&ရင# Instance Variable eတ>*ဖစ#ပ?တယ#။ တနည#& e*ပ1ရမယ#ဆ7uရင#
Global Variable eတ>ဟ1 Default အတiuင#&ဆiuလiuကeတ15 Object eတ>မ91 သuP&မည#5 Instance Variable eတ> *ဖစ#
eနမ91ပ?ပ8။ Static Variable အ*ဖစ# အသuP&*ပuလiuတ85အခ?မ91 static ဆiuတ85 Non Access Modifier ကiu Variable
Type ရ8S eUမ91 eရ&သ1&6ပ7& Static Variable *ဖစ#e0က1င#& eဖL*ပBiuင#မ91 *ဖစ#ပ?တယ#။
class Student {
void show() {
[Link](“Count : “ + count);
[Link](“Name : “ + name);
}
အထက#ပ? Student Class ထ8မ91 Global Variable ၂ ခuDiပ?တယ#။ count န8A name ပ?။ count ဟ1 int type *ဖစ#
6ပ7& static လiueရ&ထ1&တ85 အတ>က# static variable *ဖစ#ပ?တယ#။ 6ပ7&eတ15 name ကeတ15 Type အ*ပင# ဘ1မ9 မ
eရ&ထ1&တ85 အတ>က# Instance Variable *ဖစ#ပ?တယ#။
ဒ?5e0က1င#5 Object eဆ1က#တ85 အခ?မ91 Static Variable eတ>ကiu Copy ကR&6ပ7& ယRမသ>1&ပ?ဘR&။ Class ထ8မ91ပ8 ခ(န#
ထ1&ခ85ပ?တယ#။ Utility Function eတ>အ0က1&မ91 အသuP&*ပuဖiu ထ1&တ85 Variable eတ>*ဖစ#တ85 အတ>က# Static
Variable eတ>ဟ1 Class ထ8မ91ပ8 Dieနမ91 *ဖစ#ပ?တယ#။ 6ပ7&eတ15 Class eတ>ဟ1 JVM eပLမ91 တစ#ခuထ8သ1Diတ85
class Student {
void show() {
[Link](“Count : “ + count);
[Link](“Name : “ + name);
}
void countUp() {
count ++;
}
အတ>က# Static Variable eတ>ဟ1လ8 JVM မ91 တစ#ခuထ8သ1Diတ85 Variable eတ>အeနန8A ရပ#တည#မ91 *ဖစ#ပ?တယ#။
ဒ7eနရ1မ91 Static Variable eတ>ရ8S ထR&*ခ1&ခ(က#ကiu သieအ1င# eအ1က#ပ? Code eတ>န8A စမ#&0ကည#50ကရeအ1င#။
အထက#ပ? ကuဒ#ထ8မ91 countUp ဆiuတ85 Method ထ8မ91 count ++ ဆiu6ပ7& static variable ကiu တစ#တiu&ထ1&ပ?တယ#။
6ပ7&eတ15 main method ထ8ကiu 0ကည#50ကရeအ1င#။ အရင#ဆuP&. s1 ဆiuတ85 Object တစ#ခuကiu eဆ1က#တယ#။ s1 ရ8S
countUp method ကiu invoke လuပ#ပ?တယ#။ ဒ?ဆiuရင# ဘ1*ဖစ#သ>1&လ8 ဆiuတ1ကiu 0ကည#50ကရeအ1င#။ count ဆiuတ85
variable ကiu တစ#တiu&ပ?မယ#။ ဒ?5e0က1င#5 count ရ8S တန#ဖiu&ဟ1 1 *ဖစ#သ>1&မယ#။
6ပ7&eတ15 ဆက#6ပ7& [Link]() ကiu eခLပ?တယ#။ ဒ7eနရ1မ91 s1 ရ8S count န8A name ကiu Console eပLမ91 *ပeပ&ပ?
မယ#။ သတiထ1&ဖiuလiuတ1က count ဟ1 Static Variable *ဖစ#6ပ7&eတ15 name ဟ1 Instance Variable *ဖစ#eနတ1
ကiuပ?ပ8။ ဆက#6ပ7& s1 ဆiuတ85 န1မည#န8A Object တစ#ခuကiu eဆ1က#*ပန#ပ?တယ#။ 6ပ7&eတ15 countUp() method ကiu eခL
*ပန#တယ#။ 6ပ7&မ9 s2 ရ8S name ကiu Thidar လiu အစ1&ထiu&6ပ7& s2 ရ8S show() Method ကiu eခL*ပန#တယ#။
S1 ရ8S show() Method ကiu eခLတuန#&က အe*ဖဘယ#လiu*ပ6ပ7& s2 ရ8S show() Method eခLeတ15 အe*ဖဘယ#လiu
ထ>က#မယ#ဆiuတ1ကiu သတiထ1&မieစခ(င#ပ?တယ#။
အထက#ပ? အတiuင#& အe*ဖထ>က#ပ?မယ#။ [Link]() ကiu eခLခ85တuန#&က count ရ8S တန#ဖiu&ဟ1 1 *ဖစ#ပ?တယ#။ show()
method ကiu မeခLခင# countUp() Method ကiu eခLခ85တယ#။ ဒ?5e0က1င#5 count ဟ1 1 *ဖစ#သ>1&ပ?တယ#။
ဒuတiယ အXကiမ# [Link]() ကiu eခL*ပန#တယ#။ count ကiu တစ#*ပန#တiu&ပ?တယ#။ တကယ#လiuသ1 count ဟ1
Object eတ>eဆ1က#တiuင#& Copy ကR&သ>1&ရင# အ85ဒ7eနရ1မ91လ8 count ကiu s2 က ပiuင#မ91 *ဖစ#တ85 အတ>က# တန#ဖiu&ဟ1
၁ ပ8*ဖစ#မ91ပ?။ ဒ?eပမ85 count ဟ1 Static Variable *ဖစ#တယ#။ ဒ?5e0က1င#5 s2 ဟ1 JVM တစစ#ခuလuP&မ91 တစ#ခuထ8သ1
Diပ?တယ#။ s1 က သiတ85 count eက1 s2 ကသiတ85 count ပ? တစ#eနရ1ထ8မ91 Diတ85 count ကiu *မင#eနတ1 *ဖစ#
တယ#။ ဒ?5e0က1င#5 s1 ရ8S count ကiu တစ#တiu&လiuက#eတ15 count ရ8S တန#ဖiu&ဟ1 1 *ဖစ#လ16ပ7&၊ eန1က#တစ#Xကiမ# s2
ကeန count ကiu တစ#*ပန#တiu&eတ15 တန#ဖiu&ဟ1 2 *ဖစ#သ>1&တ1 *ဖစ#ပ?တယ#။
ဒ7eနရ1မ91 Static Variable eတ>ဟ1 JVM eပLမ91 တစ#ခuထ8သ1 Diမ91 *ဖစ#တ85 အတ>က# ဘယ# Object ကပ8 သuP&သuP&
တစ#ခuထ8ကiu သuP&eနတယ#ဆiuတ1ကiu သieစခ(င#ပ?တယ#။
ဒ?5e0က1င# Desktop Application eတ>မ91 Login User ရ8S Information eတ>ကiu Application တစ#ခuလuP&မ91 ဘuPအeန
န8A Share လuပ#6ပ7& အသuP&*ပuလiuတ85 အခ?မ(iu&မ91 Static Variable eတ>ကiu အသuP&*ပu0ကတ1ကiu eတ>Zရပ?မယ#။ 6ပ7&eတ15
Application တစ#ခuလuP&မ91 Object တစ#ခuထ8သ1 Dieစလiuတ85 Singleton Design Patterns မ(iu&မ91လ8 Static
Variable eတ>ကiu အသuP&*ပuတ1ကiu eတ>Zရပ?တယ#။
OOP ကiu သင#0က1&6ပ7&တ85 အခ?မ91 Design Patterns eတ>အe0က1င#&ကiu Class Design eတ>န8A လက#eတ>Z
*ပဿန1eတ>ကiu ဘယ#လiu e*ဖDင#&တယ#ဆiuတ1ကiu eဖL*ပသ>1&ပ?မယ#။ အ85ဒ7 အခန#&eရ1က#ရင# Singleton Pattern
အe0က1င#&ကiu အe0က1င#&ကiu ဆက#6ပ7& eဖL*ပသ>1&ပ?မယ#။
Local Variables
Code Block တစ#ခuခuအတ>င#&မ91 စ16ပ7& Declare လuပ#ထ1&တ85 Variable eတ>ဟ1 Local Variable eတ> *ဖစ#0ကပ?
တယ#။ Code Block လiue*ပ1တ85eနရ1မ91 အတ>န#Aက>င#5 { *ဖစ#5စ6ပ7& အတ>န#Aက>င#& အပiတ#န8A } ဆuP&တ85 Code eတ>ကiu
ဆiuလiuတ1ပ?။ Instance Block eတ>၊ Static Block eတ>၊ Method Body eတ>၊ if / else statement Block eတ>၊
For န8A While Block eတ>ဟ1 Code Block eတ>*ဖစ#0ကပ?တယ#။
တဖန# Method Arguments eတ>န8A for loop ထ8မ91 eရ&ထ1&တ85 Variable eတ>ကလ8 Local Variable eတ> *ဖစ#0က
ပ?တယ#။ Local Variable eတ>ဟ1 သRတiuကiu စ6ပ7&eရ&ထ1&တ85 eနရ1ကeန စ6ပ7& သRတiuကiu eရ&ထ1&တ85 Block ဆuP&တ85
အထi အသuP&*ပuလiuရပ?တယ#။ Local Variable eတ>ဟ1 Global Variable eတ>န8A မတRပ8 Default တန#ဖiu&ကiu
Compiler က ထည#5မeပ&Biuင#ပ?ဘR&။ ဒ?5e0က1င#5 Local Variable eတ>ကiu အသuP&*ပueတ15မယ#ဆiuရင# တန#ဖiu& တစ#ခuခu
ကiu Assign လuပ#6ပ7&မ91 အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။ တကယ#လiu တန#ဖiu&ကiu အစ1&မထiu&ပ8 အ85ဒ7 Local Variable တစ#
ခuကiu Access လuပ#ရင# Compile Time မ91 Error တက#မ91 *ဖစ#ပ?တယ#။
class LocalVariablesInBlocks {
{
// Instance Block
int data = 10;
}
static {
// static block
int data = 11;
}
}
Class Body အတ>င#&မ91 { န8Aစ6ပ7& } န8A ဆuP&ထ1&တ1ဟ1 Instance Block eတ>*ဖစ#ပ?တယ#။ Instance Block eတ>
ဟ1 Class ကeန Object ကiuထည#eဆ1က#တ85အခ?မ91 Constructor ကiu အလuပ#မလuပ#ခင# တစ#Xကiမ# အလuပ#လuပ#eစ
ပ?တယ#။ အထက#ပ?အတiuင#& Instance Block ထ8မ91 int data = 10 လiueရ&ထ1&တ85 အတ>က# data ဟ1 Local
Variable တစ#ခu*ဖစ#6ပ7& } eနရ1အထi အ8ဒ7 data ကiu အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။
တဖန# static { } လiueရ&ထ1&တ1ကeတ15 static block *ဖစ#ပ?တယ#။ JVM eပLကiu အ85ဒ7 Class ကiu Load လuပ#6ပ7&
တ1န8A static block ထ8မ91Diတ85 ကuဒ#eတ>ကiu အလuပ#လuပ#eစမ91 *ဖစ#ပ?တယ#။
class LocalVariablesInMethod {
void someMethod() {
// declare in method
int data = 10;
}
အထက#ပ? နမRန1ထ8မ91 someMethod() ထ8မ91 int data = 10 ဆiu6ပ7&eရ&ထ1&ပ?တယ#။ Type ကiu တ>8eရ&6ပ7ဆiuတ1န8A
ဒ?ဟ1 Variable တစ#ခuကiu လ16ပ7& Declare လuပ#တယ#ဆiuတ1ကiu သeဘ1ပ?က#ဖiuလiuပ?တယ#။ Method Body ထ8မ91
စ6ပ7& Declare လuပ#ထ1&တ85 အတ>က# ဒ?ဟ1 Local Variable *ဖစ#ပ?တယ#။ အ85ဒ7 Variable ကiu Declare လuပ#တ85
eနရ1ရ8S eန1က#ကeနစ6ပ7& Method ဆuP&တ85 အထi အသuP&*ပuBiuင#ပ?တယ#။
eန1က# Method တစ#ခuကeတ15 takeArgument(int data) လiueရ&ထ1&ပ?တယ#။ Method Argument အeနန8A int
data ကiu eရ&သ1&ထ1&ပ?တယ#။ ဒ7eနရ1မ91လ8 Type န8A အတReရ&ထ1&တ1 *ဖစ#တ85 အတ>က# Local Variable *ဖစ#ပ?
တယ#။ အ85ဒ7 Variable ကiu takeArgument method အတ>င#&မ91ပ8 အသuP&*ပuလiu ရမ91 *ဖစ#ပ?တယ#။ ဒ7eနရ1မ91
someMethod ထ8က int data န8A takeArgument ထ8က int data eတ>ဟ1 Type န8A Name ဟ1 တReနeပမ85
အသuP&*ပuBiuင#တ85 eနရ1 (Scope) ဟ1 မတRပ?ဘR&။ ဒ?e0က1င#5 သ7&*ခ1& Variable eတ> *ဖစ#0ကပ?တယ#။
Decision Statement eတ>န8A Looping Statement eတ>ထ8မ91 eရ&သ1&ထ1&တ85 Variable eတ>ဟ1လ8 Local
Variable eတ> *ဖစ#0ကပ?တယ#။ အထက#ပ? နမRန1ထ8မ91 Local Variable ၂ ခu ပ?ဝင#ပ?တယ#။ int i = 0 လiu eရ&ထ1&
တ85 အတ>က# ဒ?ဟ1လ8 Local Variable *ဖစ#ပ?တယ#။ 6ပ7&eတ15 String str လiu eရ&ထ1&တ1လ8 Local Variable *ဖစ#
ပ?တယ#။
Local Variable eတ>ဟ1 သRတiuကiu စeရ&ထ1&တ85 eနရ1ကeနစ6ပ7& သRတiuDieနတ85 Block ဆuP&တ85 အထi အသuP&*ပuBiuင#
မ91*ဖစ#ပ?တယ#။ ဒ?5e0က1င#5 for(int i = 0; i < 10; i ++) ဆiu6ပ7& i ကiu *ပန#6ပ7& အသuP&*ပueနBiuင#တ1 *ဖစ#ပ?တယ#။
Variable Hidings
ကOန#eတ1#တiu Variable eတ>ကiu eရ&သ1&တ85 eနရ1မ91 တစ#ခuသတiထ1&ဖiuလiuတ1က Scope တစ#ခuအတ>င#&မ91
န1မည#တR Variable eတ>ကiu eရ&သ1&လiu မရBiuင#ပ?ဘR&။ Scope မတRရင#eတ15 န1မည#တR Variable eတ>ကiueရ&သ1&
Biuင#ပ?တယ#။
Local Variable eတ>အခ(င#&ခ(င#& Scope မတRတ1က *ပဿန1မDieပမ85 Global Scope ထ8က Variable န8A Local
Scope ထ8က Variable eတ>မ91 န1မည#တRခ85ရင# Local Scope ထ8မ91eတ15 Local Scope ထ8က Variable ကiuပ8
အသuP&*ပuသ>1&မ91 *ဖစ#ပ?တယ#။ ဒ7လiu Local Scope ထ8က Variable က Global Scope ထ8က Variable ကiu သ>1&6ပ7&
ဖuန#&က>ယ#သလiu *ဖစ#သ>1&တ1ကiu Variable Hiding လiueခLပ?တယ#။
Global Variable eတ>မ91 Instance Variable န8A Static Variable ဆiu6ပ7& Diပ?တယ#။ အ85ဒ7အတ>က# Variable
Hiding *ဖစ#Biuင#တ85 ပuPစPeတ>ကiu 0ကည#50ကည#5ရeအ1င#။
String name;
static int count;
အထက#ပ?နမRန1ကiu 0ကည#5ရင# Global Scope ထ8မ91 Instance Variable name ဆiuတ1Di6ပ7& Static Variable
count ဆiuတ1Diပ?တယ#။ 6ပ7&eတ15 setValues method ထ8မ91လ8 Argument အeနန8A name န8A count ကiu ယRထ1&
ပ?တယ#။ ဒ7လiu eရ&လiuက#တ1န8A Global Scope ထ8က Variable eတ>န8A Local Scope ထ8က Variable eတ>ဟ1
န1မည#တRသ>1&ပ?6ပ7။
ဒ?5e0က1င#5 အ85ဒ7 Scope ထ8မ91 name လiu Access လuပ#ရင# Local Scope ထ8က Variable eတ>ကiuပ8 အသuP&*ပueတ15
မ91 *ဖစ#ပ?တယ#။ အ85ဒ7လiuပ8 count လiueရ&လiuက#ရင#လ8 Local Scope ထ8က Variable ကiuပ8 အသuP&*ပueတ15မ91ပ?။
ဒ?5e0က1င#5 ဒ7eနရ1မ91 name = name ဆiuရင# Local Variable name ကiu Local Variable name န8A အစ1&eနeတ15
မ91 *ဖစ#ပ?တယ#။
ဒ?eပမ85 ဒ7 Method က Argument အeနန8A ယRထ1&တ85 တန#ဖiu&eတ>န8A Global Scope ထ8က Variable eတ>ကiu
သတ#မ9တ#eပ&eနတ1 *ဖစ#ပ?တယ#။ အ85ဒ7လiueနရ1မ(iu&မ91 Global Scope ထ8က Variable ကiu အသuP&*ပuလiuပ?က
[Link] လiu eရ&eပ&ရမ91 *ဖစ#ပ?တယ#။
Global Variable name ဟ1 Instance Variable *ဖစ#တ85အတ>က# သ\ရ8S Owner *ဖစ#တ85 this ကiu eUမ91 eရ&eပ&ရ
မ91 *ဖစ#6ပ7& [Link] = name လiueရ&eပ&ရမ91 *ဖစ#ပ?တယ#။ တဖန# count ဟ1 Static Variable *ဖစ#6ပ7& Owner
ဟ1 Class *ဖစ#တ85 အတ>က# [Link] = count လiu eရ&eပ&ရမ91 *ဖစ#ပ?တယ#။
Variable Hiding မ*ဖစ#တ85 eနရ1eတ>မ91 ဆiuရင#eတ15 Class တစ#ခuထ8က Variable eတ>ကiu Owner ထည#56ပ7& မeရ&
လ8 ရeနမ91 *ဖစ#6ပ7&၊ Variable Hiding *ဖစ#မ9သ1 Owner ကiu ထည#56ပ7& eရ&eပ&ရမ91 *ဖစ#ပ?တယ#။
Methods
Java ဘ1သ1ရပ#မ91 Utility Function eတ>၊ Object eတ>ရ8S Behavior eတ>ကiu eဖL*ပဖiuအတ>က# Method eတ>ကiu
အသuP&*ပuပ?တယ#။ Variable eတ>တuန#&ကလiuပ8 Method eတ>မ91လ8 Class eတ>မ91 သuP&မ91လ1& Object eတ>မ91 သuP&
မ91လ1&ဆiu6ပ7& Static Method န8A Instance Method eတ>ဆiu6ပ7& ခ>8*ခ1&ထ1&ပ?တယ#။
1. Return Type
2. Method Name
3. Argument List
Method eတ>ကiu eရ&သ1&တ85eနရ1မ91 Class Body အထ8မ91eရ&သ1&ရပ?တယ#။ Java ဘ1သ1ရပ#မ91 Class eတ>
ရ8S အ*ပင#မ91 Method eတ>ကiu eရ&သ1&လiu မရပ?ဘR&။ ဒ?5အ*ပင# အ*ခ1&eသ1 Code Block eတ>ထ8မ91လ8 Method
eတ>ကiu eရ&သ1&လiu မရBiuင#ပ?ဘR&။
eရ&သ1&မယ#ဆiuရင# [1. Return Type] [2. Method Name] [3. Argument List] [4. Method Body] ဆiu6ပ7&
eရ&သ1&ရမ91 *ဖစ#ပ?တယ#။ အန8ဆuP& အထက#ပ?အခ(က#eတ>ပ?တယ#ဆiuရင# Method အeနန8A Compiler ကeန
အသiအမ9တ#*ပuမ91 *ဖစ#ပ?တယ#။ ဒ7eနရ1မ91 Method Name ကeတ15 Method ရ8S န1မည#*ဖစ#6ပ7& Method Body
ကeတ15 လuပ#eဆ1င#ခ(က#eတ>ကiu eရ&သ1&ရမ91 *ဖစ#တ85 အတ>က# အeထ>အထR& မeဖL*ပeတ15ပ8 Return Type န8A
Argument List အe0က1င#&ကiuပ8 eဖ1#*ပသ>1&ပ?မယ#။
Return Type
Method eတ>ကiu eရ&သ1&တ85 အခ?မ91 အ85ဒ7 Method ကiu Invoke လuပ#တ85အခ?မ91 ဘ1ကiu *ပန#eပ&ရမလ8 ဆiuတ85
Return Type ကiu သတ#မ9တ#eပ&ဖiuလiuအပ#ပ?တယ#။ တကယ#လiu Method တစ#ခuကiu Invoke လuပ#6ပ7&တ85 အခ?မ91 int
type ကiu *ပန#6ပ7& လiuခ(င#တယ#ဆiuရင# Return Type eနရ1မ91 int လiueရ&ရ6ပ7& String ကiu လiuခ(င#တယ#ဆiuရင# String
လiueရ&ရပ?မယ#။
6ပ7&eတ15 Method ထ8က eန1က#ဆuP& Statement ရ8S eန1က#မ91 return ဆiu6ပ7& သတ#မ9တ#ထ1&တ85 Type ရ8S တန#ဖiu&ကiu
Return လuပ#eပ&ရမ91 *ဖစ#ပ?တယ#။ အ85ဒ7 Statement ကiu Return Statement လiu eခLပ?တယ#။ Method ထ8က
Return Statement ရ8S eန1က#မ91 ဘ1ကuဒ#မ9 eရ&သ1&လiu မရBiuင#ပ?ဘR&။
ဆက#လက#6ပ7& ဘယ#လiu Method eတ>က Return လuပ#ဖiuလiu6ပ7& ဘယ#လiu Method eတ>က Return လuပ#စရ1မလiuဘR&
လ8 ဆiuတ1ကiu ဆက#လက#6ပ7& စ]#&စ1&သ>1&0ကရeအ1င#။ Utility Function ပ8e*ပ1e*ပ1 Object ရ8S Behavior လiuပ8
e*ပ1e*ပ1 Method eတ>ဆiuတ1 လuပ#eဆ1င#မ-eတ>ကiu eဆ1င#ရ>က#eပ&Biuင#တ85 အစiတ#အပiuင#&eတ> *ဖစ#ပ?တယ#။
ကOန#eတ1#တiu Student Object ကiu အသuP&*ပuBiuင#ဖiu Student Class ကiu eရ&သ1&eနတယ# ဆiu0ကပ?စiu။ အ85ဒ7 Class
ထ8မ91 Instance Variable အeနန8A String Type name ဆiuတ85 Variable Diပ?တယ#။
ဒ7eနရ1မ91 Student Object ကeန name ကiu *ပန#eပ&Biuင#တ85 Behavior န8A Student Object ကiu မiတ#ဆက#စ1ကiu
Console eပLမ91 Print လuပ#Biuင#တ85 Behavior eတ>ကiu ထည#5eပ&ဖiuလiuလ1တ85 အခ?ကiu စ]#&စ1&0ကည#5ပ?။ ကOန#eတ1#တiu
Method eတ>ကiu eရ&ဖiu လiuအပ#လ1ပ?6ပ7။
အထက#ပ? အတiuင#& Student Object ရ8S name ကiu *ပန#eပ&စရ1လiuတ85 getName() Method မ91eတ15 Return
Type eနရ1မ91 name ရ8S Type *ဖစ#တ85 String ကiu eရ&သ1&ထ1&ရပ?တယ#။ eန1က#6ပ7& Console eပLမ91 Greeting
ကiu Print လuပ#^uPသ1လiuတ85 printGreeting() Method မ91eတ15 Return *ပန#စရ1မလiuတ85 အတ>က# void လiu eရ&သ1&
eပ&ဖiuလiuအပ#ပ?တယ#။ တစ#*ခ1& Language eတ>မ91လiu Return *ပန#စရ1မလiuတ85 အတ>က# ဘ1မ9 မeရ&ပ8ထ1&လiu မရ
ပ?ဘR&။ မ*ပန#ဘR&ဆiuရင#လ8 void ဆiu6ပ7& eရ&eပ&ရမ91 *ဖစ#ပ?တယ#။
ဒ?5e0က1င#5 Method eတ>ကiu eရ&သ1&တ85 အခ?မ91 အ85ဒ7 Method ကiu သuP&6ပ7&တ85 အခ?မ91 တစ#ခuခuကiu *ပန#ရခ(င#တ1လ1&
ဆiuတ1ကiu အရင#ဆuP& စ]#&စ1&ရပ?မယ#။ *ပန#လiuခ(င#တယ#ဆiuရင#လ8 ဘယ# Type မ(iu&ကiu လiuခ(င#တ1လ8ဆiuတ1ကiu ဆuP&*ဖတ#
ရပ?မယ#။ 6ပ7&မ9 လiuခ(င#တ85 Type ကiu Return Type အeနန8A သတ#မ9တ#eပ&ရပ?မယ#။ Return *ပန#မလiuခ(င#eတ15ဘR&ဆiu
ရင#eတ15 void ကiu Return Type အeနန8A eရ&သ1&eပ&ရမ91ပ?။
Return Statement ကiu eရ&သ1&တ85eနရ1မ91လ8 သတ#မ9တ#ထ1&တ85 Return Type န8A ထပ#တRဒ?မ9မဟuတ# Sub Type
eတ>ဆiuရင# Return Value အeနန8A အသuP&*ပuBiuင#ပ?တယ#။ ဆiu0ကပ?စiu Student Class ဟ1 Person Class ရ8S Sub
Class ဆiuရင# Person Type ကiu Return *ပန#လiuတ85 Method ထ8မ91 Student Type ကiu Return Value အeနန8A
အသuP&*ပuBiuင#ပ?တယ#။ အ85ဒ7လiu Sub Type ကiu Return *ပန#Biuင#တ1က Covariant Return လiueခL6ပ7& Java SE 5
ကeန စတင# အသuP&*ပuလ1Biuင#တ1 *ဖစ#ပ?တယ#။
Argument List
Method တစ#ခuရ8S Argument ဆiuတ1ဟ1 အ85ဒ7 Method ထ8ကeန အသuP&*ပuဖiu အတ>က#လiuအပ#တ85 eဒတ1eတ>ကiu
ရယRBiuင#ဖiu အတ>က# eရ&သ1&ရတ85 Variable eတ> *ဖစ#0ကပ?တယ#။ ဆiu0ကပ?စiu၊ ကOန#eတ1#တiu int ၂ ခuကiu eပ?င#&6ပ7&
ရလဒ#ကiu *ပန#eပ&Biuင#တ85 Method တစ#ခuကiu eရ&eနတ85 အခ?မ91 int variable ၂ ခuကiu Method ထ8ကeန မသiBiuင#ရင#
eရ&လiu ရမ91 မဟuတ#ပ?ဘR&။ အ85ဒ7 int B9စ#ခuကiu Method Argument အeနန8A eရ&သ1&6ပ7& Method ထ8ကeန အသuP&*ပu
Biuင#မ91 *ဖစ#ပ?တယ#။
double makeDouble(double d) {
return d * 2;
}
Compiler န8A Runtime ကeန Method ကiu Identified လuပ#eနတ85 အစiတ# အပiuင#&eတ>ကiu Method Signature လiu
eခLပ?တယ#။ Method Signature မ91 Method Name န8A Argument List တiu ပ?ဝင#0ကပ?တယ#။ Java ဘ1သ1ရပ#
မ91က Method Name တReပမ85 Method Signature မတRရင# Method တစ#ခuစ7လiu သတ#မ9တ#ပ?တယ#။
အထက#ပ? နမRန1ထ8မ91 Method B9စ#ခuလuP& န1မည#တReပမ85 Argument eတ>မတRပ?ဘR& ဒ?5e0က1င#5 Java Compiler
က Method တစ#ခuစ7လiu *မင#ပ?တယ#။ ဒ?ကeတ15 Method Argument Type မတRတ85အတ>က# Method Signature
မတRဘR&လiu သတ#မ9တ#သ>1&တ1ပ?။
JRE ထ8မ91ပ?တ85 Java Standard API eတ>မ91လ8 Method Overloading ကiu အမ(1&အ*ပ1& အသuP&*ပueရ&သ1&ထ1&
တ1ကiu eတ>Zရပ?တယ#။
Type of Methods
Instance Method
Instance Method eတ>ဟ1 Object eတ>ရ8S Behavior အeနန8A အသuP&*ပuလiuတ85 အခ?မ91 eရ&သ1&ရတ85 Method
eတ> *ဖစ#ပ?တယ#။ Class တစ#ခuကiu eရ&သ1&ရတ85 အဓiက ရည#ရ>ယ#ခ(က#ဟ1 Object eဆ1က#ဖiu *ဖစ#တ85 အတ>က#
Variable eတ>တuန#&ကလiuပ8 Class တစ#ခuအတ>င#&မ91 Default အတiuင#&eရ&သ1&ထ1&တ85 Method eတ>ဟ1
Instance Method eတ> *ဖစ#0ကပ?တယ#။
Instance Method eတ>ဟ1 Object eတ>န8A သက#ဆiuင#တ85 Method eတ> *ဖစ#တ85 အတ>က# အသuP&*ပuလiuတ85 အခ?မ91
Object eတ>ကတဆင#5 အသuP&*ပuရမ91 *ဖစ#ပ?တယ#။ ထiuအ*ပင# Object eတ>ရ8S ကiuယ#ပiuင# State eတ>*ဖစ#တ85 Instance
Variable eတ>ကiuလ8 Instance Method ထ8ကeန Access လuပ#6ပ7& အသuP&*ပuBiuင#ပ?တယ#။ တဖန# Class တစ#ခu
အတ>င#&မ91Diတ85 Instance Method အခ(င#&ခ(င#&လ8 အသuP&*ပuBiuင#ပ?တယ#။
ဒ7eနရ1မ91eတ15 Instance Method eတ>ကiu ဘယ#လiu eရ&ရမယ#ဆiuတ1န8A Instance eတ>ကiu ဘယ#လiu eခLသuP&ရမယ#
(Invoke) ဆiuတ1ကiuပ8 eလ5လ1သ>1&0ကပ?မယ#။ Instance Method eတ>ဟ1 Object eတ>န8A ဆiuင#တ85 Method eတ>
*ဖစ#တ85 အတ>က# အ*ခ1& Class ထ8ကeခLတ85အခ?၊ ဒ?မ9မဟuတ# Main Method လiu Static Method ထ8ကeန eခLခ(င#
တ85 အခ?eတ>မ91 Object eဆ1က#6ပ7& Object ကeနပ8 eခLလiuရမ91 *ဖစ#ပ?တယ#။
ဒ?5e0က1င#5 အထက#ပ? နမRန1ထ8မ91 Instance Method eတ>ကiu Main Method ထ8ကeန Invoke လuပ#ခ(င#တ85
အတ>က# demo ဆiuတ85 Object ကiu အရင#တည#eဆ1က#6ပ7&က1မ9 [Link](“Java”) ဆiu6ပ7& Invoke
လuပ#eနတ1*ဖစ#ပ?တယ#။ [Link](array) လiu eရ&ထ1&တ1လ8 Instance Method *ဖစ#တ85 အတ>က#
Object ကeန Invoke လuပ#eနရတ1*ဖစ#ပ?တယ#။
ဒ?eပမ85 Class တစ#ခuထ8မ91Diတ85 Instance Method အခ(င#&ခ(င#& Invoke လuပ#လiuတ85အခ?မ91eတ15 Object တစ#ခuထ8
မ91 သuP&မည#5 Method အခ(င#&ခ(င#& *ဖစ#တ85အတ>က# Object eဆ1က#စရ1မလiuအပ#ပ8 အသuP&*ပuလiuရeနတ1*ဖစ#တယ#။
showMessages() Method ထ8မ91 showMessage(name) လiueခLတ85အခ?မ91 Object eဆ1က#စရ1မလiuတ1ကiu
eတ>Zရပ?မယ#။
ဒ?5အ*ပင# eUမ91eဖL*ပခ85သလiu Instance Method ထ8ကeန အ*ခ1&eသ1 Instance Method eတ>ကiuလ8 အသuP&*ပuBiuင#
ပ?တယ#။
Static Method
Class ထ8မ91 ထ1&6ပ7& Utility Function eတ>အeနန8A အသuP&*ပuခ(င#တ85 Method eတ>ကiu Static Method အeနန8A
eရ&သ1&ရမ91 *ဖစ#ပ?တယ#။ Method eတ>ကiu Default အတiuင#&eရ&သ1&ထ1&မယ#ဆiuရင# Instance Method eတ>
*ဖစ#ကuန#ပ?တယ#။ Static Method အ*ဖစ# အသuP&*ပuလiuပ?က static ဆiuတ85 Non Access Modifier ကiu Return Type
ရ8S eUမ91 eရ&သ1&eပ&ရမ91 *ဖစ#ပ?တယ#။
ဆက#လက#6ပ7& Static Method eတ>ကiu ဘယ#လiueရ&မလ8၊ Static Method eတ>ကiu ဘယ#လiu Invoke လuပ#မလ8 ဆiu
တ1န8A Static Method eတ>က အသuP&*ပuBiuင#တ1eတ>က ဘ1eတ>လ8 ဆiuတ1ကiu eလ5လ1သ>1&0ကပ?မယ#။
အထက#ပ? ကuဒ#နမRန1ထ8မ91 eရ&သ1&ထ1&တ85 show() Method B9စ#ခuလuP&မ91 static ဆiuတ85 Modifier ကiu eရ&သ1&
ထ1&တ85 အတ>က# Method B9စ#ခuလuP& Static Method eတ> *ဖစ#0ကပ?တယ#။ အeပLက show() Method ထ8မ91eတ15
FORMAT ဆiuတ85 Static Variable ကiu အသuP&*ပuထ1&ပ?တယ#။ Static Method eတ>ဟ1 Class တစ#ခuထ8မ91 Diတ85
Static Member eတ>ကiu အသuP&*ပuBiuင#ပ?တယ#။
ဒuတiယ show() Method ထ8မ91eတ15 for loop ထ8မ91 Static Method eန1က#တစ#ခuကiu eခLသuP&eနပ?တယ#။ Class
တစ#ခuထ8မ91Diတ85 Member အခ(င#&ခ(င#&ဆiuပ?က Owner ကiu eရ&သ1&စရ1မလiuပ8 တiuက#^iuက# eရ&သ1& အသuP&*ပuBiuင#ပ?
တယ#။ ဆက#လက#6ပ7& အ*ခ1& Class တစ#ခuကeန Static ကiu အသuP&*ပuပuPကiu eလ5လ10ကရeအ1င#။
StaticMethodTest Class ထ8ကeန StaticMethodDemo Class ရ8S Static Method ကiu အသuP&*ပuမယ#ဆiuရင#
eတ15 Owner *ဖစ#တ85 Class ကeန တဆင#5 eခLယRအသuP&*ပuရမ91 *ဖစ#ပ?တယ#။
Constructor
Constructor ဆiuတ1 Class ကeန Object ကiu တည#eဆ1က#တ85အခ?မ91 အသuP&*ပuတ85 Special Method တစ#မ(iu&
*ဖစ#ပ?တယ#။ Constructor eတ>ကiu Object တစ#ခuကiu တည#eဆ1က#တ85 eနရ1မ91 တစ#Xကiမ#သ1 အသuP&*ပu6ပ7& Object
*ဖစ#သ>1&6ပ7&ရင#eတ15 Constructor eတ>ကiu အသuP&မ*ပueတ15ပ?ဘR&။ Constructor eတ>ကiu Instance Variable eတ>
ကiu Initialize လuပ#တ85အခ?မ91 အသuP&*ပuဖiu *ပင#ဆင#ထ1&တ1 *ဖစ#ပ?တယ#။
Constructor ရ8S န1မည#ဟ1 Class န1မည#န8A ထပ#တRတRည7ရပ?မယ#။ 6ပ7&eတ15 Constructor မ91 Return Type eရ&
လiuမရပ?ဘR&။ Class တစ#ခuအတ>က# Constructor ကiu eရ&သ1&တ85 အခ?မ91 Argument List မတRတ85 Construcotr
eတ>ကiu Overload လuပ#6ပ7& eရ&သ1&Biuင#ပ?တယ#။
Default Constructor
eအ1က#eဖL*ပပ?ကuဒ#ထ8မ91လiu new Student() ဆiu6ပ7&eရ&သ1&လiuက#တ1ဟ1 Student Class ရ8S Constructor ကiu
လ9မ#&eခL6ပ7& Object ကiu တည#eဆ1က#လiuက#တ1ပ8 *ဖစ#ပ?တယ#။
ဒ?eပမ85 eသeသ*ခ1*ခ10ကည#5မယ#ဆiuရင# Student Class ထ8မ91 Student() ဆiuတ85 Constructor ကiu eရ&မထ1&ပ?
ဘR&။ ဒ?eပမ85 new Student() ဆiu6ပ7& eရ&လiuရeနပ?တယ#။ ဒ?ဟ1 Student Class ကiu Compile လuပ#တ85အခ?မ91
Java Compiler ကeန Constructor မပ?တ85 Class eတ>ဆiuရင# Default Constructor တစ#ခuကiu ထည#5eပ&eနလiuပ8
*ဖစ#ပ?တယ#။
public Student() {
super();
}
Default Constructor eတ>ဟ1 public *ဖစ#6ပ7& Argument မပ?ပ?ဘR&။ 6ပ7&eတ15 အတ>င#&ပiuင#&မ91 super() ဆiuတ85 ကuဒ#
တစ#e0က1င#&ကiu eရ&သ1&ထ1&မ91 *ဖစ#ပ?တယ#။ တကယ#လiuသ1 မiမiတiueရ&သ1&ထ1&တ85 Class အတ>င#&မ91
Constructor တစ#ခuခuကiu eရ&သ1&ထ1&6ပ7ဆiuရင#eတ15 Compiler ကeန Default Constructor ကiu ထည#5eပ&eတ15
မ91 မဟuတ#ပ?ဘR&။
Constructor ကiuဘ-လiueရ1ရတ-လ9
Constructor eတ>ဟ1 Class ကeန Object ကiu တည#eဆ1က#တ85အခ?မ91 မ*ဖစ#မeနeခLဆiuရမည#5 Special
Method eတ>*ဖစ#6ပ7&eတ15 Instance Varable eတ>န8A Instance Method eတ>ကiu အသuP&*ပuBiuင#ပ?တယ#။ ဒ?5e0က1င#5
Object eတ>ရ8S Initial State eတ>ကiu သတ#မ9တ#လiuတ85အခ?မ91 ကiuယ#တiuင# Constructor ကiu eရ&သ1&ဖiuစ]#&စ1&ရပ?
eတ15မယ#။
public Student() {
[Link] = “Aung Aung”;
}
}
eဆ1က#သမT Object တiuင#&ရ8S name ဟ1 Aung Aung *ဖစ#သ>1&မယ#လiu e*ပ1စရ1Dieပမ85၊ အထက#ပ? နမRန1ထ8မ91လiu
Student ရ8S name ကiu Initialize လuပ#လiuတ85အခ?မ(iu&မ91 Conatructor ကiu အသuP&*ပuBiuင#ပ?တယ#။ Object မeဆ1က#မ97
Instance Variable eတ>ကiu Initialize လuပ#ဖiuအတ>က# Instance Block eတ>ကiuလ8 အသuP&*ပuBiuင#ပ?တယ#။
{
[Link] = “Aung Aung”;
}
}
Constructor Overloading
Class တစ#ခuအတ>င#&မ91 Argument List မတRတ85 Constructor eတ>ကiu eရ&သ1&*ခင#&ကiu Constructor
Overloading လiueခLပ?တယ#။ Constructor ဆiuတ1က Class ကeန Object ကiu တည#eဆ1က#တ85 အခ?မ91
အသuP&*ပu6ပ7& Instance Variable eတ>ကiu Initialize လuပ#လiuတ85 အခ?မ91 အသuP&*ပueလ5Diပ?တယ#။
Object eတ>ကiu တန#ဖiu&အမ(iu&မ(iu&eပ&6ပ7& Object eဆ1က#လiuတ85 အခ?မ91 Constructor Overloading ကiu အသuP&*ပu
Biuင#ပ?တယ#။ Student Object မ91 name န8A age ကiu instance variale အeနန8A ပiuင#ဆiuင#တယ# ဆiu0ကပ?စiu။ Student
Object ကiu ဘ1 Argument မ9 မeပ&ပ8တည#eဆ1က#လiuတ85 အခ?လ8Diမယ#။ 6ပ7&eတ15 name Xက7&ပ8 eပ&6ပ7&eဆ1က#
ခ(င#တ85အခ?လ8 Diမယ#၊ age Xက7&ပ8 eပ&6ပ7&eဆ1က#ခ(င#တ85 အခ?လ8Diမယ#။ name eက1 age ပ?eပ&6ပ7& eဆ1က#ခ(င#တ85
အခ?လ8Diပ?တယ#။ ဒ7လiu အခ?မ(iu&မ91 Constructor Overloading ကiu အသuP&*ပu6ပ7& Constructor eတ>ကiu *ပင#ထ1&Biuင#
ပ?တယ#။
public Student() {}
တကယ#လiu ဘ1 Argument မ9 မeပ&ပ8 Object eဆ1က#ခ(င#ရင# Student s = new Student() လiu eရ&သ1&Biuင#ပ?
တယ#။ 6ပ7&eတ15 Name ကiu eပ&6ပ7& Object ကiu တည#eဆ1က#လiuလ(င# Student s = new Student(“Aung Aung”)
လiu eရ&သ1&Biuင#ပ?တယ#။
Class eတ>အခ(င#&ခ(င#&ရ8S Visibility န8A Accessibility ကiu Package eတ>န8A Access Modifier တiuကiu အသuP&*ပu6ပ7&
သတ#မ9တ# eရ&သ1&Biuင#ပ?တယ#။
Packages
Package ဆiuတ1က Java Programming ဘ1သ1ရပ#မ91 အသuP&*ပueနတ85 Name Space န8A Visibility ကiu
သတ#မ9တ#eပ&Biuင#တ85 နည#&လမ#&တစ#မ(iu&*ဖစ#ပ?တယ#။ အလ>ယ#e*ပ1ရမယ#ဆiuရင# Packaege ဆiuတ1ဟ1 Computer
ထ8က Folder တစ#ခuန8A ဆင#တRပ?တယ#။ Folder တစ#ခuထ8မ91 န1မည#တR File B9စ#ခuကiu တည#eဆ1က#လiu မရBiuင#သလiu
Java မ91လ8 တစ#eနရ1ထ8မ91 Class B9စ#ခuကiu တည#eဆ1က#လiu မရBiuင#ပ?ဘR&။
တကယ#လiu Package သ1မDiခ85ရင# Java Class eတ>ကiu န1မည#eပ&တ85 eနရ1မ91 အeတ1#eလ&ခက#ခ8သ>1&မ91 *ဖစ#ပ?
တယ#။ ဒ7လiueနရ1မ(iu&မ91 Package eတ>ကiu အသuP&*ပu6ပ7& Class eတ>ကiu ခ>8*ခ1&သတ#မ9တ#eပ&Biuင#ပ?တယ#။ Folder မ
တRရင#eတ15 န1မည#တR File eတ>ကiu eရ&သ1လiuရသလiuပ8 Package မတRရင#eတ15 န1မည#တR Java Class eတ>ကiu
eရ&သ1&လiuရလ1Biuင#ပ?တယ#။
ဒ?5အ*ပင# Java Package eတ>ဟ1 Class eတ> အခ(င#&ခ(င#&ရ8S Visibility ကiuလ8 သတ#မ9တ#eပ&Biuင#ပ?တယ#။
Visibility of Classes
Program eတ>ကiu eရ&သ1&တ85 eနရ1မ91 Class eတ>ကiu တစ#ခuထက#မက အသuP&*ပu6ပ7& eရ&သ1&eလ5Diပ?တယ#။
Object တစ#ခuရ8S Member အeနန8A အ*ခ1& Object eတ>ကiu အသuP&*ပueနBiuင#ပ?တယ#။ တနည#&ဆiuရမယ# ဆiuရင# Class
တစ#ခuကiu တစ#*ခ1& Class eတ>ထ8မ91 Variable eတ>ရ8S Type အeနန8AအသuP&*ပueနBiuင#ပ?တယ#။ ဒ7လiu အသuP&*ပuတ85
eနရ1မ91 အသuP&*ပueနတ85 Class ကiu လက#Di အသuP&*ပueနတ85 Class ကeန *မင#eနမ9သ1 အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။
အထက#ပ? Diagram ထ8မ91 [Link] Package eအ1က#မ91 entity န8A service Package တiuDiပ?တယ#။ တဖန#
entity Package ထ8မ91 Student, Course န8A Registration Class တiuDi0က6ပ7& service Package ထ8မ91
RegistrationService Class တiuDi0ကပ?တယ#။
Package eတ>ဟ1 Class eတ>ရ8S Visibility ကiu သတ#မ9တ#eပ&Biuင#တ1 *ဖစ#တ85 အတ>က# Package မတReတ15တ1န8A
Class eတ>ရ8S Visibility ကလ8 က>8*ပ1&သ>1&မ91 *ဖစ#ပ?တယ#။ Package တစ#ခuအတ>င#&မ91Diမယ#ဆiuရင# Class eတ>
ဟ1 အခ(င#&ခ(င#&*မင#နရမ91 *ဖစ#တ85အတ>က# Registration ထ8ကeန Student န8A Course တiuကiu *မင#eနရမ91 *ဖစ#ပ?
တယ#။
Learning Java 25 မင#&လ>င#
Java Developer Class
package [Link];
Registration, Student န8A Course eတ>ဟ1 Package တစ#ခuအတ>င#&မ91Diတ85 အတ>က# Student န8A Course တiuကiu
Registration ထ8မ91 ဒ7အတiuင#&ပ8 eရ&သ1&Biuင#မ91 *ဖစ#ပ?တယ#။
package [Link];
package [Link];
Qualified Name ကiu eရ&သ1&တ85 eနရ1မ91 Package Name န8A Class Name တiuကiu တ>86ပ7& eရ&သ1&ရမ91 *ဖစ#ပ?
တယ#။ Qualified Name ကiueရ&တ85eနရ1မ91 Type ကiu eရ&တ85 eနရ1တiuင#& Package Name eတ>ပ? eရ&eနရမ91
*ဖစ#တ85 အတ>က# ကuဒ#eတ>မ(1&လ1eလeလ Package Name eတ>မ(1&လ16ပ7& ကuဒ#eတ>ကiu ဖတ#ရတ1 လ>ယ#ကRမ91
မဟuတ#eတ15ပ?ဘR&။
တစ#*ခ1& Package ထ8မ91 Diတ85 Class eတ>ကiu Packate တစ#ခuထ8မ91 Diသက85သiu အသuP&*ပuလiuပ?က Import
Statement eတ>ကiu eရ&သ1& အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။
Import Statements
Import Statement eတ>ကiu Package Statement ရ8S eအ1က# Class Declaration ရ8S အeပLမ91 eရ&သ1&ရမ91
*ဖစ#ပ?တယ#။ Import Statement eတ>ကiu Class ရ8S eအ1က#မ91တiu Class ထ8မ91တiu eရ&လiu မရပ?ဘR&။ Import လuပ#
လiuတ85 Class ကiu Qualified န8A eရ&သ1&ရမ91 *ဖစ#6ပ7&၊ Import လuပ#6ပ7&တ1န8A Package Name eရ&စရ1မလiueတ15ပ8
Class Name န8A Type eတ>ကiu အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။ Import Statement eတ>ကiu eရ&သ1&တ85 eနရ1မ91
import [Qualified Name] လiu eရ&သ1&ရမ91 *ဖစ#ပ?တယ#။
package [Link];
import [Link];
အထက#ပ?အတiuင#& Registration Class ကiu Import လuပ#ထ1&ပ?က Package Name ကiu မeရ&ပ8 Registration
Class ကiu Package တစ#ခuထ8မ91Diတ85 အတiuင#& eရ&သ1&လiuရမ91 *ဖစ#တယ#။ အ*ခ1&eနရ1မ91 Type အ*ဖစ#သuP&မယ#ဆiu
ရင#လ8 eရ&စရ1လiueတ15ပ?ဘR&။တဖန# Package တစ#ခuထ8က Class eတ>ကiu Import လuပ#ခ(င#တယ#ဆiuရင# Wild
Card (*) ကiu အသuP&*ပu6ပ7&လ8 Import လuပ#Biuင#မ91 *ဖစ#ပ?တယ#။
package [Link];
import [Link].*;
အထက#ပ?အတiuင#& [Link].* လiu Wild Card ကiu အသuP&*ပu6ပ7& Import လuပ#ထ1&မယ#ဆiuရင# [Link]
Package eအ1က#က Class eတ>အ1&လuP&ကiu Import လuပ#Biuင#မ91 *ဖစ#ပ?တယ#။ ဒ?eပမ85 တစ#ခuသတiထ1&ဖiu လiuတ1က
Wild Card Import ဟ1 Current Package eအ1က#မ91Diတ85 Class eတ>ကiuသ1 Import လuပ#Biuင#တ1*ဖစ#6ပ7& Sub
Package eအ1က#က Class eတ>ကiueတ15 Import လuပ#Biuင#မ91 မဟuတ#ပ?ဘR&။
Java Language ကiu eရ&သ1&တ85eနရ1မ91 အသuP&မ(1&တ85 Class eတ> Interface eတ> Enum eတ>ကiu [Link]
Package eအ1က#မ91 eရ&သ1&ထ1&0ကပ?တယ#။ 6ပ7&eတ15 [Link] Package eအ1က#က Class eတ>ကiu Import
လuပ#စရ1မလiuပ8 eရ&သ1&Biuင#eအ1င# aခင#&ခ(က# အeနန8A ထ1&eပ&ထ1&ပ?တယ#။ ဒ?5e0က1င#5 String တiu System တiuကiu
eရ&သ1&တ85 eနရ1မ91 Import လuပ#စရ1မလiuပ8 eရ&သ1&Biuင#တ1 *ဖစ#ပ?တယ#။
Primitive Type ရ8S Wrapper Class eတ>၊ String န8A StringBuffer, StringBuilder Class eတ>၊ အသuP&မ(1&တ85
Exception Class eတ>ကiu [Link] Package eအ1က#မ91ထ1&Diတ85 အတ>က# အ85ဒ7 Class eတ>ကiu အသuP&*ပuမယ#
ဆiuရင# Import လuပ#စရ1မလiuအပ#ပ?ဘR&။
Static Import
Java SE 5 အeရ1က#မ91 Static Variable eတ>န8A Static Method eတ>ကiuလ8 Static Import Statement ကiu
အသuP&*ပu6ပ7& Import လuပ#လiuရလ1ပ?တယ#။ import static [QualifiedName of Class].[member] ဆiu6ပ7& eရ&သ1&
ရမ91 *ဖစ#ပ?တယ#။ Static Import Statement eတ>မ91လ8 Wild Card ကiu အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။
[Link](MAX_VALUE);
}
}
Static Member eတ>ကiu Import လuပ#ထ1&*ခင#&အ1&*ဖင#5 တစ#*ခ1& Class ထ8မ91Diတ85 Static Variable eတ>န8A Static
Method eတ>ကiu မiမi Class ထ8က Member eတ>လiu Owner *ဖစ#တ85 Class Name ကiu eရ&စရ1မလiuပ8 eရ&သ1&Biuင#
မ91 *ဖစ#ပ?တယ#။ အထက#ပ? နမRန1ထ8မ91လiu Integer.MAX_VALUE န8A Wild Card န8A Import လuပ#ထ1&တ85
Double.MAX_VALUE တiuDiခ85မယ#ဆiuရင# အတiအက( Import လuပ#ထ1&တ85 Integer.MAX_VALUE ကiu အသuP&*ပu
သ>1&မ91 ပ?တယ#။ double maxDouble = MAX_VALUE လiu double variable မ91 အစ1&ထiu&မယ#ဆiuရင#eတ15
Wild Card ထ8က Double.MAX_VALUE ကiu အသuP&*ပuမ91 *ဖစ#ပ?တယ#။
Access Modifiers
Class eတ>န8A Class Members eတ>ရ8S Access လuပ#Biuင#ခ>င#5ကiu သတ#မ9တ#eပ&eနတ1ကeတ15 Access Modifier
eတ>ပ8 *ဖစ#0ကပ?တယ#။ Class eတ>န8A Member eတ>မ91 Access Modifier eတ>ကiu မeရ&သ1&ထ1&ရင# အ85ဒ7 Class
တည#Dieနတ85 Package ထ8မ91သ1 အသuP&*ပuလiuရမ91 *ဖစ#ပ?တယ#။
တကယ#လiu တစ#*ခ1& Package eတ>ကပ? အသuP&*ပueစခ(င#တ85အခ? ဒ?မ9မဟuတ# Package တစ#ခuထ8မ91 Diတ85 Class
eတ> အခ(င#&ခ(င#& Access လuပ#ပiuင#ခ>င#5ကiu သတ#မ9တ#လiuတ85 အခ?မ(iu&မ91 Access Modifier eတ>ကiu သuP&6ပ7& သတ#မ9တ#
eရ&သ1&Biuင#မ91 *ဖစ#ပ?တယ#။
Modifiers Descriptions
default Access Modifier အ1& eရ&သ1&ထ1&*ခင#&မDiပ?က Package အတ>င#&Di Class
မ(1&မ9 ဆက#သ>ယ#Biuင#မည#
Class eတ>န8A Class Member eတ>*ဖစ#0ကတ85 Variable eတ>၊ Method eတ>၊ Constructor eတ>န8A အ*ခ1& Nested
Member eတ>မ91 Access Modifier ကiu eရ&သ1&6ပ7& အသuP&*ပuပiuင#ခ>င#5ကiu သတ#မ9တ#eပ&Biuင#ပ?တယ#။ ဘ1e0က1င#5
Access လuပ#ပiuင#ခ>င#5ကiu လiuအပ#ရတ1လ8 ဘယ#လiueရ&သ1&သင#5သလ8န8A ပတ#သက#6ပ7&eတ15 OOP ရ8S Encapsulation
အe0က1င#&e*ပ1တ85 အခ?မ91လ8 ထပ#မPeဖL*ပသ>1&မ91 *ဖစ#ပ?တယ#။
Default Access
Class eတ>န8A Class Members eတ>မ91 Access Modifier eတ>ကiu eရ&သ1&ထ1&*ခင#& မDiပ?က Default Access
ကiu ရDiမ91 *ဖစ#ပ?တယ#။ Package တစ#ခuအတ>င#&မ91 Diတ85 အ*ခ1& Class eတ>ကeန ဆက#သ>ယ# အသuP&*ပuBiuင#မ91 *ဖစ#
ပ?တယ#။ ဒ?eပမ85 အ*ခ1& Package eတ>ရ8S Class eတ>ကeနeတ15 *မင#ရမ91 မဟuတ#တ85 အတ>က# အသuP&*ပuခ>င#5 Diမ91
မဟuတ#ပ?ဘR&။
package [Link];
class StringConverter {
အထက#ပ?အတiuင#& StringConverter Class မ91 Access Modifier ကiu eရ&မထ1&ပ?က Default Access *ဖစ#eန
6ပ7& [Link] Package အတ>င#&မ91Diတ85 အ*ခ1& Class eတ>ကသ1 အသuP&*ပuBiuင#မ91 Diပ?တယ#။ ဒ7လiu
Public Access
Class eတ>န8A Class Members eတ>မ91 Public Access Modifier ကiu အသuP&*ပu6ပ7&eရ&သ1&ထ1&ရင#eတ15 အ85ဒ?
Class eတ> Member eတ>ဟ1 Public Access ကiu ရDiမ91 *ဖစ#ပ?တယ#။ Public Access ဆiuတ1ကeတ15 မည#သ
ည#5 Class က မဆiu Access လuပ#ပiuင#ခ>င#5ရDiတ1ကiu ဆiuလiuတ1ပ?။
package [Link];
အထက#ပ?အတiuင#& StringConverter Class န8A getUnicode() Method မ91 public Access Modifier ကiu public
Access Modifier ကiu eရ&သ1&ထ1&တ85 အတ>က# အ*ခ1& Package eတ>ကeနလ8 Access လuပ#6ပ7& အသuP&*ပuBiuင#မ91
*ဖစ#ပ?တယ#။
တကယ#လiu getUnicode() Method ကiu public လuပ#ထ1&6ပ7& StringConverter Class ကiu Default Access
အတiuင#&ထ1&မယ#ဆiuရင#eတ15 Class ကiu မ*မင#ရတ85 အတ>က# Method ကiu အသuP&*ပuBiuင#မ91 မဟuတ#ပ?ဘR&။ Class
ထ8က Member eတ>ကiu အသuP&*ပuBiuင#ဖiuအတ>က# Class ကiuလ8 အသuP&*ပuBiuင#မ9ရမ91 *ဖစ#ပ?တယ#။
package [Link];
import [Link];
// Other Codes
}
}
Protected Access
Class တစ#ခuရ8S Member eတ>ကiu Package တစ#ခuထ8မ91 Diတ85 Class eတ>န8A Sub Classs eတ>ကသ1 အသuP&*ပueစ
ခ(င#တယ#ဆiuရင# Proteced Access Modifier ကiu အသuP&*ပuBiuင#ပ?တယ#။
package [Link];
အထက#ပ?အတiuင#& Shape Class ထ8မဟ1 width န8A height ကiu protected Access Modifier န8A eရ&သ1&ထ1&တ85
အတ>က# တစ#*ခ1& Package ထ8မ91Diတ85 Sub Class eတ>ကပ? width န8A height ကiu အသuP&*ပuလ1Biuင#မ91 *ဖစ#ပ?
တယ#။
package [Link];
အထက#ပ?နမRန1ထ8မ91လiu ShapeTest န8A Shape တiuဟ1 [Link] ဆiuတ85 Package ထ8မ91 အတRDiတ85 အတ>က#
shape object ကeန Protected Member eတ> *ဖစ#0ကတ85 [Link] န8A [Link] တiuကiu အသuP&*ပuလiuရ
eနတ1 *ဖစ#ပ?တယ#။
package [Link];
import [Link];
OtherShape Class ဟ1 Shape Class န8A Package မတRပ?ဘR&။ ဒ?eပမ85 OtherShape ဟ1 Shape Class ကiu
Extends လuပ#ထ1&ပ?တယ#။ ဒ?5e0က1င#5 OtherShape Object *ဖစ#တ85 other ကeန height ကiueက1 with ကiuပ?
Access လuပ#Biuင#6ပ7& getArea() Method ကiuလ8 အသuP&*ပuBiuင#တ1 *ဖစ#ပ?တယ#။
Protected Modifier eတ>ဟ1 Package အတ>င#&မ91လ8 အသuP&*ပuBiuင#သလiu Package အ*ပင#မ91Diတ85 Sub Class
eတ>ကeနတဆင#5လ8 အသuP&*ပuBiuင#eအ1င# eဆ1င#ရ>က#eပ&Biuင#ပ?တယ#။ ဒ?5e0က1င#5 Protected Access Modifier eတ>
ကiu Package ++ Access Modifier လiuလ8 eခLဆiuBiuင#တ1 *ဖစ#ပ?တယ#။
Private Access
လက#Di Class တစ#ခuထ8ကသ1 အသuP&*ပuBiuင#တ85 Member eတ>ကiu eရ&သ1&လiuတ85 အခ?မ(iu&မ91 Private Access
Modifier ကiu အသuP&*ပueရ&သ1&Biuင#ပ?တယ#။ Class Member eတ>မ91 private လiueရ&လiuက#တ1န8A အ85ဒ7 Member
eတ>ဟ1 လက#Di Class ထ8ကသ1 အသuP&*ပuBiuင#eတ15မ91 *ဖစ#ပ?တယ#။
package [Link];
Java မ91e*ပ1တ85 Primitive Data Type eတ>ဆiuတ1က OS ကeန *ပင#eပ&ထ1&တ85 Data Type eတ> *ဖစ#ပ?တယ#။
ဒ7လiu ကနဦ& Data Type eတ>ကiu Primitive Data Type eတ>လiu eခLတ1 *ဖစ#ပ?တယ#။
အe*ခခPအ1&*ဖင#5 Primitive Data အမ(iu&အစ1& ၃ မ(iu&Diပ?တယ#။ True န8A False ကiuပ8 eဖL*ပBiuင#တ85 Boolean ဓ
အမ(iu&အစ1&၊ စ1လuP&eတ>ကiu ကiuယ#စ1&*ပuတ85 Character အမ(iu&အစ1&eတ> န8A Number eတ>ပ8 *ဖစ#ပ?တယ#။ Number
eတ>ကiuမ9ထပ#6ပ7& အ*ပည#5ကiန#& Integer eတ>န8A ဒဿမကiန#& Floating Number eတ>ဆiu6ပ7& ခ>8*ခ1&Biuင#ပ?တယ#။
Integer eတ>အထ8မ91မ9 အသuP&*ပueနတ85 Memory အလiuက# byte, short, int, long ဆiu6ပ7&ခ>8*ခ1&6ပ7&၊ ဒသမကiန#&eတ>
ကiuလ8 float န8A double ဆiu6ပ7& ခ>8*ခ1&ပ?တယ#။
ဒ?5e0က1င#5 Java မ91 အသuP&*ပueနတ85 Primitive Data Type အ1&လuP&eပ?င# ၈ မ(iu&Diတယ#လiu e*ပ1Biuင#မ91 *ဖစ#ပ?တယ#။
Number eတ>ထ8မ91 Integer အeနန8A byte, short, int, long တiuကiu အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။ က>1*ခ1&တ1
ကeတ15 Memory eပLမ91 အသuP&*ပuBiuင#တ85 Size ပ?ပ8။ အထက#ပ?ဇယ1&မ91 eဖL*ပထ1&တ85အတiuင#& byte eတ>ဆiuရင# 8
bit + or - Integer eတ>ကiu အသuP&*ပuBiuင#မ91 *ဖစ#6ပ7& long type ဆiuရင# + or - 64 bit Integer eတ>ကiu အသuP&*ပuBiuင#မ91
*ဖစ#ပ?တယ#။
Floating Number eတ>ဆiuရင#eတ15 float န8A double type eတ>ကiu အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။ float ကeတ15 32
bit + or - Floating Number eတ>ကiu အသuP&*ပuBiuင#မ91 *ဖစ#6ပ7& double ဆiuရင#eတ15 64 bit + or - Floating
Number eတ>ကiu အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။
Character eတ>ကiu ကiuယ#စ1&*ပuတ85 char type eတ>မ91eတ15 16 bit Unicode Character eတ>ကiu အသuP&*ပuBiuင#ပ?
တယ#။ တဖန# True န8A False သ1ပiuင#တ85 boolean type eတ>မ91eတ15 true န8A false ကiuသ1 အသuP&*ပuBiuင#ပ?မယ#။
Literals
Java Source File eတ>ထ8မ91 Source Code eတ>၊ Comment eတ>န8A Variable eတ>ရ8S Value eတ>ကiu eရ&သ1&
Biuင#ပ?တယ#။ Variable eတ>ကiu Initialize လuပ#တ85အခ? ဒ?မ9မဟuတ# Variable တစ#ခuရ8S တန#ဖiu&လiu အစ1&ထiu&တ85 အခ?
မ(iu&မ91 Source Code eတ>ထ8မ91 Value eတ>ကiu တiuက#^iuက#eရ&သ1&eလ5Diပ?တယ#။ Source Code eတ>ထ8မ91
တiuက#^iuက#eရ&သ1&ထ1&တ85 Value eတ>ကiu Literals eတ>လiueခLပ?တယ#။ Primitive Type eတ>မ91 ကiuယ#ပiuင#
Literals eတ>ကiu ပiuင#ဆiuင#0ကပ?တယ#။
package [Link];
Boolean Literals
Boolean Type Variable eတ>မ91 အသuP&*ပuBiuင#တ85 literals eတ>ကeတ15 true န8A false သ1Diပ?တယ#။
package [Link];
Character Literals
package [Link];
Numbers Literals
Integer eတ>*ဖစ#0ကတ85 အ*ပည#5ကiန#&eတ>မ91 ဆiuရင# Decimal, Hexadecimal, Octal န8A Binary ပuPစPန8A တန#ဖiu&eတ>
ကiu eရ&သ1&လiuရBiuင#ပ?တယ#။ Decimal ဆiuတ1က ဆယ#ဆတiu&ပuPစPန8A eရ&သ1&နည#&ပ?။ ကOန#eတ1#တiu အ*ပင#မ91
အသuP&*ပueနတ85 ပuPစP*ဖစ#6ပ7& အသuP&မ(1&တ85 ပuPစP*ဖစ#ပ?တယ#။
Binary ပuPစPကeတ15 0 eတ> 1 eတ>န8A Integer ကiu eဖL*ပတ85 ပuPစP*ဖစ#ပ?တယ#။ 1 ဟ1 1 *ဖစ#6ပ7& 10 ဆiuတ1က 2 *ဖစ#ပ?
မယ#။ တဖန# 11 ဆiuတ1ကeတ15 3 ကiu eဖL*ပတ1 *ဖစ#ပ?မယ#။ Literal eတ>ကiu eရ&သ1&တ85 eနရ1မ91 eUမဟ1
Prefix အeနန8A 0B ဒ?မ9မဟuတ# 0b ကiu eရ&သ1&eပ&ရပ?မယ#။
package [Link];
Floating Number eတ>အeနန8A float န8A double တiuပ8Diပ?တယ#။ အ85ဒ?eတ>ကiueတ15 ဒသမကiန#&eရ&သလiuပ8 eရ&သ1&
Biuင#ပ?တယ#။
Suffix of Numbers
Integer Number eတ>အတ>က# byte, short, int, long ဆiu6ပ7&Diပ?တယ#။ 6ပ7&eတ15 Floating Number eတ>အတ>က#
float န8A double Diပ?တယ#။ Literal န8A ဒ7အတiuင#&eရ&မယ#ဆiuရင# အ85ဒ7 Type eတ>ကiu ခ>86ပ7& eဖLမ*ပBiuင#ပ8 Default Type
ကiu အသuP&*ပuသ>1&ပ?မယ#။
Integer Literal eတ>န8A eရ&ထ1&မယ#ဆiuရင# Default အတiuင#&ဆiuပ?က int ကiu အသuP&*ပuသ>1&ပ?မယ#။ 6ပ7&eတ15
Floating Number eတ>ဆiuရင#လ8 default အတiuင#&ဆiuပ?က double type ကiu အသuP&*ပuသ>1&မ91 *ဖစ#ပ?တယ#။
Variable တစ#ခuမ91 Assign လuပ#တ85 eနရ1မ91 မသiသ1eပမ85 Method eတ>ကiu Invoke လuပ#တ85 အခ?မ91 Parameter
eတ>eနရ1မ91 Literals eတ>ကiueရ&သ1&တ85 eနရ1မ91 သတi*ပuသင#5ပ?တယ#။
eအ1က#ပ? ကuဒ#နမRန1ထ8မ91လiu take() method ကiu Argument Type မတReအ1င# Method ၄ မ(iu&eရ&သ1&ထ1&ပ?
တယ#။ Argument Type eတ>ကeတ15 အသ7&သ7& byte, short, int, long တiu*ဖစ#0ကပ?တယ#။ Method Name တR
eပမ85 Argument Type မတRတ85 အတ>က# သRတiueတ>ဟ1 Method တစ#ခuစ7လiu Java Compiler ကeက1 Java
Runtime ကပ? မ9တ#ယReန0ကပ?တယ#။
တကယ#လiu Main Method ထ8ကလiu take(10) လiueရ&လiuက#ရင# ဘယ# Method ကiu အလuပ#လuပ#သ>1&မ91လ8။ ဒ7eနရ1
မ91eတ15 Integer Literal eတ>ရ8S Default Type ဟ1 int *ဖစ#တ85 အတ>က# int type ကiu Argument အeနန8A ယRတ85
Method ကiu အလuပ#လuပ#eစမ91 *ဖစ#ပ?တယ#။
တကယ#လiu long type အeနန8A အသuP&*ပuခ(င#တယ#ဆiuရင#eတ15 Literals ရ8S eန1က#မ91 l ဒ?မ9မဟuတ# L ကiu Suffix
အeနန8A eရ&သ1&eပ&ရပ?မယ#။ take(10L) လiueရ&လiuက#ရင# long Type *ဖစ#တယ#ဆiuတ1ကiu သတ#မ9တ#eပ&Biuင#တ85
အတ>က# take(long l) Method ကiu အလuပ#လuပ#eစမ91 *ဖစ#ပ?တယ#။
အလ1&တRပ8 suffix ကiu အသuP&*ပuBiuင#တ1က float န8A double *ဖစ#ပ?တယ#။ float type အတ>က# suffix အeနန8A f ဒ?မ9
မဟuတ# F ကiu အသuP&*ပuBiuင#6ပ7& double type အတ>က# d န8A D ကiu အသuP&*ပuBiuင#ပ?တယ#။
ဒ?*ဖင#5ရင# byte, short, int မ91eတ15 suffix မDi0ကပ?ဘR&။ ဒ?*ဖင#5 byte ဒ?မ9မဟuတ# short ကiu သuP&တ85 Method ကiu
Invoke လuပ#ခ(င#ရင# ဘယ#လiuလuပ#မလ8။ int ကiu အသuP&လiuတ85 Type ကiu e*ပ1င#&ဖiuလiuအပ#ပ?တယ#။ ဒ?ကiu Type
Casting လiueခLပ?တယ#။
Primitive Casting
Size eသ&တ85 Type ကeန Size Xက7&တ85 Type ကiu e*ပ1င#&ခ(င#ရင# Java Compiler က အလiuအeလ(1က#e*ပ1င#&eပ&
Biuင#တယ#။ အ85ဒ?ကiu Implesit Casting လiueခLပ?တယ#။ ဥပမ1အ1&*ဖင#5 byte variable တစ#ခuကiu int variable ဆ7ကiu
အစ1&ထiu&တယ# ဆiu0ကပ?စiu။ အ85ဒ?ဆiuရင# ဘ1မ9အeထ>အထR&e*ပ1င#&စရ1မလiuပ8 eရ&သ1&Biuင#ပ?တယ#။ ဒ?eပမ85 int
variable ကeန byte Variable ကiu Assign လuပ#မယ#ဆiuရင#eတ15 (byte) ဆiu6ပ7& cast လuပ#eပ&ဖiuလiuအပ#ပ?တယ#။
byte b = 10;
int i = b;
b = (byte) i;
float f = 10.1;
double d = f;
f = (float)d;
}
}
အလ1&တRပ8 float variable ကiu double variable eနရ1မ91 Assign လuပ#မယ#ဆiuရင# double က float ထက#ပiu6ပ7&
Xက7&တ85 အတ>က# အeထ>အထR&e*ပ1င#&6ပ7&eရ&စရ1မလiuအပ#ပ?ဘR&။ ဒ?eပမ85 float variable eနရ1ကiu double variable
ကiu Assign လuပ#မယ#ဆiuရင#eတ15 (float) ဆiu6ပ7& Type Cast လuပ#eပ&မ9ရပ?မယ#။
အထက#ပ? နမRန1ထ8မ91 take(10) လiueရ&ရင# take(int i) ကiu eခLသ>1&ပ?မယ#။ ဒ?5e0က1င#5 take(byte b) method ကiu
Invoke လuပ#eစခ(င#ရင#eတ15 take((byte)10) ဆiu6ပ7& Type Cast လuပ#6ပ7&မ9 take() Method ကiu Invoke လuပ#eပ&ဖiu
လiuအပ#ပ?တယ#။
eရ&လiuမရတ85 ပuPစPeတ>*ဖစ#ပ?တယ#။
eရ&လiuရတ85 ပuPစP*ဖစ#ပ?တယ#။
ကOန#eတ1#တiu နမRန1ထ8မ91 အသuP&*ပueန0ကတ85 String တiuလiu Java SE API ထ8မ91ပ?တ85 Class eတ>eက1၊ ကOန#eတ1#
တiu ကiuယ#တiuင#eရ&သ1&ထ1&တ85 Class eတ>အ1&လuP&ဟ1လ8 Reference Data Type eတ>*ဖစ#0ကပ?တယ#။ ဒ?5e0က1င#5
Java မ91 Primitive Data Type က ၈ မ(iu&သ1Dieပမ85 Reference Data Type ကeတ15 Class eတ>Diသeလ1က#Di
eနမ91 *ဖစ#ပ?တယ#။
class Person {
Stirng name;
}
ကOန#eတ1#တiu eUမ91လ8 eရ&ဘR&ပ?တယ#။ Person p = new Person() ဆiuတ1 new Person() ဆiu6ပ7& Object
eဆ1က#6ပ7& Person type p Variable eနရ1မ91 လ1အစ1&ထiu&တယ#လiuပ8 သiလ10ကမ91 *ဖစ#ပ?တယ#။ တကယ#eတ15
Person Type p variable ကiu Stack Memory eပLမ91 သ>1&eဆ1က#ပ?တယ#။
(Stack Memory ဆiuတ1က JVM eပLမ91 အသuP&*ပuတ85 Memory Aera တစ#မ(iu&*ဖစ#ပ?တယ#။ JMV eပLမ91 Stack န8A
Heap ဆiu6ပ7& Memory Area B9စ#ခuကiu အသuP&*ပu0ကပ?တယ#။ Stack Memory ဆiuတ1က CPU န8A အန7&ဆuP&eနရ1မ91
Di6ပ7& CPU ကeန တiuက#^iuက# ဆက#သ>ယ# အသuP&*ပuBiuင#တ85 Memory Area *ဖစ#6ပ7& Life Time ကလ8 အeတ1#eလ&ကiu
တiueတ1င#&ပ?တယ#။ ကOန#eတ1#တiu eရ&ထ1&တ85 ကuဒ#eတ>ကiu အလuပ#လuပ#eနစ]# အ85ဒ7 Code eတ>ဟ1 Stack eပLမ91
Dieနပ?မယ#။ 6ပ7&သ>1&ရင#eတ15 eပ(1က#ကuန#မ91 *ဖစ#ပ?တယ#။ Heap ဆiuတ1ကeတ15 Stack ထက#ပiu6ပ7& က(ယ#*ပန#A6ပ7&
CPU ကeန တiuက#^iuက# ဆက#သ>ယ#6ပ7& အသuP&*ပueလ5မDiပ?ဘR&။ အ0က1Xက7&လ8 eဒတ1eတ>ကiu သiမ#&ထ1&6ပ7& အသuP&*ပu
Biuင#ပ?တယ#)
eန1က#ကပ?တ85 new Person() ဆiuတ1ကeတ15 Heap Memory eပLမ91 Person Object ကiu သ>1&eဆ1က#တ1ပ8
*ဖစ#ပ?တယ#။ Object eဆ1က#တ85eနရ1မ91 Instance Variable eတ>Diရင# Class ထ8ကeန Copy ကR&သ>1&6ပ7&
Object ထ8မ91 သiမ#&ထ1&ပ?မယ#။ ဒ?e0က1င#5 name Variable ဟ1လ8 Object ထ8ကiuပ?သ>1&ပ?မယ#။ 6ပ7&eတ15မ9
eဆ1က#ခ85တ85 Memory Address ကiu Person p eနရ1မ91 လ16ပ7& အစ1&ထiu&ပ?တယ#။
[Link] ဆiu6ပ7& Variable p ရ8S name ကiu အသuP&*ပu6ပ7ဆiuရင# p eနရ1မ91 Diတ85 Memory Address ကeန Object ကiu
Reference လuပ#6ပ7& name eနရ1ကiu အသuP&*ပuမ91 *ဖစ#ပ?တယ#။ ဒ7လiu Variable eတ>ကeန Object Diတ85eနရ1ကiu
Reference လuပ#6ပ7& သuP&eနရတ85 အတ>က# Object eတ>ကiu Reference Type Variable eတ>လiu eခLဆiuရ*ခင#& *ဖစ#ပ?
တယ#။
Learning Java 40 မင#&လ>င#
Java Developer Class
တကယ#eတ15 Primitive eတ>တuန#&က Variable eနရ1ကiu Assign လuပ#တ1န8A ပတ#သက#6ပ7& ဒ7eနရ1မ91 e*ပ1ခ(င#တ85
အတ>က# eUမ91 မe*ပ1ခ85ပ?ဘR&။ Primitive Type Variable eတ>ကeတ15 Reference Type Variable eတ>န8A မတR
ပ?ဘR&။
int a = 77; လiueရ&ထ1&ရင# Stack Memory eပLမ91 a အတ>က# 32 Bit စ1 eနရ1ယRပ?တယ#။ 6ပ7&ရင# 77 ကiu Value
အeနန8A အစ1&ထiu&မ91 *ဖစ#ပ?တယ#။ မ9တ#မယ#ဆiuရင# Primitive Type Variable eတ>က Variable eတ>eနရ1မ91 တ
ကယ#5 တန#ဖiu&ကiu လ1အစ1&ထiu&6ပ7& Reference Data Type eတ>ကeတ15 eဆ1က#ထ1&တ85 Object ကiu Reference
လuပ#Biuင#တ85 Memory Address ကiu အစ1&ထiu&တ1ပ8 *ဖစ#ပ?တယ#။
int b = a;
Person q = p;
a = 100;
[Link] = "Thidar";
}
}
Variable eတ>ကiu အ*ခ1& Variable eတ>မ91 အစ1&ထiu&0ကည#5ရeအ1င#။ int b = a; လiueရ&လiuက#တ1န8A a ရ8S တန#ဖiu&*ဖစ#
တ85 77 ဟ1 b ရ8S တန#ဖiu&*ဖစ#သ>1&ပ?မယ#။ ဒ?5e0က1င#5 eအ1က#မ91 a = 100 လiu a ရ8S တန#ဖiu&ကiu 100 လiu အစ1&ထiu&ရင#
လ8 b ရ8S တန#ဖiu&ဟ1 77 ပ8 *ဖစ#eနမ91ပ?။
ဆက#လက#6ပ7& Method Argument eတ>မ91 သuP&တ85 Variable eတ>ဆiuတ1 ဘယ#လiuဟ1မ(iu&လ8 ဆiuတ1ကiu eလ5လ1
သ>1&0ကရeအ1င#။ Primitive Type ကeန စ6ပ7& eလ5လ1သ>1&0ကရeအ1င#။
int a = 77;
change(a);
[Link](a);
}
ဘ1လiuလ8 ဆiueတ15 change(a) လiu eရ&လiuက#တ1ဟ1 Variable a ကiu change() Method ကiu eပ&လiuက#တ1မဟuတ#
ပ?ဘR&။ Variable a ရ8S value *ဖစ#တ85 77 ကiu change() Method ရ8S Argument *ဖစ#တ85 a eနရ1ကiu Copy ကR&6ပ7&
eပ&လiuက#တ1 *ဖစ#ပ?တယ#။ Value ကiuပ8 eပ&လiuက#တ1*ဖစ#ပ?တယ#။ ဒ?5e0က1င#5 change() method ထ8က a ဟ1
Main Method ထ8က Variable a န8A သက#ဆiuင#မ-မDiပ?ဘR&။ change() Method ထ8က a ရ8S တန#ဖiu&ကiu e*ပ1င#&လiuက#
တ1လ8 change() method ထ8က a သ1 e*ပ1င#&လ8သ>1&တ1 *ဖစ#6ပ7&၊ Main Method ထ8က a ရ8S တန#ဖiu&ဟ1 နဂiu
အတiuင#& 77 ပ8*ဖစ#eနတ1 *ဖစ#ပ?တယ#။
Main Method ထ8မ91 change(p) လiueရ&လiuက#တ1ဟ1 Main Method ထ8မ91Diတ85 p variable ရ8S Value ကiu
change() method ရ8S local variable p မ91 Copy ကR&eပ&လiuက#တ1ပ?ပ8။ Method eတ>ကiu Invoke လuပ#တ85 eနရ1
မ91 Variable eတ>ကiu Parameter အeနန8A eပ&လiuက#တယ#ဆiuတ1 Variable ကiu eပ&လiuက#တ1မဟuတ#ပ8 Variable ရ8S
Value ကiuပ8 eပ&လiuက#တ1 *ဖစ#ပ?တယ#။
Reference Type Variable eတ>ရ8S Value ဟ1 Reference လuပ#eနတ85 Object eတ>ရ8S Memory Address သ1
*ဖစ#တ85 အတ>က# change() Method ထ8မ91 Dieနတ85 p ဟ1လ8 Main Method ထ8က p က Reference လuပ#eနတ85
Object ကiuပ8 Reference လuပ#eနပ?တယ#။ change() method ထ8မ91 [Link] ကiu e*ပ1င#&လiuက#တ85 အတ>က# Main
Method ထ8မ91Diတ85 [Link] ဟ1လ8 e*ပ1င#&သ>1&မ91 *ဖစ#ပ?တယ#။ ဒ?5e0က1င#5 [Link]([Link]) လiu
eရ&လiuက#တ85 အခ?မ91 အe*ဖဟ1 “Thidar” လiu eဖL*ပသ>1&မ91 *ဖစ#ပ?တယ#။
int a = 10;
Integer b = new Integer(a);
int c = [Link]();
Java SE 5 မတiuင#ခင#ကဆiuရင# primitive type a ကiu Integer အ*ဖစ#e*ပ1င#&ခ(င#ရင# new Integer(a) ဆiu6ပ7&
Constructor ကiuအသuP&*ပu6ပ7& Object အ*ဖစ#e*ပ1င#&မ9ရပ?တယ#။ ဒ7လiuမ(iu& Primitive Type ကeန သ\ရ8S Wrapper
Object အ*ဖစ#e*ပ1င#&တ1ကiu Boxing လiueခLပ?တယ#။ Object ဆiuတ85 eသတj 1ထ8ထည#5တယ#ဆiuတ85 သeဘ1eပ?5ဗ(1။
တဖန# Wrapper Object ကeန primitive type ကiu *ပန#လiuခ(င#ရင#လ8 [Link]() ဆiu6ပ7& Method ကiu အသuP&*ပu6ပ7&
Type ကiu *ပန#e*ပ1င#&eပ&ဖiuလiuပ?တယ#။ အ85ဒ?ကiueတ15 Unboxing လiueခLပ?တယ#။ Object ဆiuတ85 eသတj 1ထ8ကeန
ထuတ#6ပ7& Primitive ကiu *ပန#e*ပ1င#&eပ&တယ#ဆiuတ85 သeဘ1eပ?5။
ဒ?eပမ85 Java SE 5 eရ1က#တ85 အခ?မ91 ဒ?eတ>ဟ1 မလiuအပ#eတ15ပ?ဘR&။ Boxing eတ> Unboxing eတ>ကiu JVM က
အလiuအeလ(1က#လuပ#eဆ1င#eပ&လ1Biuင#ပ?တယ#။
int a = 10;
Integer b = a;
int c = b;
အထက#ပ?အတiuင#& Wrapper Object b eနရ1ကiu Primitive Variable တစ#ခu*ဖစ#တ85 a ကiu တiuက#^iuက# အစ1&ထiu&Biuင#
သလiu၊ primitive type variable တစ#ခu*ဖစ#တ85 c eနရ1ကiuလ8 int ရ8S Wrapper Object တစ#ခu*ဖစ#တ85 b န8A အစ1&ထiu&
လ1Biuင#ပ?တယ#။
Wrapper Class တiuင#&မ91 compare() န8A equals() Method eတ>ပ?လ1ပ?တယ#။ ဒ?eပမ85 ဒ?ဟ1လ8 Primitive Type
eတ>န8A Operators eတ>ကiu တ>86ပ7&eရ&မယ#ဆiuရင# *ဖစ#eနတ1*ဖစ#တ85 အတ>က# အရမ#&ကiu လiuအပ#eနတ1eတ15 မဟuတ#
ပ?ဘR&။ ဒ?eပမ85 တစ#*ခ1& Primitive Type eတ> အ*ဖစ#e*ပ1င#&လiuရတ85 အခ(က#ကeတ15 သuP&ခ(င#စရ1 အခ(က#တစ#ခu*ဖစ#
ပ?တယ#။
Number အမ(iu&အစ1& Wrapper Type eတ>မ91 compare() ဆiuတ85 Static Method တစ#ခuန8A compareTo() ဆiuတ85
Instance Method eတ>ပ?ဝင#6ပ7& Variable B9စ#ခuကiu B-င#&ယ9]#ရ1မ91 အသuP&*ပuBiuင#ပ?တယ#။
Integer c = a;
Integer d = b;
[Link](int a, int b) Method ကeတ15 Static Method *ဖစ#6ပ7& int variable B9စ#ခuကiu B-င#&ယ9]#ရ1မ91
အသuP&*ပuBiuင#eအ1င# *ပင#ဆင#ထ1&တ85 Method တစ#ခuDiပ?တယ#။ အ*ခ1&eသ1 Number Type Class eတ>မ91လ8
compare method ကiu *ပင#eပ&ထ1&ပ?တယ#။ [Link]() Method ကiu အသuP&*ပuမယ#ဆiuရင# double
variable B9စ#ခuကiu Compare လuပ#Biuင#မ91 *ဖစ#ပ?တယ#။ compare() Method ရ8S Return Type ကeတ15 int *ဖစ#6ပ7&
variable B9စ#ခuတန#ဖiu&တReနရင# 0 ကiu Return *ပန#မ91 *ဖစ#6ပ7& ပထမ Variable ကXက7&eနရင# 1 ကiu Return *ပန#6ပ7&၊
ပထမ Variable က ငယ#eနရင# -1 ကiu Return *ပန#မ91 *ဖစ#ပ?တယ#။
တRမတRစစ#ခ(င#တ85အခ?မ91
Variable တန#ဖiu&B9စ#ခu တRမတR စစ#ခ(င#တ85 အခ?မ91 Primitive eတ>မ91 Operators eတ>ကiu အသuP&*ပu6ပ7& စစ#လiuရပ?
တယ#။ ဒ?eပမ85 Wrapper Class eတ>မ91 [Link] ကeနပ?လ1တ85 equals() method ကiu အသuP&*ပu6ပ7&
စစ#eဆ&Biuင#မ91 *ဖစ#ပ?တယ#။
[Link](a == b);
Double c = a;
[Link]([Link](b));
}
Type e*ပ1င#&ခ(င#တ85အခ?
Primitive Type eတ>မ91 Integer eတ>အတ>က# Type eလ&မ(iu&Di6ပ7” Floating Number eတ>အတ>က# Type B9စ#
မ(iu&Diပ?တယ#။ Primitive Type eတ>မ91 ဆiuရင# Type eတ>ကiu e*ပ1င#&ခ(င#ရင# Type Casting ကiu အသuP&*ပuလiuရပ?
တယ#။ ဒ?eပမ85 Wrapper Object eတ>ကiu အသuP&*ပuမယ#ဆiuရင# Type တစ#မ(iu&ကeန တစ#မ(iu&ကiu အလ>ယ#တကR
e*ပ1င#&လiuရပ?တယ#။ Number Type Wrapper Class eတ>ဟ1 Number ဆiuတ85 Abstract Class ကiu Extends
လuပ#ထ1&0က6ပ7& Number Class ထ8မ91 Type e*ပ1င#&ဖiu eအ1က#ပ? Method eတ>ကiu *ပင#ဆင#ထ1&ပ?တယ#။
အထက$ပ*အတiuင$2 Primitive Wrapper Object eတ,ကiu အသu62(ပuမယ$ဆiuရင$ အ(ခ42 Type eတ,ကiuလ@ အသင$A
(ပင$ထ42တ@A Method eတ,ကiu အသu62(ပuBပC2 အလ,ယ$တကDe(ပ4င$2လ@9iuင$မ74 (ဖစ$ပ*တယ$။ အ(ခ42eသ4 Number
Type Wrapper Class eတ,မ74လ@ Type e(ပ4င$2တ@A Method eတ,ကiu အသu62(ပu9iuင$မ74 (ဖစ$ပ*တယ$။
Arrays
ဒ7အခန#&မ91eတ15 Java မ91 အသuP&*ပueနတ85 Array ဆiuတ1 ဘယ#လiuဟ1မ(iu&လ8။ 6ပ7&eတ15 Array eတ>ကiu ဘ1လiu
လiuအပ#0ကတ1လ8၊ Array Object eတ>ကiu ဘယ#လiu တည#eဆ1က#0ကမလ8၊ Array ထ8မ91ပ?တ85 Element eတ>ကiu
ဘယ#လiu Access လuပ#မလ8ဆiuတ1န8A Multi Dimension Array eတ>အe0က1င#&ကiu eလ5လ1သ>1&0ကပ?မယ#။
ဒ?eပမ85 Array eတ>က Type eရ&သ1&ပuPeက1၊ Object တည#eဆ1က#ပuPeတ>ပ? တစ#*ခ1& Object eတ>န8A မတR0ကပ?
ဘR&။ ဒ7 အခန#&မ91eတ15 Array eတ>အe0က1င#&ကiu eလ5လ1သ>1&0ကပ?မယ#။
အစကထ8က int အမ(iu&အစ1& Data ၁၀ ခu အသuP&*ပuမယ#လiu သတ#မ9တ#ထ1&တယ#ဆiuရင# အ85ဒ7 Array ထ8ကiu int ကလ>8
6ပ7& သiမ#&ထ1&လiuမရBiuင#ပ?ဘR&။ 6ပ7&eတ15 Data ကiuလ8 10 ခuထက#ပiu6ပ7& သiမ#&မeပ&ထ1&Biuင#ပ?ဘR&။ 6ပ7&eတ15 Array ထ8
မ91 သiမ#&ထ1&တ85 Data eတ>ကiuလ8 အခန#& နPပတ#န8A သ7&*ခ1& သတ#မ9တ#6ပ7& သiမ#&eပ&ထ1&Biuင#ပ?တယ#။ 6ပ7&eတ15 ဘယ#
နPပ?တ#က Data လiuခ(င#လ8 ဆiuတ1န8A ဘယ#နPပ?တ#မ91 ဘယ# Data ကiu သiမ#&မယ#ဆiuတ1ကiu သတ#မ9တ# အသuP&*ပuBiuင#ပ?
တယ#။
Declaring Arrays
Array eတ>ကiu အသuP&*ပueတ15မယ#ဆiuရင# အန8ဆuP& ဘယ#လiuအမ(iu&အစ1& Array ကiu အသuP&*ပuမ91လ8 ဆiuတ1ကiu သiဖiu
လiuအပ#ပ?တယ#။ Array အeနန8A Primitive Type eတ>ကiuလ8 အသuP&*ပuBiuင#သလiu Reference Type eတ>ကiuလ8
အသuP&*ပuBiuင#ပ?တယ#။ int type eတ>ကiu အသuP&*ပuတ85 Array ဆiuရင# int array လiueခLဆiueလ5Diသလiu String Type eတ>
ကiu အသuP&*ပuတ85 Array eတ>ကiu String Array လiuလ8 eခLeလ5Diပ?တယ#။ Custom Object *ဖစ#တ85 User Class eတ>
ကiu အသuP&*ပuBiuင#တ85 Array eတ>ဆiuရင#လ8 User Array လiueခLeလ5Diပ?တယ#။
Array Variable ကiu Declare လuပ#မယ#ဆiuရင# Array မ91 အသuP&*ပuမည#5 Type ရယ# Array Sing *ဖစ#တ85 [] ရယ#၊
Variable Name ကiu eရ&သ1&eပ&ရပ?မယ#။ အထက#ပ?အတiuင#& int [] array လiueရ&သ1&ထ1&ရင# int ဆiuတ1 Array
ကiu အသuP&*ပuမည#5 Type *ဖစ#6ပ7& array ဆiuတ1က Variable Name *ဖစ#ပ?တယ#။
Array ကiu eရ&တ85 eနရ1မ91 int [] array လiuလ8 eရ&သ1&Biuင#သလiu int array [] လiuလ8 eရ&သ1&Biuင#မ91 *ဖစ#ပ?တယ#။
အထက#ပ?အတiuင#& Array ကiu Declare လuပ#မယ#ဆiuရင# {1,2,3,4,5} န8Aတiuက#^iuက# အစ1&ထiu& eရ&သ1&Biuင#eသ1#လ8
Array ကiu Declare လuပ#6ပ7&တ85 အခ?က(မ9 Assign လuပ#တ85 Statement eတ>မ91ဆiuရင#eတ15 eရ&သ1&လiuရမ91 မဟuတ#
ပ?ဘR&။
int [] array;
array = {1,2,3,4,5};
int [] array;
array = new int[] {1,2,3,4,5};
တကယ#eတ15 new int[] {1,2,3,4,5} လiueရ&တ1က Array Object ကiu Instantiate လuပ#တ85 eရ&သ1&ပuPအမ9န# *ဖစ#ပ?
တယ#။ Java မ91က Declaration Statement eတ>မ91 အလ>ယ#eရ&သ1&Biuင#eအ1င# {1,2,3,4,5} ကiu Short Cut
အeနန8A *ပင#eပ&ထ1&တ1*ဖစ#6ပ7& Declaration Statement eတ>မ91ပ8 eရ&သ1&လiuရမ91 *ဖစ#ပ?တယ#။
int
Learning [] array = new int [5];
Java 48 မင#&လ>င#
Java Developer Class
String 10 ခuကiu အသuP&*ပuခ(င#တ85 Array မ(iu&ဆiuရင# eအ1က#ပ? အတiuင#&eရ&သ1&ရပ?မယ#။
Array မ91 Java Language မ91ပ?တ85 Data Type eတ>သ1မက မiမiကiuယ#တiuင#eရ&သ1&ထ1&တ85 Custom Object
eတ>ကiuလ8 Type အeနန8A အသuP&*ပuBiuင#ပ?တယ#။ Student Type eတ>ကiu Array မ91 အသuP&*ပuခ(င#တယ#ဆiuရင#လ8
အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။
}
}
class Student {
String name;
int age;
}
အထက#နမRန1ထ8မ91လiu new int[10] လiueရ&လiuက#တ1န8A int ရ8S Default တန#ဖiu&န8A {0, 0, 0} ကiu တည#eဆ1က#သ>1&
မ91 *ဖစ#6ပ7& new Student[3] လiueရ&လiuက#တ1န8A {null, null, null} ဆiu6ပ7& Array Object ကiuတည#eဆ1က#eပ&မ91
*ဖစ#ပ?တယ#။ students Array ထ8မ91 Student Object ၃ ခuကiu သiမ#&eပ&ထ1&Biuင#မ91 *ဖစ#ပ?တယ#။
Array ထ8မ91 Element eတ>ကiu သiမ#&ထ1&မယ#ဆiuရင#လ8 Index Number eတ>န8A သiမ#&ထ1&ဖiuလiuအပ#သလiu *ပန#6ပ7&
eခLယRမယ#ဆiuရင#လ8 Index Number န8A *ပန#6ပ7&eခLယR အသuP&*ပuရမ91 *ဖစ#ပ?တယ#။
class Student {
String name;
int age;
Array ကiu Declare လuပ#စ]# Type မ(iu&ဆiuပ?က Array ထ8မ91 လ16ပ7& သiမ#&ထ1&Biuင#မ91 *ဖစ#ပ?တယ#။ Student []
students လiu Declare လuပ#ထ1&တ85 အတ>က# students Array ထ8မ91 Student Object eတ>န8A Student Class ရ8S
Sub Class Object eတ>ဆiuရင# လ16ပ7& သiမ#&ထ1&လiuရပ?မယ#။
တဖန# Array ကiu Object eဆ1က#ထ1&သeလ1က# အeရအတ>က# သiမ#&eပ&ထ1&Biuင#မ91 *ဖစ#တယ#။ new Student
[3] လiueရ&ထ1&တ85 အတ>က# Array မ91 အခန#& ၃ ခန#&ပiuင#6ပ7& Student Object ၃ ခuသiမ#&eပ&ထ1&Biuင#မ91 *ဖစ#ပ?တယ#။
Array ရ8S Index Number ဟ1 0 ကeန စတ1*ဖစ#တ85 အတ>က# student[0] ဆiu6ပ7& eရ&မယ#ဆiuရင# eUဆuP&အခန#&မ91
Student Object တစ#ခuကiu လ1သiမ#&မ91 *ဖစ#ပ?တယ#။
class Student {
String name;
int age;
အထက#ပ?အတiuင#& Array ထ8က Element eတ>ကiu *ပန#ယRခ(င#တယ#ဆiuရင#လ8 သiမ#&ထ1&တ85 index number န8Aပ8 *ပန#
6ပ7& eခLယRရမ91 *ဖစ#ပ?တယ#။ students[0] ဆiuရင# Array ထ8က ပထမဆuP& Student ကiu ရDiBiuင#6ပ7& students[1] ဆiu
ရင# ဒuတiယ Student Object ကiuရDiမ91 *ဖစ#ပ?တယ#။ students[2] ဆiuရင#eတ15 eန1က#ဆuP& Student ကiuရDiBiuင#မ91
*ဖစ#ပ?တယ#။
ဆiu0ကပ?စiu၊ int array eတ>ကiu သiမ#&eပ&ထ1&Biuင#တ85 Multi Dimension Array မ(iu&၊ ဒ?မ9မဟuတ# String Array eတ>ကiu
သiမ#&eပ&ထ1&Biuင#တ85 Array မ(iu&ဆiu6ပ7& သiDieနဖiuလiuအပ#ပ?တယ#။
သ1မန# Array eတ>ကiu eရ&ခ85တuန#&ကလiu ဘယ#လiuအမ(iu&အစ1& Array ဆiuတ1ကiu သiဖiuလiuအပ#6ပ7&၊ အ85ဒ7 Type ကiu
eUဆuP&မ91 eရ&eပ&ရပ?မယ#။ 6ပ7&ရင# Array Sign *ဖစ#တ85 [] ကiu အသuP&*ပuလiuသeလ1က# eရ&သ1&eပ&ရပ?မယ#။ Two
Dimension ဆiuရင# [][] လiueရ&6ပ7& Three Dimension ဆiuရင#eတ15 [][][] လiu eရ&သ1&eပ&ရပ?မယ#။ 6ပ7&က1မ9
Identifier *ဖစ#တ85 Variable Name ကiu eရ&သ1&ရမ91ပ?။
ဒ?eပမ85 Multi Dimension Array ကiu Declare လuပ#တ85 eနရ1မ91 eအ1က#ပ?အတiuင#& eရ&သ1&ရင#လ8 Compile
Error *ဖစ#မ91 မဟuတ#ပ?ဘR&။
အထက#ပ?ကuဒ#ကiu 0ကည#50ကည#5ရeအ1င#။ Multi Dimension Array eနရ1ကiu Dimension မတRတ85 Array eတ>န8A
လ16ပ7& အစ1&ထiu&eနပ?တယ#။ ဒ?eပမ85 ဒ7လiueရ&ထ1&ရင#လ8 မ91&မ91မဟuတ#ပ?ဘR&။ Java မ91 အသuP&*ပueနတ85 Array ဟ1
C တiu C++ တiuမ91 အသuP&*ပueနတ85 Array န8A မတRပ8 Object တစ#ခuသ1 *ဖစ#တ85 အတ>က# Int Array *ဖစ#မယ#ဆiuရင#
အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။ Dimension eတ>ဆiuတ1ထက# Int အမ(iu&အစ1& Array eတ>ကiu သiမ#&eပ&ထ1&Biuင#တ85
Array eတ>လiu *မင#တ1eက1င#&ပ?မယ#။
Array ထ8မ91 ပ?မည#5 Element eတ>ကiu Xကiu6ပ7& မသiထ1&တ85 အခ?မ(iu&မ91 ဆiuရင#လ8 eအ1က#ပ?အတiuင#& Array Object
မ(iu&ကiu တည#eဆ1က#Biuင#ပ?မယ#။
အထက#ပ?အတiuင#& new int[2][3] ဆiu6ပ7& Initialize လuပ#မယ#ဆiuရင# {{0,0,0}, {0,0,0}} ဆiu6ပ7& Array Object ကiu
တည#eဆ1က#သ>1&မ91 *ဖစ#ပ?တယ#။ တဖန# new int[2][] လiu eရ&မယ#ဆiuရင#လ8 *ဖစ#ပ?တယ#။ ဒ7အတiuင#& eရ&သ1&ထ1&
မယ#ဆiuရင#eတ15 {null, null} ဆiu6ပ7& Array Object ကiu တည#eဆ1က#သ>1&ပ?မယ#။
Multi Dimension Array ကiu ဘယ#လiueဆ1က#ရမလ8ဆiuတ1ကiu eလ5လ16ပ7&တ85 eန1က#မ91 Array ထ8က Element
eတ>ကiu ဘယ#လiu Access လuပ#0ကမယ#ဆiuတ1ကiu ဆက#လက# eလ5လ1သ>1&0ကရeအ1င#။
အထက#ပ?အတiuင#& Multi Dimension Array တစ#ခuကiu jshell ကiu အသuP&*ပu6ပ7& တည#eဆ1က#0ကည#5ပ?မယ#။ အထက#
နမRန1ပ? int [][] array ဟ1 int [] eတ>ကiu သiမ#&eပ&ထ1&Biuင#တ85 Array တစ#မ(iu&သ1&*ဖစ#ပ?တယ#။ array ထ8မ91 int []
eတ> *ဖစ#0ကတ85 {1,2} န8A {3,4} ကiu သiမ#&eပ&ထ1&ပ?တယ#။
ဒ?5e0က1င#5 array [0][0] လiue*ပ1ရင# eUဆuP& Array ထ8က ပထမဆuP&eနရ1မ91 Diတ85 1 ကiu ရDiမ91 *ဖစ#ပ?တယ#။ တဖန#
array[0][1] လiueဖL*ပရင# eUဆuP& Array ထ8က ဒuတiယeနရ1မ91Diတ85 2 ကiu ရDiမ91 *ဖစ#ပ?တယ#။ ဒ?eပမ85 array[0][2]
လiueရ&လiuက#တ85အခ?မ91 eUဆuP& Array ရ8S တတiယeနရ1ဟ1 မDiတ85 အတ>က#
ArrayIndexOutOfBoundsException ကiu *ဖစ#eပLeစတ1 *ဖစ#ပ?တယ#။ သ1မန# Array eတ>တuန#&ကလiuပ8 မDiတ85
Index Number ကiu Access လuပ#မiရင# ArrayIndexOutOfBoundsException ကiu *ဖစ#eပLeစမ91 *ဖစ#ပ?တယ#။
jshell> array[0][0] = 10
$6 ==> 10
jshell> a = array[0][0]
a ==> 10
jshell> array[0][2] = 15
| [Link] thrown: 2
| at (#9:1)
Multi Dimension Array ထ8မ91Diတ85 တန#ဖiu&ကiu Assign လuပ#လiuတ85 အခ?မ(iu&မ91လ8 Index Number eတ>ကiuပ8
အသuP&*ပuရမ91 *ဖစ#ပ?တယ#။ array[0][0] = 10 လiueရ&6ပ7& *ပန#0ကည#5တ85အခ?မ91 တန#ဖiu&ဟ1 10 ကiu e*ပ1င#&သ>1&တ1ကiu
eတ>Zရပ?မယ#။ မDiတ85 Index ကiu အသuP&*ပuမiရင#လ8 ArrayIndexOutOfBoundsException ကiu *ဖစ#eပLeစမ91 *ဖစ#ပ?
တယ#။
Multi Dimension Array ထ8က တန#ဖiu&eတ>လiue*ပ1တ85eနရ1မ91 eအ1က#ဆuP& Element အထi Access လuပ#Biuင#
သလiu Array eတ>ကiuလ8 *ပန#6ပ7& Access လuပ#Biuင#ပ?တယ#။
jshell> array
array ==> int[2][] { int[2] { 30, 40 }, int[2] { 3, 4 } }
အထက#ပ?အတiuင#& Multi Dimension Array ကiu First Level Index ကiu အသuP&*ပu6ပ7& Access လuပ#မယ#ဆiuရင# အ85ဒ7
Array ထ8မ91 သiမ#&eပ&ထ1&တ85 Array ကiu *ပန#လည#ရDiBiuင#မ91 *ဖစ#ပ?တယ#။ array[1] ဆiu6ပ7& Access လuပ#ရင# ဒuတiယ
eနရ1မ91 Diတ85 Array Object ကiu *ပန#လည#ရDiမ91 *ဖစ#ပ?တယ#။ အ85ဒ7အတiuင#&ပ8 array[0] ရ8Seနရ1ကiu အ*ခ1& int
Array တစ#ခuန8A အစ1&ထiu&Biuင#မ91 *ဖစ#ပ?တယ#။
ဒ?eပမ85 Type မတRရင#eတ15 Asign လuပ#တ1eက1 Reference လuပ#တ1eက1 လuပ#လiuရမ91 မဟuတ#ပ?ဘR&။ array
variable ရ8S type ကiu int [][] လiu Declare လuပ#ထ1&တ85 အတ>က# First Level Element ဟ1 int [] ပ8 *ဖစ#eနမ91 *ဖစ#
ပ?တယ#။ 6ပ7&eတ15 Second Level Element ရ8S type ဟ1လ8 int ပ8*ဖစ#ရပ?မယ#။
အထက#ပ?အတiuင#& int data eနရ1မ91 array[0] န8A အစ1&ထiu&လiuမရပ?ဘR&။ အစ1&ထiu&ခ(င#တ85 data ရ8S type ဟ1 int
*ဖစ#6ပ7& array[0] လiue*ပ1ရင# ရDiBiuင#မည#5 type ဟ1 int [] *ဖစ#eနတ85 အတ>က#*ဖစ#ပ?တယ#။ တဖန# array [1] eနရ1ကiu
လ8 10 ဆ7uတ85 တန#ဖiu&န8A အစ1&ထiu&လiu မရBiuင#ပ?ဘR&။ ဘ1လiuလ8 ဆiueတ15 array[1] ဟ1 int [] *ဖစ#6ပ7& 10 ဟ1 int *ဖစ#
တ85 အတ>က# *ဖစ#ပ?တယ#။
Java Programming Language မ91က Variable တစ#ခuကiu Declare လuပ#ခ85တ85 Type န8A မတRတ85 တန#ဖiu&eတ>ကiu
အစ1&ထiu&လiu မရBiuင#ပ?ဘR&။
jshell> array[1] = 10
| Error:
| incompatible types: int cannot be converted to int[]
| array[1] = 10
| ^^
Operators
ကOန#eတ1#တiu eUခန#&eတ>မ91 Class eတ>၊ Variable eတ>၊ Method eတ>န8A Java မ91 အသuP&*ပuBiuင#တ85 Data Type
eတ>အe0က1င#&eလ5လ1ခ850ကပ?တယ#။ ဒ7တစ#eခ?က#eတ15 Variable eတ>န8A တ>86ပ7& eရ&သ1&Biuင#တ85 Operator eတ>န8A
Expression eတ> အe0က1င#&ကiu eလ5လ10ကပ?မယ#။
ဆiu0ကပ?စiuဗ(1။ Variable a န8A Variable b တiuကiu eပ?င#&eစခ(င#တယ#ဆiuရင# eပ?င#&ပ?ဆiuတ1ကiu Operator န8A eဖL*ပeပ&
ရမ91 *ဖစ#တယ#။ တဖန# Variable တစ#ခuဟ1 Type တစ#ခuရ8S Object *ဖစ#ရ8Sလ1&ဆiuတ1ကiu စစ#ခ(င#တယ#၊ Variable
eတ>ကiu တစ#တiu&တ1တiu တစ#B-တ#တ1တiu လuပ#ခ(င#တယ#၊ eန1က#6ပ7& Variable B9စ#ခuရ8S တန#ဖiu&ဟ1 တRမတR စစ#eဆ&
ခ(င#တယ#၊ Variable eတ>ကiu အသuP&*ပu6ပ7& Logic eတ>ကiu စစ#eဆ&ခ(င#တယ#၊ Variable B9စ#ခuဘယ#သRXက7&လ8 ငယ#
လ8ဆiuတ1ကiu သiခ(င#တယ#၊ ဒ7လiuအခ?မ(iu&eတ>မ91 Operator eတ>ကiu အသuP&*ပuရမ91 *ဖစ#ပ?တယ#။
Assignment Operator
Assignment Operator eတ>ကeတ15 Variable eနရ1မ91 အစ1&ထiu&eပ&Biuင#တ85 Operator မ(1&*ဖစ#0ကပ?တယ#။
သ1မန# “=“ တစ#ခuကiu အသuP&*ပu6ပ7& eရ&သ1&Biuင#သလiu အ*ခ1&eသ1 Arithmetic Operator eတ>န8Aလ8 တ>8ဖက#6ပ7&
eရ&သ1&Biuင#ပ?တယ#။
jshell> int a
a ==> 0
jshell> a = 10
a ==> 10
jshell> int b = a
b ==> 10
jshell> a = 15
a ==> 15
jshell> b
b ==> 10
အထက#ပ?အတiuင#& JShell န8A eရ&သ1&ထ1&တ85 Code Snippet eတ>ကiu eလ5လ10ကည#50ကရeအ1င#။ အရင#ဆuP& int a
ဆiu6ပ7& Variable တစ#ခuကiu Declare လuပ#ပ?တယ#။ Primitive Type Variable တစ#ခuပ?။
Variable မ91လ1အစ1&ထiu&ထ1&တ85 Memory Address ကeန တဆင#5 Object eတ>ကiu Reference လuပ#6ပ7&
အသuP&*ပueနတ1 *ဖစ#တ85 အတ>က# Reference Variable eတ>လiu eခLခ850က*ခင#&လ8 *ဖစ#ပ?တယ#။
အထက#ပ?နမRန1မ91 အရင#ဆuP& String Type Variable တစ#ခuပ?တ85 Person Class ကiu တည#eဆ1က#ပ?တယ#။ 6ပ7&
eတ15မ9 Person Type Variable *ဖစ#တ85 thidar ဆiuတ85 eနရ1မ91 new Person() ဆiu6ပ7& Person Object ကiu
တည#eဆ1က#6ပ7&eတ15 Assign လuပ#eနပ?တယ#။ ဒ7eနရ1မ91 Person Type ဟ1 Reference Type *ဖစ#တ85 အတ>က#
new Person() လiu Object ကiu Heap Memory eပLမ91တည#eဆ1က#6ပ7& အ85ဒ7 Object ရ8S Memory Address ကiu
thidar eနရ1မ91 အစ1&ထiu&eနတ1 *ဖစ#ပ?တယ#။
jshell> [Link]
$6 ==> "Nilar"
jshell> [Link]
$7 ==> "Nilar"
တဖန# Person nilar = thidar လiueရ&ထ1&တ1ကလ8 Assignment Operator ကiu အသuP&*ပu6ပ7& nilar eနရ1ကiu
thidar ရ8S တန#ဖiu&န8A အစ1&ထiu&eန*ပန#တယ#။ ဒ7eနရ1မ91 thidar မ91Dieနတ85 တန#ဖiu&ဟ1 Person Object ကiu
Reference လuပ#Biuင#တ85 Memory Address ကiuပ8 nilar eနရ1မဟ1 အစ1&ထiu&သ>1&*ပန#တယ#။ Object တစ#ခuထ8ကiu
Reference Variable B9စ#ခuကeန Reference လuပ#eနတယ#ဆiuတ1ကiu သiDiထ1&သင#5ပ?တယ#။ ဒ?5e0က1င#5မiuလiu
[Link] = “Nilar” လiuအစ1&ထiu&လiuက#တ85 အခ?မ91 [Link] ဟ1လ8 “Nilar” လiue*ပ1င#&သ>1&တ1 *ဖစ#ပ?
တယ#။
Arithmetic Operators
Number အမ(iu&အစ1& Primitive Type Variable eတ>ကiu အသuP&*ပu6ပ7& သခo(1 ပiuင#&ဆiuင#ရ1 တ>က#ခ(က#မ-eတ> *ပuလuပ#
လiuတ85 အခ?မ(iu&မ91 Arithmetic Operators eတ>ကiu အသuP&*ပuBiuင#ပ?တယ#။ အeပ?င#&၊ အB9တ#၊ အe*မp1က#၊ အစ1&န8A
အqကင#&D1တ85 တ>က#ခ(က#မ-eတ>ကiu *ပuလuပ#လiuတ85 အခ?မ(iu&မ91 Arithmetic Operators eတ>ကiu အသuP&*ပuBiuင#ပ?တယ#။
Arithmetic Operators eတ>န8A အသuP&*ပuBiuင#တ85 Data Type eတ>ကeတ15 Number အမ(iu&အစ1& Primitive Data
Type eတ>န8A သRတiuရ8S Wrapper Class eတ>မ91 အသuP&*ပuBiuင#ပ?တယ#။ 6ပ7&eတ15 Number အeနန8A eဖL*ပBiuင#တ85
Primitive Data Type *ဖစ#တ85 char type eတ>မ91လ8 အသuP&*ပuBiuင#ပ?တယ#။ ခOင#&ခ(က#အeနန8A String Type
Variable eတ>မ91လ8 + Operator ကiu အသuP&*ပuBiuင#ပ?တယ#။
jshell> int a = 10
a ==> 10
jshell> int b = 20
b ==> 20
jshell> a + b
$3 ==> 30
အထက#ပ? နမRန1ထ8မ91 အရင#ဆuP& a eနရ1မ91 10 ကiu အစ1&ထiu&ပ?တယ#။ 6ပ7&eတ15 b eနရ1မ91 20 ကiu အစ1&ထiu&ပ?
တယ#။ a + b လiu eရ&လiuက#တ85 အခ?မ91 30 ရပ?တယ#။ Number အမ(iu&အစ1& Variable eတ>ရ8S eပ?င#&*ခင#&ကiu +
Operator ကiu အသuP&*ပuBiuင#ပ?တယ#။
jshell> Character c = a
c ==> 'Ã'
jshell> char d = a + c
| Error:
| incompatible types: possible lossy conversion from int to char
Learning| Java
char d = a + c; 59 မင#&လ>င#
| ^---^
Java Developer Class
အထက#ပ? နမRန1ကuဒ#ထ8မ91လiu Number တန#ဖiu&အeနန8A e*ပ1င#&6ပ7& အသuP&*ပuBiuင#တ85 char type eတ>မ91လ8 +
Operators eတ>ကiu အသuP&*ပuBiuင#ပ?တယ#။ ဒ?eပမ85 တစ#ခu သတi*ပuဖiu လiuအပ#တ1က Wrapper Class *ဖစ#တ85
Character Class eတ>မ91eတ15 Arithmetic Operator eတ>ကiu အသuP&*ပuလiu ရမ91 မဟuတ#ပ?ဘR&။
အထက#ပ? နမRန1ကeတ15 String Type Variable eတ>0က1&မ91 + Operator ကiu အသuP&*ပuတ1ပ?။ ခOင#&ခ(က#အeနန8A
Object eတ>မ91 String တစ#ခuထ8 + Operator ကiu အသuP&*ပuBiuင#တ1 *ဖစ#ပ?တယ#။ + Operator ကiu String Type
Variable eတ>န8A String Litrals eတ>န8A ပR&တ>8အသuP&*ပuBiuင#ပ?တယ#။ String Value eတ>ကiu ဆက#eပ&တ85 အeနန8A
အသuP&*ပuBiuင#ပ?တယ#။
String Variable hello ရ8S တန#ဖiu&ဟ1 “Hello” *ဖစ#6ပ7& java ရ8S တန#ဖiu&ဟ1 “Java” *ဖစ#တ85 အတ>က# hello + “ “ +
java ဆiuတ1ဟ1 “Hello Java” *ဖစ#သ>1&တ1ကiu eတ>Zရပ?မယ#။
ဆက#လက#6ပ7& String Type Variable န8A Primitive Type Variable eတ>0က1&မ91 + Operator ကiu တ>86ပ7& အသuP&*ပu
တ85အခ?မ(iu&မ91 ဘယ#လiu လuပ#eဆ1င#သ>1&တယ#ဆiuတ1ကiu eလ5လ10ကည#50ကရeအ1င#။
jshell> 10 + "1"
$18 ==> "101"
10 + “1” ရ8S အe*ဖဟ1 “101” *ဖစ#ပ?တယ#။ 10 ဟ1 Primitive type အမ(iu&အစ1&*ဖစ#တ85 int *ဖစ#6ပ7& “1” ဟ1 String
*ဖစ#ပ?တယ#။ Primitive Type တစ#ခuန8A String တစ#ခuကiu + ကiu အသuP&*ပu6ပ7& eရ&သ1&တ85 အခ?မ91 Primitive ရ8Sတန#ဖiu&
ကiu String တစ#ခuအeနန8AယR6ပ7& တ>က#ခ(က#သ>1&ပ?မယ#။ ဒ?5e0က1င#5 “10” + “1” လiuယR6ပ7& အe*ဖဟ1 “101” *ဖစ#သ>1&ပ?
မယ#။
jshell> 10 + 1 + "1"
$19 ==> "111"
အထက#ပ?နမRန1ထ8မ91 10 + 1 + “1” လiu Expression တစ#ခuကiu eရ&ထ1&ပ?တယ#။ 10 န8A 1 တiuဟ1 primitive type
*ဖစစ#6ပ7& “1” ဟ1 String *ဖစ#ပ?တယ#။ အပLမ91ပ?ခ85တ85 နမRန1ထ8မ91ဆiuရင# String တစ#ခuန8Aeပ?င#&ရင# အ1&လuP&ဟ1
String လiue*ပ1င#&6ပ7&eပ?င#&0ကတယ#ဆiuတ1ကiu eတ>Zခ85ရမ91ပ?။ ဒ?eပမ85 Expression တစ#ခuမ91 Arithmetic Operator
eတ> တစ#ခuထက#မကပ?ဝင#0ကတ85 အခ?မ91 Operator Precident လiueခLတ85 ဦ&စ1&eပ&စ]#&စ1&ပuPန8A ဘယ# Operator
ကiu အရင# Eveluate လuပ#မယ#ဆiuတ1ကiu စ7&မ(]#&သတ#မ9တ#ထ1&ပ?တယ#။
Operator eတ>တReနရင#eတ15 ဘယ#ဘက#မ91Diတ85 Operator ကiu အရင# Evaluate လuပ#ပ?တယ#။ ဒ?5e0က1င#5 10 န8A 1
ကiu အရင#eပ?င#&6ပ7& ရလ1တ85 ရလဒ#*ဖစ#တ85 11 ကiu “1” န8A eပ?င#&6ပ7& “111” လiu အe*ဖထ>က#တ1 *ဖစ#ပ?တယ#။
jshell> "1" + 10 + 1
$20 ==> "1101"
တကယ#လiu “1” + 10 + 1 လiueရ&ခ85ရင# အရင#ဆuP& “1” + 10 ကiu Evaluate လuပ#ပ?မယ#။ ဒ?5e0က1င#5 အe*ဖဟ1 “101”
*ဖစ#6ပ7& “101” + 1 ကiu Evaluate လuပ#6ပ7& ရလဒ#ကeတ15 “1101” *ဖစ#သ>1&မ91 *ဖစ#ပ?တယ#။
Operator Precedents
Variable eတ>န8A Operators eတ>ကiuတ>86ပ7& eရ&သ1&ထ1&တ1eတ>ကiu Expression လiueခLဆiueလ5Diပ?တယ#။
Expression တစ#ခuမ91 Operator တစ#ခuအထက#မက ပ?ဝင#eလ5Diပ?တယ#။ Arathematic Operator eတ>ကiu
အသuP&*ပuတ85eနရ1မ91 Operator တစ#ခuဆiuပ?က *ပဿန1မDiပ?ဘR&။
jshell> 10 + 1
$21 ==> 11
jshell> 10 - 5
$22 ==> 5
jshell> 10 * 3
$23 ==> 30
jshell> 10 / 3
$24 ==> 3
jshell> 10 % 3
$25 ==> 1
jshell> 5 + 1 * 10
$26 ==> 15
ဒ?eပမ85 1 * 10 ကiu အရင# Evaluate လuပ#6ပ7& ရလ1တ85 ရလဒ#*ဖစ#တ85 10 န8A 5 ကiueပ?င#&သ>1&ပ?တယ#။ ဒ?5e0က1င#5 အe*ဖ
ဟ1 15 *ဖစ#သ>1&ပ?တယ#။ Java မ91က အeပ?င#&အB-တ# Operator eတ>ထက# အe*မp1က# အစ1& Operator eတ>က
ပiu6ပ7& Precident *မင#5မ1&တ85 အတ>က# Precident *မင#5မ1&တ85 Expression ကeန စ6ပ7& Evaluate လuပ#သ>1&တ1 *ဖစ#
ပ?တယ#။
ဆက#လက#6ပ7& အစ1&န8A အe*မp1က# 6ပ7&eတ15 အeပ?င#&န8A အB-တ#ကeက1 Precedent ဘယ#သRXက7&လ8၊ 6ပ7&eတ15 အ85ဒ7
Operator eတ>ကiu Expression ထ8မ91 eရ1eရ&ရင#ဘယ#လiu *ဖစ#မလ8ဆiuတ1ကiu eလ5လ10ကည#50ကရeအ1င#။
jshell> 5 / 2 * 3
$28 ==> 6
jshell> 3 * 5 / 2
$29 ==> 7
အစ1&န8A အe*မ1က#ဟ1 Operator Precedent အရ အတRတRပ8 *ဖစ#ပ?တယ#။ ဒ?5e0က1င#5 Left to Right Evaluate
လuပ#သ>1&တ1ကiu eတ>Zရမ91 *ဖစ#ပ?တယ#။ အeပLဆuP& အe0က1င#&မ91 5 / 2 * 3 လiueရ&ထ1&ပ?တယ#။ အရင#ဆuP& 5 ကiu 2
န8A စ1&6ပ7& ရလ1တ85 ရလဒ#*ဖစ#တ85 2 ကiu 3 န8A e*မp1က#ပ?တယ#။ ဒ?5e0က1င#5 အe*ဖဟ1 6 *ဖစ#သ>1&ပ?တယ#။
jshell> a += 5
$31 ==> 15
jshell> a -= 1
$32 ==> 14
jshell> a *= 2
$33 ==> 28
jshell> a /= 1
$34 ==> 28
jshell> a %= 3
$35 ==> 1
String Type Variable eတ>မ91လ8eပ?င#&6ပ7& အစ1&ထiu&တ85 Operator မ(iu&ကiu အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။ str ရ8S
တန#ဖiu&ဟ1 “Hello “ *ဖစ#တ85 အတ>က# “Java” န8A eပ?င#&6ပ7& အစ1&ထiu&လiuက#တ85 အခ? str ရ8S တန#ဖiu&ဟ1 “Hello Java”
*ဖစ#သ>1&မ91 *ဖစ#ပ?တယ#။
Relational Operator
Variable B9စ#ခuရ8S တန#ဖiu&eတ>ကiu Bi-င#&ယ9]#တ85eနရ1မ(iu&မ91 Relational Operator eတ>ကiu အသuP&*ပuBiuင#ပ?တယ#။
Bi-င#&ယ9]#တယ#လiu e*ပ1တ85eနရ1မ91 Variable B9စ#ခuဟ1 တRသလ1& မတRဘR&လ1&၊ 6ပ7&eတ15 ဘယ#သRက Xက7&သလ8
ငယ#သလ8 အစDiသ*ဖင#5 Bi-င#&ယ9]#တ1ကiu ဆiuလiuတ1 *ဖစ#ပ?တယ#။
jshell> int a = 4, b = 5
a ==> 4
b ==> 5
jshell> a == b
$41 ==> false
jshell> a != b
$42 ==> true
အထက#ပ? နမRန1ထ8မ91 a ကiu 4 န8A 6ပ7&eတ15 b ကiu 5 န8A အစ1&ထiu&ထ1&ပ?တယ#။ အ85ဒ?e0က1င#5 a == b လiu eရ&သ1&
ထ1&တ85 Expression မ91 a န8A b ဟ1 မတRတ85 အတ>က# false လiu အe*ဖထ>က#တ1 *ဖစ#ပ?တယ#။ တဖန# a != b လiu
eရ&ထ1&တ1ဟ1 a န8A b ဟ1 မတRပ?ဘR&လiu eရ&သ1&ထ1&တ1*ဖစ#6ပ7& တကယ#လ8 မတRတ85 အတ>က# true လiu အe*ဖရ
တ1 *ဖစ#ပ?တယ#။
Equality in Strings
Java မ91 အသuP&*ပueနတ85 String ဟ1 အမတန#ထR&ဆန#&တ85 Type အမ(iu&အစ1&*ဖစ#ပ?တယ#။ String ဟ1 Java
Standard API ထ8မ91 ပ?ဝင#တ85 Class တစ#မ(iu&*ဖစ#6ပ7& Data Type အeနန8A အသuP&*ပuBiuင#ပ?တယ#။ String Data
Type eတ>ဟ1 Character Array eတ>ကiu ကiuယ#စ1&*ပuBiuင#တ85 Object တစ#မ(iu&*ဖစ#ပ?တယ#။
Object *ဖစ#တ85 အတ>က# String ဟ1 Reference Data Type *ဖစ#ပ?တယ#။ ဒ?eပမ85 ထR&ထR&*ခ1&*ခ1& String တစ#မ(iu&
ထ8 Source Code eတ>ထ8မ91 Literals eတ>ကiu အသuP&*ပu6ပ7& တန#ဖiu&ကiu တiuက#^iuက# အစ1&ထiu&eရ&သ1&Biuင#တ1 *ဖစ#ပ?
တယ#။ String str = “Hello Java” လiueရ&ထ1&ခ85ရင# “Hello Java” ဆiuတ1က String ရ8S တန#ဖiu&ကiu Literal အeနန8A
eရ&သ1&ထ1&တ1 *ဖစ#ပ?တယ#။
တဖန# Constructor ကiu အသuP&*ပu6ပ7& String str2 = new String(“Hello Java”) လiu eရ&သ1&Biuင#ပ?တယ#။ ဒ?eပမ85
str န8A str2 တiuရ8S သဘ1ဝeတ>ဟ1 မတRည70ကပ?ဘR&။
အထက#ပ?အတiuင#& str န8A str1 တiuကiu Literal တန#ဖiu&*ဖစ#တ85 “Hello Java” န8A အစ1&ထiu&eရ&သ1&ခ85ပ?တယ#။ 6ပ7&eတ15
str == str1 လiu eရ&လiuက#တ85အခ?မ91 true လiu အe*ဖရပ?တယ#။
အထက#ပ? ကuဒ#ထ8မ91eတ15 String str2 = new String(“Hello Java”) ဆiu6ပ7&eရ&သ1&ထ1&*ပန#တယ#။ 6ပ7&eတ15 str
== str2 လiu eရ&သ1&ထ1&တ85 အခ?မ91 မတRဘR&ဆiu6ပ7& false လiu အe*ဖထ>က#ပ?တယ#။ ဒ7eနရ1မ91 သiသ1တ1က
Literal န8A eရ&သ1&ထ1&တ85 Variable ရ8S တန#ဖiu&န8A Constructor ကiu အသuP&*ပu6ပ7& တည#eဆ1က#ထ1&တ85 တန#ဖiu&ခ(င#&
မတRဘR&လiu e*ပ1eနတ1လiu သiထ1&သင#5ပ?တယ#။
String Type Variable eတ>ကiu Literal eတ>န8Aလ8 Assign လuပ#Biuင#သလiu၊ Constructor မ9တဆင#5လ8 Object
eဆ1က#6ပ7& Assign လuပ#Biuင#ပ?တယ#။ Literal န8A eရ&သ1&ထ1&တ85 String eတ>ကiu Heap Memory eပLမ91Diတ85
String Pools ဆiuတ85 eနရ1မ91 သiမ#&ထ1&eလ5Diပ?တယ#။ တကယ#လiu Source Code ထ8မ91 “Hello Java” ဆiu6ပ7&
Literal န8A eရ&သ1&ထ1&တ1ကiu eတ>Zရင# အရင#ဆuP& String Pools ထ8မ91Diလ1&လiu0ကည#5ပ?တယ#။ Diတယ#ဆiuရင# အ85ဒ7
Reference ကiu အသuP&*ပuပ?တယ#။ တကယ#လiu မDiဘR&ဆiuရင#eတ15 String Pools ထ8မ91 String Object ကiu eဆ1က#
6ပ7&မ9 အ85ဒ7 Reference ကiu အသuP&*ပuမ91 *ဖစ#ပ?တယ#။
ဒ?eပမ85 String str2 = new String(“Hello Java”) လiu eရ&လiuက#တ1ဟ1 new Operator ကiu အသuP&*ပuထ1&တ85
အတ>က# String Object အသစ#တစ#ခuကiu Heap Memory eပLမ91 တည#eဆ1က#သ>1&မ91 *ဖစ#ပ?တယ#။ String Pool
ထ8က Reference ကiu အသuP&*ပuမ91 မဟuတ#ပ?ဘR&။ ဒ?5e0က1င#5 str == str2 လiueရ&လiuက#တ85အခ?မ91 တန#ဖiu&eတ>က တR
ရ8Sသ1&န8A false ဆiu6ပ7& အe*ဖထ>က#တ1 *ဖစ#ပ?တယ#။
ဒ?5eပမ85 String eတ>မ91eတ15 Memory Address တRတ1 မတRတ1ထက# သRတiuရ8S တန#ဖiu&တRရင# တRတယ#လiu အe*ဖ
ထ>က#ခ(င#0ကမ91 *ဖစ#ပ?တယ#။ ဒ?5e0က1င#5 String eတ>ကiu တRတယ#မတRဘR&ဆiuတ1ကiu စစ#eဆ&ခ(င#ရင# equals method
ကiu အသuP&*ပu6ပ7& စစ#eဆ&သင#5ပ?တယ#။
jshell> [Link](str2)
$48 ==> true
jshell> 10 != 11
$49 ==> true
jshell> 10 != 10
$50 ==> false
jshell> 10 > 10
$52 ==> false
jshell> 10 >= 10
$53 ==> true
အလ1&တR Less Than န8A Less Than or Equal To (<, <=) Operator eတ>ကiuလ8 အသuP&*ပuBiuင#မ91*ဖစ#ပ?တယ#။ ဒ7
လiu Relation Operator eတ>န8A Variable eတ>ကiu တ>8ဖက#eရ&သ1&ထ1&တ1eတ>ကiu Relational Expression လiu
eခLဆiueလ5Diပ?တယ#။ eသ*ခ1တ1တစ#ခuကeတ15 Relational Expression eတ>ရ8S ရလဒ#eတ>ဟ1 Boolean တန#ဖiu&
*ဖစ#တ85 true သiuမဟuတ# false ပ8 *ဖစ#eနမ91ပ8 *ဖစ#ပ?တယ#။
Logical Operators
Boolean တန#ဖiu&eတ>၊ Boolean Expression eတ>န8A တ>8ဖက#6ပ7& Logic eတ>ကiu eရ&သ1&လiuတ85 အခ?မ(iu&မ91
အသuP&*ပuBiuင#တ85 Operator eတ> *ဖစ#0ကပ?တယ#။ အသuP&*ပuBiuင#တ85 Operator eတ>ကeတ15 AND (&), OR (|), Short
Cut AND (&&), Short Cut OR (||), NOT (!) န8A XOR (^) တiuပ8 *ဖစ#0ကပ?တယ#။
jshell> !true
$64 ==> false
jshell> !false
$65 ==> true
OR (|) Operator
And Operator eတ>ကiu Boolean တန#ဖiu&B9စ#ခu ဒ?မ9မဟuတ# Boolean Expression B9စ#ခuအ0က1&မ91 တစ#ခuခuမ9န#eန
ရင# True ကiu *ပန#eပ&မ91 *ဖစ#6ပ7& B9စ#ခuစလuP&မ91&မ9သ1 False ကiu *ပန#eပ&မ91 *ဖစ#ပ?တယ#။
ဒ7လiuအeနအထ1&မ(iu&မ91 သ1မန# AND (&) န8A OR (|) Operator eတ>ကiu အသuP&*ပuခ85ရင# ဘယ#ဘက#က Expression
ကiu Evaluate လuပ#6ပ7& true *ဖစ#စရ1 အe0က1င#&မDiခ85ရင#eတ1င#မ9၊ ဒ?မ9မဟuတ# false *ဖစ#စရ1အe0က1င#&မDiခ85
ရင#eတ1င#မ9၊ ည1ဘက#က Expression ကiu ဆက#6ပ7& Evaluate လuပ#eနမ91 *ဖစ#ပ?တယ#။ အ85ဒ?eတ>ကiu စမ#&သပ#ဖiu
Boolean တန#ဖiu&eတ>ကiu *ပန#eပ&Biuင#တ85 Method eလ&eတ>ကiu *ပင#ထ1&0ကည#50ကရeအ1င#။
အထက#ပ? နမRန1ထ8မ91ဆiuရင# getFalse() ကiu Evaluate လuပ#6ပ7&တ85အခ?မ91 false ကiu ရမ91 *ဖစ#တ85 အတ>က# AND
Expression ရ8S ရလဒ#ဟ1 ဘယ#eတ15မ9 true *ဖစ#လ1စရ1 အe0က1င#&မDieတ15ပ?ဘR&။ ဒ?eပမ85 ည1ဘက#က
getTrue() Expression ကiu Evaluate လuပ#သ>1&တ85 အတ>က# Call False လiueဖL*ပ6ပ7&တ85 အခ?မ91 Call True ကiu
eဖL*ပသ>1&တ1 *ဖစ#ပ?တယ#။
Relational <, <=, >, >=, !=, == Primitive Variable မ(1&အ1& Bi-င#&ယ9]#ရ1တ>င# အသuP&*ပu
အထက#ပ?နမRန1ကeတ15 AND (&) အစ1& Short Cut AND (&&) ကiu အသuP&*ပuသ>1&တ1ပ?။ ဘယ#ဘက#က
Expression *ဖစ#တ85 getFalse() ကiu Evaluate လuပ#6ပ7&တ85အခ?မ91 ရလဒ#ဟ1 false *ဖစ#eန6ပ7ဆiuရင# ဘယ#နည#&န8Aမ9
true *ဖစ#စရ1မDieတ15တ85 အတ>က# ည1ဘက#က Expression *ဖစ#တ85 getTrue() ကiu Evaluate မလuပ#eတ15ပ8 တန#&
6ပ7& အe*ဖကiu false လiuထuတ#eပ&ခ85ပ?တယ#။
အလ1&တRပ8 Short Cut OR (||) Operator ဟ1လ8 ဘယ#ဘက#က Expression ကiu Evaluate လuပ#6ပ7& အe*ဖဟ1
True *ဖစ#ခ85ရင# ဘယ#နည#&န8Aမ9 False *ဖစ#စရ1အe0က1င#&မDieတ15တ85 အတ>က# ည1ဘက#က Expression *ဖစ#တ85
getTrue() method ကiu Invoke မလuပ#eတ15ပ8 အe*ဖကiu တန#&6ပ7& true လiu ထuတ#eပ&ခ85တ1*ဖစ#ပ?တယ#။
Short Cut eတ>ဟ1 ဘယ#ဘက#က Expression ရ8S တန#ဖiu&ကiu 0ကည#56ပ7& အe*ဖကiuမရeသ&ဘR&ဆiuရင#eတ15 ည1ဘက#
က Expression ကiu ဆက#6ပ7& Evaluate လuပ#သ>1&မ91 *ဖစ#ပ?တယ#။
Learning Java 68 မင#&လ>င#
Java Developer Class
Notes
Logical Operator eတ>ကiu Boolean Expression eတ>0က1&မ91 အသuP&*ပuတ1eတ>ကiuပ8 eဖL*ပခ85ပ?တယ#။ ဒ?eပမ85
Logical Operator eတ>ကiu အ*ခ1&eသ1 Primitive Type eတ>0က1&မ91လ8 အသuP&*ပuBiuင#ပ?တယ#။ အ85ဒ7လiu အသuP&*ပuတ85
အခ?မ91 Binary Data အ*ဖစ#e*ပ1င#&6ပ7&တ>က#ခ(က#သ>1&မ91 *ဖစ#ပ?တယ#။ ဒ?eပမ85 Business Application ရ8S Logic
eတ>ကiu eရ&သ1&0ကတ85အခ?မ(iu&မ91 Boolean Expression eတ>ကiu အသuP&*ပuတ1ကမ(1&တ85အတ>က# ဒ7စ1အuပ#ထ8မ91
eတ15 Boolean Expression န8A တ>8ဖက#အသuP&*ပuတ85 နမRန1မ(1&ကiu eဖL*ပသ>1&တ1 *ဖစ#ပ?တယ#။
Statements
Java Compilar ကeန Compile လuပ#Biuင#6ပ7& JVM ကeန လuပ#eဆ1င#မ-eတ>ကiu လuပ#eဆ1င#eပ&Biuင#တ85 အဓiပr?ယ#*ပ
ည#5စuPတ85 စ1e0က1င#&eတ>ကiu Statement လiueခLပ?တယ#။ eအ1က#က နမRန1အတiuင#& Class တစ#ခuကiu eရ&သ1&ထ1&ပ?
မယ#။
✓ Declaration Statements
Variable eတ>ကiu အသuP&*ပuမယ#ဆiu6ပ7& Declare လuပ#တ85အခ?မ91 eရ&သ1&Biuင#တ85 ဝ?က(အမ(iu&အစ1&မ(iu&*ဖစ#ပ?တယ#
✓ Expression Statements
Variable eတ>န8A Operator eတ>ကiu တ>8ဖက#eရ&သ1&ထ1&တ1ကiu Expression လiueခLတယ#ဆiuတ1 eUခန#&မ91
eလ5လ1ခ856ပ7&ပ?6ပ7။ အခ(iueသ1 Expression eတ>ကiu eန1က#မ91 ; ကiueရ&လiuက#^uPန8A Statement အeနန8A အသuP&*ပu
Biuင#ပ?တယ#။
Declaration Statements
Java Program eတ>ထ8မ91 အသuP&*ပuမည#5 Variable eတ>ကiu Declare လuပ#တ85အခ?မ91 အသuP&*ပuBiuင#တ85 Statement
eတ> *ဖစ#ပ?တယ#။ Variable eတ>ကiu Declare လuပ#တ85အခ?မ91 Type န8A Name တiuကiu eရ&သ1&ရန#လiuအပ#6ပ7&
အeန1က#မ91 ; ကiu eရ&သ1&လiuက#ရင#ရပ?6ပ7။ အe*ခခPအ1&*ဖင#5 Variable eတ>ကiu Declare လuပ#တ85 eနရ1မ91 ပuPစPB9စ#
မ(iu&DiBiuင#ပ?တယ#။ အ85ဒ?eတ>ကeတ15 Variable eတ>ကiu ^iu&^iu& Declare လuပ#တ85ပuPစPန8A Initial တန#ဖiu&eတ>ကiu Assign
လuပ#6ပ7& Declare လuပ#တ85 ပuPစPဆiu6ပ7& B9စ#မ(iu&DiBiuင#ပ?တယ#။
String str1;
public Hello() {
str1 = "Hello Java";
}
}
အထက#ပ?ပuPစPကeတ15 သ1မန# ^iu&^iu& Declare လuပ#တ85 ပuPစPပ?။ String str1; ဆiuတ1က str1 Variable ကiu Declare
လuပ#eနတ85 Declaration Statement *ဖစ#ပ?တယ#။ 6ပ7&eတ15မ9 Constructor ထ8မ91 str1 = “Hello Java”; ဆiu6ပ7&
Assignment လuပ#eနပ?တယ#။
public Hello() {
String str1;
}
}
အထက#ပ?နမRန1ကeတ15 String str1; ကiu Constructor ထ8မ91 eရ&သ1&ထ1&တ85 အတ>က# Local Variable တစ#ခu
ကiu Declare လuပ#eနတ1ပ8 *ဖစ#ပ?တယ#။ Local Variable eတ>ကiu အသuP&*ပuတ85 eနရ1မ91 တစ#ခu သတiထ1&သင#5တ1
ကeတ15 Initialize မလuပ#ပ8 အသuP&*ပuလiu မရတ85 အခ(က#*ဖစ#ပ?တယ#။ Local Variable eတ>ဟ1 Default တန#ဖiu&ပ?မ
လ1တ85 အတ>က# တန#ဖiu&ကiu Assign မလuပ#ခင# အသuP&*ပuလiu မရပ?ဘR&။
public Hello() {
String str1 = “Hello Java”;
}
}
Expression Statements
Expression eတ>ရ8S eန1က#မ91 ; eရ&လiuက#တ1န8A Statement *ဖစ#သ>1&တ85 Statement မ(iu&ကiu Expression
Statement လiueခL0ကပ?တယ#။ မ(1&eသ1အ1&*ဖင#5 Assignment Expression eတ>၊ Increment, Decrement
Expressioneတ>၊ Method Invocation Expression eတ>န8A Object Creation Expression eတ>ကiu Statement
အeနန8A အသuP&*ပuBiuင#ပ?တယ#။
String str1;
public Hello() {
str1 = "Hello Java";
}
}
အထက#ပ?နမRန1မ91 str1 = “Hello Java” လiueရ&သ1&ထ1&တ1ဟ1 str variable eနရ1ကiu “Hello Java” န8A
အစ1&ထiu&eနတ85 Assignment Expression *ဖစ#6ပ7& eန1က#ကeန ; ကiueရ&သ1&လiuက#တ1န8A Assign Statement
တစ#e0က1င#& *ဖစ#လ1ပ?တယ#။
int count;
အထက#ပ?နမRန1ထ8မ91 countUp() method ထ8မ91 count ++; လiueရ&သ1&ထ1&တ1ဟ1 count ကiu တစ#တiu&eပ&တ85
increment statement *ဖစ#ပ?တယ#။ 6ပ7&eတ15 main method ထ8မ91 eရ&သ1&ထ1&တ85 h = new Hello(); ဆiuတ1
က Object Creation Statement *ဖစ#6ပ7& [Link](); ဆiuတ1ကeတ15 Method Invocation Statement *ဖစ#ပ?
တယ#။
eဖL*ပပ?အတiuင#& Expression eတ>ရ8S အeန1က#မ91 ; ကiu eရ&လiuက#^uPန8A Statement *ဖစ#သ>1&တ85 Statement eတ>
ဟ1 Expression Statement eတ> *ဖစ#0ကပ?တယ#။
6ပ7&ခ85တ85 အခန#&eတ>တuန#&က Variable eတ>၊ Java Data Type eတ>၊ Method eတ>၊ Class eတ> န8A Operator eတ>
အe0က1င#&ကiu eလ5လ1ခ850ကပ?တယ#။ ဒ?eပမ85 Method eတ>ထ8မ91 ကuဒ#eတ>ကiu ဘယ#လiu eရ&ရမယ#ဆiuတ1ကiueတ15 မ
သiရeသ&ပ?ဘR&။ ဘယ#လiuလuပ#ရမယ#ဆiuတ1ကiu eရ&သ1&Biuင#တ1eတ>ကeတ15 Control Flow Statements eတ>ပ8
*ဖစ#0ကပ?တယ#။
Controls Flow Statement အeနန8A Decision Statement န8A Looping Statement ဆiu6ပ7&အမ(iu&အစ1&ခ>8*ခ1&ထ1&
ပ?တယ#။ အe*ခအeနတစ#ခuအeပLမRတည#6ပ7& Program အသ>1&အလ1eတ>ကiu ခ>8*ခ1&eပ&Biuင#တ85 Statement eတ>က
Decision Statemebt eတ>*ဖစ#0က6ပ7& အXကiမ#Xကiမ# လuပ#eဆ1င#မ-eတ>ကiu eရ&သ1&Biuင#eအ1င#*ပင#eပ&ထ1&တ85
Statement eတ>ကeတ15 Looping Statement eတ>ပ8 *ဖစ#0ကပ?တယ#။
Decision Statement
ဆiu0ကပ?စiu၊ ကiန#&*ပည#5တစ#ခuကiu 0ကည#56ပ7& စuPကiန#&လ1& မကiန#&လ1&ဆiuတ1ကiu ခ>8*ခ1&ခ(င#တယ#။ ဒ?ကiu ဘယ#eနရ1မ91သuP&
ရမလ8။ သuP&လiuရတ85 eနရ1eတ> အမ(1&Xက7&Diပ?တယ#။ View eပLမ91 Table တစ#ခuရ8S Row eတ>ကiu စuPမeပLမ91ခ>86ပ7&
အeရ1င#မတReအ1င#eဖL*ပခ(င#ရင# ဒ7လiuမ(iu& ကiန#&တစ#ခuကiu 0ကည#56ပ7& စuPလ1&မလ1&ဆiuတ1ကiu ခ>8*ခ1&ရeတ15မ91ပ?ပ8။
စuPဆiuရင# အ*ဖteရ1င#ကiueဖL*ပ6ပ7& မဆiuရင# မ7&ခiu&eရင#န8A eဖL*ပခ(င#တယ#ဆiuရင# အရင#ဆuP& Row ရ8S Index Number ဟ1
စuPလ1&မလ1&ဆiuတ1ကiu ခ>8*ခ1&ဖiuလiuပ?တယ#။ ဒ7လiuအeနအထ1&မ(iu&ဆiuရင# ကOန#eတ1#တiuဟ1 Decision Statement
eတ>ကiu အသuP&*ပueတ15မ91 *ဖစ#ပ?တယ#။
Java Programming Language မ91 အသuP&*ပuBiuင#တ85 Decision Statement eတ>ကeတ15 eအ1က#ပ? အတiuင#& *ဖစ#
0ကပ?တယ#။
If Statement
jshell> int a = 10
a ==> 10
jshell> if (a == 10) {
...> [Link]("A is " + 10);
...> }
A is 10
IF / ELSE Statement
jshell> int a = 10
a ==> 10
အထက#ပ?နမRန1မ91 eဖL*ပထ1&တ85 အတiuင#& a ကiu 10 န8A အစ1&ထiu&ပ?တယ#။ 6ပ7&eတ15 Condition မ91 a > 10 လiu စစ#
ထ1&ပ?တယ#။ ဒ?eပမ85 a ဟ1 10 *ဖစ#တ85 အတ>က# a ဟ1 10 ထက#မXက7&တ85 အတ>က# IF Clause ကiu အလuပ#မလuပ#
eတ15ပ8 Else Clause ကiuပ8အလuပ#လuပ#သ>1&မ91 *ဖစ#ပ?တယ#။
ဒ?5e0က1င#5 Else Clause ထ8မ91 eရ&သ1&ထ1&တ85 ကuဒ#eတ>ကiu အလuပ#လuပ#သ>1&မ91 *ဖစ#တ85 အတ>က# A is not greater
than 10 ဆiu6ပ7& eဖL*ပသ>1&တ1ကiu eတ>Zရပ?မယ#။
ဒ7 Statement ကeတ15 Condition အမ(iu&အမ(iu&အeပLမRတည#6ပ7& မiမiရ8S Program ရ8S Flow ကiue*ပ1င#&လ8လiuတ85 အခ?
မ(iu&မ91 eရ&သ1&အသuP&*ပuBiuင#ပ?တယ#။
ပထမ Conditon ကiu စစ# ကiuက#ရင#တစ#မ(iu&လuပ#၊ မကiuက#ရင# eန1က# Condition တစ#မ(iu&ကiu စစ# ကiuက#ရင#တစ#မ(iu&
လuပ# မကiuက#ရင# eန1က#ထပ# Condition အမ(iu&မ(iu&ကiu ထပ#စစ#eဆ&Biuင#ပ?တယ#။ eန1က#ဆuP&မ9 မစစ#ခ(င#ရင#လ8 Else
Clause ကiu eရ&သ1&ထ1&လiuရပ?တယ#။
အထက#ပ?အတiuင#& showGrade Method ကiu eရ&သ1&ထ1&ပ?တယ#။ Argument အeနန8A int mark ကiu ရယReနပ?
တယ#။ အမ9တ#အeပLမRတည#6ပ7& အဆင#5ကiu ခ>8*ခ1&eပ&Biuင#တ85 Method တစ#ခuပ?။
jshell> showGrade(39)
Fails
jshell> showGrade(40)
Pass
jshell> showGrade(79)
Pass
6ပ7&eတ15 ဒuတiယ Condition *ဖစ#တ85 else if ထ8မ91 mark >= 40 && mark < 80 လiueရ&ထ1&ပ?တယ#။ ဒ?e0က1င#5
ပထမ Condition န8A မကiuက#တ1eတ>အ1&လuP&ဟ1 ဒuတiယ Condition ထ8ကiu eရ1က#လ10ကပ?တယ#။ အထက#ပ? နမR
န1ထ8မ91eတ15 showGrade Method ကiu Parameter အeနန8A 40 န8A 79 ကiu အသuP&*ပuထ1&0ကပ?တယ#။ 40 eက1
79 ပ? 40 ဒ?မ9မဟuတ# 40 ထက#Xက7&eန6ပ7& 80 ထက#လ8 ငယ#eန0ကပ?တယ#။ ဒ?5e0က1င#5 Pass ဆiu6ပ7& eဖL*ပBiuင#0ကတ1
*ဖစ#ပ?တယ#။
jshell> showGrade(80)
Excellent
jshell> showGrade(99)
Excellent
jshell> showGrade(100)
Perfect
jshell> showGrade(101)
Impossible
eန1က#6ပ7& showGrade(100) လiu Method ကiu Invoke လuပ#လiuက#တ85 အခ?မ91လ8 Excellent လiu eဖL*ပBiuင#တ1ကiu
eတ>Zရပ?တယ#။ ဒ?ကလ8 စတuတv Condition *ဖစ#တ85 mark == 100 န8A ကiuက#ည7တ85 အတ>က# eဖL*ပeပ&သ>1&တ1 *ဖစ#
6ပ7& eန1က#ဆuP& 101 န8A Method ကiu Invoke လuပ#တ85အခ? အထက#eဖL*ပပ? Condition တစ#ခuန8Aမ9 မကiuက#ည7ပ8 Else
Clause ထ8က လuပ#eဆ1င#ခ(က#eတ>ကiuလuပ#eပ&သ>1&တ85 အတ>က# Impossible ဆiuတ1ကiu eဖL*ပeပ&သ>1&တ1 *ဖစ#ပ?
တယ#။ ဒ7 Statement မ(iu&ကiu Condition အမ(iu&မ(iu&အeပL လuပ#eဆ1င#မ-eတ>ခ>8*ခ1&6ပ7& လuပ#eဆ1င# eစလiuတ85အခ?မ91
အသuP&*ပuBiuင#ပ?မယ#။
Switch Statement
Switch Statement eတ>ဟ1 if - else if - else statement eတ>န8A တRည7သလiuDiပ?တယ#။ Decision အမ(1&အeပL
မ91 မRတည#6ပ7& လuပ#eဆ1င#မ-eတ>ကiu ခ>8*ခ1&လuပ#eဆ1င# eစBiuင#မ91 *ဖစ#ပ?တယ#။ ဒ?eပမ85 if - else if - else statement
eတ>မ91eတ15 Decision eတ>ကiu လiuအပ#သလiu eရ&သ1&Biuင#eပမ85၊ switch statement eတ>မ91eတ15 decision eတ>
ကiu Xကiuတင#သတ#မ9တ#ထ1&တ85 တန#ဖiu&အeပLမ91 မRတည#6ပ7& လuပ#eဆ1င#မ-eတ>ကiu ခ>8*ခ1&လuပ#eဆ1င# eစမ91 *ဖစ#ပ?
တယ#။
Switch Statement eတ>ထ8မဟ1 Case eတ>ကiu တစ#ခuထက#မက eရ&သ1&လiuရBiuင#ပ?တယ#။ Case eတ>မ91 Switch
လuပ#မည#5 Value ရ8S Type အလiuက# Literals eတ> ဒ?မ9မဟuတ# Constant eတ>ကiu eရ&သ1&Biuင#ပ?တယ#။ တကယ#လiu
Value ဟ1 Switch လuပ#မည#5 Value န8A ကiuက#ည7မယ#ဆiuရင# Case eတ>ထ8ကiu ဝင#eရ1က# အလuပ#လuပ#eစမ91 *ဖစ#ပ?
တယ#။
Case eတ>ရ8S Statement eတ>ကiu လuပ#eဆ1င#ရင#& break; ကiu eတ>ရင#eတ15 Switch Statement eတ>ထ8ကeန
ထ>က#ခ?သ>1&မ91 *ဖစ#ပ?တယ#။ ဒ?eပမ85 beak ကiu မeတ>Zခ85ရင#eတ15 Statement eတ>အ1&လuP&ကiu 6ပ7&တ85 အထi
လuပ#eဆ1င# သ>1&မ91 *ဖစ#ပ?တယ#။
void show(int i) {
switch(i) {
case 1:
[Link]("Java SE");
break;
case 2:
[Link]("Java EE");
break;
case 3:
[Link]("Spring");
break;
default:
[Link]("Everything");
break;
}
}
အထက#ပ?အတiuင#& JShell န8A show ဆiuတ85 Method တစ#ခuကiu eရ&သ1&ထ1&ပ?တယ#။ အ85ဒ7 Method မ91 int အမ(iu&
အစ1& Variable i ကiu Parameter အeနန8A ရယRထ1&ပ?တယ#။ 6ပ7&eတ15မ9 i အeပLမRတည#6ပ7& Switch လuပ#eနပ?
တယ#။ { န8A စ6ပ7& } န8A ဆuP&တ85 eနရ1ကeတ15 Switch Block *ဖစ#6ပ7& အ85ဒ7အထ8မ91eတ15 case eတ>ကiu တစ#ခuထက#
မက eရ&သ1&Biuင#ပ?တယ#။
အထက#ပ? နမRန1ထ8မ91ဆiuရင# i ရ8S တန#ဖiu&ဟ1 ပထမဆuP& case မ91eဖL*ပထ1&တ85 တန#ဖiu&န8A ကiuက#ည7ရင# အ85ဒ7 case ထ8
မ91 eရ&သ1&ထ1&တ85 Statement eတ>ကiu အလuပ#လuပ#eစမ91 *ဖစ#ပ?တယ#။ အ85ဒ7eနရ1မ91 break ကiu eတ>Zတ1န8A
switch statement ထ8က ထ>က#သ>1&မ91 *ဖစ#6ပ7& တကယ#လiu break သ1 မeတ>Zပ?က Switch Statement ဆuP&တ85
အထi အထ8က Statement eတ>ကiu လuပ#eဆ1င#သ>1&မ91 *ဖစ#ပ?တယ#။
Switch Block ထ8မ91 case eတ>အ*ပင# default ကiuလ8 တစ#ခu eရ&သ1&Biuင#ပ?တယ#။ i ရ8S တန#ဖiu&ဟ1 ဘယ# case ရ8S
တန#ဖiu&န8Aမ9 မတRခ85ရင# default ထ8က Statement ကiuလuပ#eဆ1င#သ>1&မ91 *ဖစ#ပ?တယ#။
jshell> show(2)
Java EE
jshell> show(4)
Everything
အထက#ပ? ကuဒ#eတ>ထ8မ91လiu show method ကiu 2 န8A eပ&eခL0ကည#5တ85 အခ?မ91 case 2 ထ8က Statement ကiu
လuပ#eဆ1င# သ>1&တ85 အတ>က# Java EE လiu eဖL*ပeန6ပ7& 4 န8A eပ&eခL0ကည#5တ85အခ? default ထ8က Statement ကiu
လuပ#eဆ1င#သ>1&eစတ85 အတ>က# Everything လiueဖL*ပeပ&သ>1&တ1ကiu eတ>Zရမ91 *ဖစ#ပ?တယ#။
Looping Statements
လuပ#eဆ1င#မ-eတ>ကiu အXကiမ#Xကiမ# လuပ#eဆ1င#စလiuတ1တiu၊ Array ဒ?မ9မဟuတ# Collection ထ8က Object eတ>ကiu
အသuP&*ပu6ပ7& တစ#ခu6ပ7&တစ#ခu လuပ#eဆ1င#မ-eတ>ကiu *ပuလuပ#eစလiuတ85 အခ?မ(iu&eတ>မ91 Looping Statement eတ>ကiu
အသuP&*ပuBiuင#ပ?တယ#။ Java မ91 Looping Statement အeနန8A for statement, while statement န8A do - while
statement ဆiu6ပ7& eရ&သ1&Biuင#0ကပ?တယ#။
For statement
Java Programming မ91 For Statement ကiu Counter အeပLမ91 မRတည#6ပ7& Loop ပတ#တ85 ပuPစPန8A Collection ဒ?မ9
မဟuတ# Array တစ#ခuထ8မ91 Diတ85 Element eတ>ကiu Iterate လuပ#တ85 ပuPစPဆiu6ပ7& B9စ#မ(iu&eရ&သ1&Biuင#ပ?တယ#။ အထက#ပ?
ပuPစPကeတ15 Counter အeပLမ91မRတည#6ပ7& Loop ပတ#တ85 ပuPစPမ(iu& *ဖစ#ပ?တယ#။
Counter ကiu အသuP&*ပu6ပ7& eရ&သ1&တ85 For Statement eတ>ဟ1 Java Programming ကiu စတင# Release လuပ#
တ85 အခ(iန#ကထ8က ပ?ဝင#ခ85တ85 eရ&သ1&ပuP*ဖစ#6ပ7& Index Number eတ>ကiu အသuP&*ပuလiuတ85 အခ?မ(iu&မ91 အသuP&*ပuသင#5တ85
eရ&သ1&ပuP*ဖစ#ပ?တယ#။
For Statement မ91 အစiတ# အပiuင#& ၄ ခuပ?ဝင#ပ?တယ#။ အ85ဒ?eတ>ကeတ15 Initialization, Condition, Update
Counter န8A For Block တiu *ဖစ#0ကပ?တယ#။ Initialization မ91eတ15 For Loop မ91 အသuP&*ပuမည#5 Counter ကiu
Initialize လuပ#တ85 Expression *ဖစ#ပ?တယ#။ int i = 0 လiueရ&သ1&ထ1&တ85 အပiuင#& *ဖစ#ပ?တယ#။ အ85ဒ7eနရ1မ91 i ဟ1
Counter *ဖစ#6ပ7& ကနဦ&တန#ဖiu&ကiu 0 လiu သတ#မ9တ#eနပ?တယ#။
eန1က# Expression တစ#ခuကတ15 Counter ကiu Update လuပ#eပ&မည#5 Expression *ဖစ#ပ?တယ#။ Loop ထ8ကiu ဝင#
eရ1က#6ပ7& For Block ထ8က ကuဒ#eတ>ကiu လuပ#eဆ1င#6ပ7&တiuင#& Counter ကiu Update လuပ#မ91 *ဖစ#ပ?တယ#။
အထက#ပ? နမRန1ထ8မ91eတ15 i ++ ကiu eရ&သ1&ထ1&တ85 အတ>က# တစ#Xကiမ# Loop ပတ#6ပ7&တiuင#& Counter *ဖစ#တ85 i ရ8S
တန#ဖiu&က တစ#တiu&သ>1&မ91 *ဖစ#ပ?တယ#။
အထက#ပ? နမRန1 အတiuင#&ဆiuရင# ၁၀ Xကiမ# Loop ပတ#6ပ7&တ85 အခ?မ91 Counter ရ8S တန#ဖiu&ဟ1 10 *ဖစ#လ16ပ7& i < 10
ဆiuတ85 Boolean Expression ရ8S ရလဒ#ဟ1 false *ဖစ#လ1တ85အခ?မ91 For Loop ကiu 6ပ7&ဆuP&eစမ91 *ဖစ#ပ?တယ#။
အထက#ပ? နမRန1ထ8မ91 array ထ8မ91 “Hello” န8A “Java” တiuကiu eရ&သ1&ထ1&ပ?တယ#။ 6ပ7&eတ15 for statement ရ8S
Counter ကiu 0 ကeန စeစ6ပ7& Condition အeနန8A i < [Link] လiu eရ&သ1&ထ1&တ85 အတ>က# i ဟ1 array ရ8S
Length *ဖစ#တ85 2 ထက# ငယ#eနသမT Loop အတ>င#&Di ကuဒ#eတ>ကiu အလuပ#လuပ#eစမ91 *ဖစ#ပ?တယ#။ ဒ?5e0က1င#5 B9စ#
Xကiမ# Loop ပတ#သ>1&တ1ကiu eတ>Zရပ?လiမ#5 မယ#။
ဒ7လiuမ(i& Array ထ8မ91Diတ85 Element eတ>ကiu Iterate လuပ#6ပ7& အသuP&*ပuခ(င#ရင# eန1က#တစ#မ(iu& eရ&သ1&Biuင#ပ?eသ&
တယ#။ အ85ဒ?ကeတ15 Java 5 မ91 စတင#ပ?ဝင#လ1ခ85တ85 Enhance For Statement *ဖစ#ပ?တယ#။
Enhance For Statement eတ>ဟ1 Array ဒ?မ9မဟuတ# Collection eတ>ရ8S Element eတ>ကiu တစ#ခuခ(င#& Iterate
လuပ#6ပ7& အသuP&*ပuလiuတ85 အခ?မ(iu&မ91 အသuP&ဝင#ပ?တယ#။ for (Type obj : list) ဆiu6ပ7& eရ&သ1&ထ1&တ85 eနရ1မ91 Type
ဟ1 list ထ8မ91Diတ85 Element ရ8S Type ကiu eရ&သ1&ရမ91 *ဖစ#ပ?တယ#။ list Object ထ8မ91Diတ85 Element eတ>က obj
အeနန8A Itelrate လuပ#6ပ7& for block ထ8မ91 အသuP&*ပuBiuင#မ91 *ဖစ#ပ?တယ#။ List ထ8မ91Diတ85 Element eတ> အ1&လuP&
Iterate လuပ#6ပ7&တ85 အခ?မ91 for loop ကiu 6ပ7&ဆuP&eစမ91 *ဖစ#ပ?တယ#။
အထက#ပ?နမRန1ထ8မ91 for (String str : array) လiueရ&သ1&ထ1&တ85 အတ>က# array ထ8မ91Diတ85 String eတ>ကiu
Iterate လuပ#သ>1&မ91 *ဖစ#ပ?တယ#။ array = {“Hello”, “Java”} လiueရ&သ1&ထ1&တ85 အတ>က# array ထ8မ91 String
B9စ#ခuDi6ပ7& အe*ဖမ91လ8 Hello န8A Java ကiu ထuတ#*ပသ>1&Biuင#တ1ကiu eတ>Zရပ?မယ#။
Enhance For Statement eတ>ဟ1 Array ဒ?မ9မဟuတ# Collection ထ8က Element eတ>ကiu တစ#ခuခ(င#& Iterate
လuပ#6ပ7& အသuP&*ပuBiuင#တ85 အတ>က# For Each Statement လiueခLဆiueလ5Diပ?တယ#။
While Statement
Condition တစ#ခuဟ1 မ9န#eနသ၍ အXကiမ#Xကiမ# အလuပ#လuပ#eနeစလiuတ85 အခ?မ(iu&မ91 while statement ကiu eရ&သ1&
အသuP&*ပuBiuင#ပ?တယ#။
While Statement ကiu eရ&သ1&တ85 eနရ1မ91 While Block ထ8ကiu ဝင#6ပ7& အလuပ#လuပ#မလ1& မလuပ#ဘR&လ1&ဆiuတ1
ကiu စစ#eဆ&Biuင#တ85 Condition န8A အ85ဒ7 Condition မ9န#eနခ85ရင# အလuပ#လuပ#eစခ(င#တ85 ကuဒ#eတ>ကiu eရ&ထ1&လiuရတ85
While Block တiu ကiu eရ&သ1&ထ1&ဖiuလiuအပ#ပ?တယ#။
Program Flow အရဆiuရင# အရင#ဆuP& Condition န8A စစ#တယ#၊ ကiuက#ရင# While Block ထ8က ကuဒ#eတ>ကiu အလuပ#
လuပ#eစပ?တယ#။ မကiuက#ရင# While Loop ထ8က eန ထ>က#ပ?မယ#။ While Block ထ8က ကuဒ#eတ>ကiu လuပ#eဆ1င#6ပ7&
တiuင#& Condition ကiu *ပန#6ပ7& စစ#ပ?တယ#။ Condition န8A ကiuက#ည7eနတiuင#& While Block ထ8က ကuဒ#eတ>ကiu အလuပ#
လကuပ#eစမ91 *ဖစ#ပ?တယ#။ Condition eနရ1ကiu Boolean Expression န8A eရ&သ1&Biuင#6ပ7& အ85 ဒ7eနရ1မ91 true ကiu
သ1eရ&ထ1&မယ#ဆiuရင# While Loop ထ8ကeန ထ>က#Biuင#eတ15မ91 မဟuတ#ပ?ဘR&။
အထက#ပ?နမRန1ထ8မ91eတ15 count ကiu 0 လiueပ&ထ1&6ပ7& limit ကiu 5 လiueပ&ထ1&ပ?တယ#။ While Loop ထ8ကiu ဝင#မ
လ1&ဆiuတ1ကiu စစ#တ85 Condition eနရ1မ91 count < limit လiu eရ&သ1&ထ1&ပ?တယ#။ count ဟ1 limit ထက#ငယ#
eနတ85 အတ>က# While Block ထ8က ကuဒ#eတ>ကiu အလuပ#လuပ#eစမ91 *ဖစ#ပ?တယ#။ While Block ထ8မ91eတ15 count
ကiu Print လuပ#6ပ7& count ကiu တစ#တiu&eနeစပ?တယ#။ ဒ?e0က1င#5 Loop တစ#ခ? ပတ#6ပ7&တiuင#& Count ဟ1 တစ#တiu&
သ>1&ပ?မယ#။ ၅ Xကiမ# Loop ပတ#6ပ7&တ85အခ?မ91eတ15 count ဟ1 5 *ဖစ#လ16ပ7& Condition စစ#တ85အခ?မ91 မမ9န#eတ15
ပ8 Loop ထ8ကeန ထ>က#သ>1&မ91 *ဖစ#ပ?တယ#။
Do While Statement
While Statement န8A ဆင#တRသလiuDieပမ85 မတRည7တ1ကeတ15 Do Block ထ8က ကuဒ#eတ>ကiu အရင# အလuပ#လuပ#eစ
6ပ7&မ9 While ထ8က Condition ကiu စစ#eဆ&eနတ1ပ8 *ဖစ#ပ?တယ#။ အ85ဒ7အတ>က# Do Block ထ8က Code eတ>ကiu အ
န8ဆuP& တစ#Xကiမ#eတ15 အလuပ#လuပ#eစမ91 *ဖစ#ပ?တယ#။ Do Block ထ8က ကuဒ#eတ>ကiu အလuပ#လuပ#6ပ7&တ85 အခ?မ91
While Condition န8A စစ#eဆ&6ပ7& မ9န#တယ#ဆiuရင# eန1က#တစ#Xကiမ# Do Block ကiu အလuပ#လuပ#eစ6ပ7& မ91&တယ#ဆiuရင#
eတ15 Do While Loop ထ8ကeန ထ>က#သ>1&မ91 *ဖစ#ပ?တယ#။
jshell>
jshell> do {
...> [Link](count);
...> count ++;
...> } while (count < 3);
3
အထက#ပ?နမRန1ထ8မ91 while ရ8S Condition န8A do while ရ8S Condition တiuဟ1 အတRတRပ?ပ8။ count ဟ1 3 *ဖစ#တ85
အတ>က# B9စ#ခuလuP& Condition န8A မကiuက#ည7ပ?ဘR&။ While Statement ရ8S Loop ထ8ကiu မဝင#eပမ85 Do While
Statement ထ8ကiueတ15 တစ#Xကiမ# အလuပ#လuပ#သ>1&တ1ကiu eတ>Zရပ?မယ#။ Do While Statement ဟ1 Do ကiu တစ#
Xကiမ# အလuပ#လuပ#ခiuင#&6ပ7&မ9 Condition ကiu စစ#eဆ&eနတ85 အတ>က# *ဖစ#ပ?တယ#။
Branching Statement
ပ^iuဂရမ# အသ>1&အလ1eတ>ကiu e*ပ1င#&ပစ#eအ1င# eရ&သ1&လiuတ85 အခ?မ(iu&eတ>မ91 Branching Statement eတ>ကiu
အသuP&*ပuBiuင#ပ?တယ#။ ဆiu0ကပ?ဆiu၊ Method တစ#ခuကiu eရ&သ1&eနတ85 eနရ1မ91 ^uတ#တရက# အ85ဒ7 Method ကiu6ပ7&ဆuP&
eစလiuတ85အခ?မ(iu& Diတတ#0ကပ?မယ#။ တဖန# Looping eတ>ထ8ကeန အeနအထ1&တစ#မ(iu&e0က1င#5 Looping ကiu ဆ
က#6ပ7P& မလuပ#eစလiuတ85 အခ?မ(iu&Diပ?မယ#။ 6ပ7&eတ15 လက#Di Looping ထ8က Statement eတ>ကiu ဆက#6ပ7& မလuပ#eစ
လiueတ15ပ8 eန1က#တစ#eခ?က# Loop ပတ#eစလiuတ85 အခ?မ(iu& Diတတ#0ကပ?မယ#။ အ85ဒ7လiu အခ?မ(iu&မ91 Branching
Statement eတ>ကiu အသuP&*ပuBiuင#ပ?တယ#။
Branching Statement အeနန8A အသuP&*ပuBiuင#တ1ကeတ15 Return, Break န8A Continue တiuပ8 *ဖစ#ပ?တယ#။
Branching Statement eတ>က Label eတ>န8Aတ>86ပ7& အသuP&*ပuBiuင#6ပ7& မiမiလiuအပ#သလiu Programming Flow ကiu
တစ#မ(iu&e*ပ1င#&6ပ7& လuပ#eဆ1င#eစBiuင#ပ?တယ#။
Return Statement
Return Statement eတ>ကiu Return Type ပ?တ85 Method eတ>မ91 eရ&သ1&ခ85ဘR&ပ?တယ#။ Method eတ>ရ8S
eန1က#ဆuP&eနရ1မ91 Method Signature မ91ပ?တ85 Return Type အလiuက# တန#ဖiu&တစ#ခuခuကiu Return *ပန#eပ&ခ850က
မ91ပ?။ တနည#&e*ပ1ရမယ#ဆiuရင# အ85ဒ?ဟ1လ8 Return Statement တစ#ခu*ဖစ#ပ?တယ#။
အထက#ပ? Method ဟ1 int တန#ဖiu&တစ#ခuကiu စuPကiန#&တစ#ခu ဟuတ#မဟuတ# စစ#eပ&Biuင#တ85 Method တစ#ခu *ဖစ#ပ?
တယ#။ အ85ဒ7 Method မ91 boolean type ကiu Return Type အeနန8A သတ#မ9တ#ထ1&တ85 အတ>က# အ85ဒ7 Method ရ8S
eန1က#ဆuP&တစ#eနရ1မ91 boolean value ကiu Return *ပန#eပ&ရပ?မယ#။ ဒ7eနရ1မ91 return data % 2 == 0 လiu
Boolean Expression တစ#ခuကiu eရ&သ1&ထ1&ခ85ပ?တယ#။ ဒ?5e0က1င#5 data ကiu 2 န8A စ1&6ပ7& အqကင#&ဟ1 0 *ဖစ#ရင#
true ကiu return *ပန#မ91 *ဖစ#6ပ7& မဟuတ#ရင#eတ15 false ကiu return *ပန#မ91 *ဖစ#ပ?တယ#။
ဒ7eနရ1မ91 သတi*ပueစလiuတ1ကeတ15 return *ပန#6ပ7&ရင# အ85ဒ7 Method ထ8က ဘ1ကuဒ#ကiuမ9 eရ&လiu မရeတ15ဘR&ဆiu
တ1ကiuပ?ပ8။ ဒ7eနရ1မ91 eရ&သ1&ထ1&တ85 return data % 2 == 0; ဆiuတ1က return statement *ဖစ#ပ?တယ#။
Return *ပန#စရ1မလiuတ85 void method eတ>မ91လ8 return statement ကiu eရ&သ1&Biuင#ပ?တယ#။ void method eတ>
မ91 return; ဆiu6ပ7& eရ&သ1& လiuက#တ1န8A Method ထ8မ91Diတ85 return statement ရ8S eန1က#က ကuဒ#eတ>ကiu ဆက#မ
လuပ#eတ15ပ8 အ85ဒ7 Method ကiu 6ပ7&ဆuP&eစမ91 *ဖစ#ပ?တယ#။
Return Statement ကiu eရ&သ1&တ85 eနရ1မ91 return statement ဟ1 လက#DiDieနတ85 Block ရ8S eန1က#ဆuP& ကuဒ#
*ဖစ#ဖiuလiuအပ#ပ?တယ#။ အထက#ပ?နမRန1ထ8မ91 ဆiuရင# return ကiu if block ထ8မ91 eရ&သ1&ထ1&တ85 အတ>က# အ85ဒ7
Block ထ8မ91ဆiuရင# return ဟ1 eန1က#ဆuP& Statement *ဖစ#eနဖiuလiuပ?တယ#။
Break Statement
Break Statement eတ>ကiu Switch Statement eတ>၊ Looping Statement eတ>*ဖစ#0ကတ85 For, While, Do
While Statement eတ>န8A တ>8ဖက#eရ&သ1&Biuင#ပ?တယ#။ အe0က1င#&တစ#မ(iu&မ(iu&e0က1င#5 break statement ကiu
eရ1က#6ပ7ဆiuတ1န8A လက#Di Statement ထ8ကeန ထ>က#eပ&Biuင#ပ?တယ#။ Switch Statement န8A break ကiu တ>8သuP&
တ1ကiueတ15 Switch Statement မ91 eလ5လ1ခ856ပ7& *ဖစ#တ85 အတ>က# ဒ7eနရ1မ91eတ15 Looping Statement န8A
ပတ#သက#တ1eတ>ကiuပ8 eဖL*ပသ>1&မ91 *ဖစ#ပ?တယ#။
ဒ?e0က1င#5 Counter *ဖစ#တ85 i ဟ1 5 *ဖစ#သ>1&ရင# break statement ကiu အလuပ#လuပ#eစမ91 *ဖစ#ပ?တယ#။ ဒ?5e0က1င#5 5
Xကiမ# Loop ပတ#6ပ7&တ85 အခ?မ91 i ရ8S တန#ဖiu&ဟ1 5 *ဖစ#သ>1&6ပ7& if block ကiu အလuပ#လuပ#eစမ91 *ဖစ#ပ?တယ#။ if block
ထ8မ91 break ကiu eရ&ထ1&တ85 အတ>က# for loop ကiu 6ပ7& ဆuP&eစမ91 *ဖစ#ပ?တယ#။
ဒ7လiu eရ&သ1&ပuPက Nested Loop eတ>မ91 အသuP&*ပuBiuင#ပ?တယ#။ Nested Loop ဆiuတ1က Looping Statement
eတ>မ91 ထပ#6ပ7& Looping Statement eတ>ကiu eရ&သ1&တ85 ပuPစPပ?။
month:
for(String m : months) {
day:
for(int i : days) {
if(i == 5) {
continue month;
}
Java ဘ1သ1ရပ#မ91 Nested Loop ကiu eရ&သ1&တ85 eနရ1မ91 Condition အeပLမRတည#6ပ7& အတ>င#&ပiuင#& Loop ထ8
ကeန Label eတ>ကiu အသuP&*ပuက1 အ*ပင#ဘက#မ91Diတ85 Loop eတ>ကiuလ8 Control လuပ#Biuင#မ91 *ဖစ#ပ?တယ#။
Condition အeပLမRတည#6ပ7& continue တiu break တiuန8A Label eတ>ကiu အသuP&*ပu6ပ7& B9စ#သက#ရ1 Loop ကiu Control
လuပ#Biuင#မ91 *ဖစ#ပ?တယ#။ အထက#ပ?နမRန1ထ8မ91 i ဟ1 5 B9င#5တRရင# continue month လiueရ&သ1&ထ1&တ85 အတ>က# i
ဟ1 5 *ဖစ#တiuင#& အ*ပင#က Loop ကiu Continue လuပ#eစမ91 *ဖစ#ပ?တယ#။ ဒuတiယ Condition မ91eတ15 break day
လiueရ&သ1&ထ1&တ85အတ>က# အတ>င#&ပiuင#& Loop ကiu break လuပ#မ91 *ဖစ#ပ?တယ#။
တကယ#လiu Label *ဖစ#တ85 day ကiu မeရ&သ1&ထ1&ခ85ရင#လ8 Current Loop ကiu Break လuပ#မ91 *ဖစ#တ85 အတ>က#
အတ>င#&ပiuင#& Loop ကiuပ8 Break လuပ#သ>1&မ91 *ဖစ#ပ?တယ#။