Professional Documents
Culture Documents
6 Oop
6 Oop
Java SE
Contents
• What is OOP?
• Abstract Class
• Interface
What is OOP?
➢OOP ဆiuသည&မ() အပလ-eက01င&0တစ&ခu အတ6င&0မ()ပ7ဝင&eသ)
အခ9က&အလက&မ9)0အ)0 Object အeန;ဖင&= >က?&=;မင&@ပ-0၊ အဆiuပ7 Object မ9)0
Encapsulation
Inheritance
Polymorphism
Encapsulation
• Encapsulation ဆiuသည&မ() Object တစ&ခu၏ အတ6င&0ပiuင&01i member မ9)0အ)0
;ပင&ပမ( Access လuပ&လiuမရeအ)င& eဆ)င&G6က&ထ)0Diuင&မN=ကiu ဆiuလiuပ7သည&
}
How to do Encapsulation?
• OOP တ6င& Object တစ&ခu၏ Properties မ9)0D(င&= Methods မ9)0အ)0
ဆက&သ6ယ&အသuC0;ပuDiuင&ခ6င&=ကiu Access Modifier မ9)0အ)0 အသuC0;ပu၍
သက&မ(တ&Diuင&၏။
Access Modifiers
Access Modifier Description
public မည&သ?&=eနရ)က မဆiu ဆက&သ6ယ&
အသuC0;ပuDiuင&သည&
protected Inheritant လuပ&ထ)0eသ) Object
မ9)0မ(ဆက&သ6ယ&Diuင&သည&
default Package တစ&ခuအတ6င&01i Object
မ9)0မ(ဆက&သ6ယ&Diuင&သည&
private လက&1i Object အတ6င&0မ(တပ70
ဆက&သ6ယ&Diuင&မည& မဟuတ&eပ
Encapsulation of an object
• Encapsulation ကiu eက)င&0စ6) eဆ)င&G6က&ထ)0eသ) Object မ9)0သည&
၎င&0တiu၏ အတ6င&0ပiuင&01i အစiတ&အပiuင&0မ9)0ကiu ;ပင&ပမ( မ;မင&Diuင&eအ)င&
eဆ)င&G6က&ထ)0eလ=1i၏
• ထiuသiueရ0သ)0ထ)0;ခင&0အ)0;ဖင&= Triangle
Triangle Object GS= showArea ကiu eခXဆiuတS=အခ7မ()
ကiuယ&ပiuင& method ကiu သ) အသuC0;ပuမ()
showArea() ;ဖစ&ပ7တယ&
extends
Programmer prog = emp;
BathRoom has
a Shower
public class BathRoom {
BathRoom use
public void takeShower() { shower to take
shower.takeShower(); Shower
}
}
Polymorphism
Override အ)0အသuC0;ပu၍
အမ9iu0အစ)0 တKeသ)&လည&0
အ;ပuအမKမတKည-eသ)
ပuCစCက6Sမ9)0အ)0 eရ0သ)0Diuင&@ပ-0၊
ဤကS=သiueရ0သ)0Diuင&မN=အ)0
Polymorphism ဟu
eခXဆiuပ7သည&။
Inheritance
Hierarchy
Abstract
Class
Abstract Class
• Object တစ&ခuတ6င& ပiuင&ဆiuင&သင&=သ?&= အခ9က&အလက&D(င&=
အ;ပuအမKတiuအ)0 သeဘ)တရ)0 အeနန(င&= eရ0သ)0eစလiuသ?&=
အခ7မ9iu0တ6င& abstract keyword အ)0 အသuC0;ပu၍
eရ0သ)0Diuင&ပ7သည&။
From Instance
By Anonymous
of It’s Sub
Class
Classes
By instance of it’s sub class
• Java SE 8 ကeန စ@ပ-0 Interface မ() static method DS= Default Method
eတ6ကiu eရ0သ)0လ)Diuင&ပ7တယ&
Using Interface
Writing Interface
• Java ဘ)သ)ရပ&တ6င& အသuC0;ပueသ) Interface သည& Reference Type
မ9)0;ဖစ&>က@ပ-0၊ class D(င&= ပuCသ[)န& ဆင&တKပ7သည&။
@Override
public int changeGear(GearNum gearNum) {
return gearNum.ordinal() * 2;
}
}
Creating Interface Object
public MountainBike() {
this.gear = new MountainBikeGeer();
}
}
By Anonymous Class
public class CityBike {
private Gear gear;
public CityBike() {
this.gear = new Gear() {
@Override
public int changeGear(GearNum gearNum) {
return gearNum.ordinal() * 1;
}
};
}