17java Encapsulat-WPS Office
17java Encapsulat-WPS Office
aEncapsul
ati
on
Inthi
stutor
ial
,youwi
l
llear
naboutencapsul
ati
onanddat
ahi
dingi
nJav
awi
tht
hehel
pof
examples.
Jav
aEncapsul
ati
on
Encapsul
ati
onisoneofthekeyf
eatur
esofobj
ect
-ori
entedprogr
ammi
ng.Encapsul
ati
onr
efer
s
tothebundl
ingoffi
eldsandmet
hodsinsi
deasi
ngleclass.
I
tprev
entsout
erclassesf
rom accessi
ngandchangi
ngf
iel
dsandmet
hodsofacl
ass.Thi
sal
so
hel
pstoachi
evedatahidi
ng.
Exampl
e1:
Jav
aEncapsul
ati
on
cl
assAr
ea{
/
/fi
eldst
ocal
cul
atear
ea
i
ntl
engt
h;
i
ntbr
eadt
h;
/
/const
ruct
ort
oini
ti
ali
zev
alues
Ar
ea(
intl
engt
h,i
ntbr
eadt
h){
t
his.
lengt
h=l
engt
h;
t
his.
breadt
h=br
eadt
h;
/
/met
hodt
ocal
cul
atear
ea
publ
i
cvoi
dget
Area(
){
i
ntar
ea=l
engt
h*br
eadt
h;
Sy
stem.
out
.pr
int
ln(
"Ar
ea:
"+ar
ea)
;
cl
assMai
n{
publ
i
cst
ati
cvoi
dmai
n(St
ri
ng[
]ar
gs){
/
/cr
eat
eobj
ectofAr
ea
/
/passv
alueofl
engt
handbr
eadt
h
Ar
ear
ect
angl
e=newAr
ea(
5,6)
;
r
ect
angl
e.get
Area(
);
RunCode
Out
put
Ar
ea:
30
Int
heaboveexample,
wehav
ecr
eat
edacl
assnamedAr
ea.Themai
npur
poseoft
hiscl
assi
sto
cal
cul
atet
hearea.
Tocal
cul
ateanarea,weneedt
wov ari
abl
es:
lengt
handbreadt
handamet
hod:
get
Area(
).Hence,
webundl
edthesefi
eldsandmethodsi
nsi
deasingl
ecl
ass.
Her
e,t
hefiel
dsandmet
hodscanbeaccessedf
rom ot
hercl
assesaswel
l
.Hence,
thi
sisnot
dat
ahi
ding.
Thi
sisonl
yencapsul
ati
on.Wear
ejustkeepi
ngsi
mil
arcodest
oget
her
.
Not
e:Peopl
eof
tenconsi
derencapsul
ati
onasdat
ahi
ding,
butt
hat
'snotent
ir
elyt
rue.
Encapsul
ati
onr
ef er
stothebundli
ngofrel
atedfi
eldsandmethodst
oget
her
.Thi
scanbeusedt
o
achi
evedatahi
ding.Encapsul
ati
onini
tsel
fisnotdatahi
ding.
WhyEncapsul
ati
on?
InJav
a, encapsul
ati
onhel
psustokeepr
elat
edf
iel
dsandmet
hodst
oget
her
,whi
chmakesour
codecleanerandeasytor
ead.
I
thel
pst
ocont
rol
thev
aluesofourdat
afi
elds.Forexampl
e,
cl
assPer
son{
pr
ivat
eintage;
publ
i
cvoi
dset
Age(
intage){
i
f(age>=0){
t
his.
age=age;
Her
e,wearemakingtheagev ar
iabl
epr
ivat
eandappl
yi
ngl
ogi
cinsi
det
heset
Age(
)met
hod.
Now,agecannotbenegat
ive.
Theget
terandset
termet
hodspr
ovi
der
ead-
onl
yorwr
it
e-onl
yaccesst
oourcl
assf
iel
ds.For
exampl
e,
get
Name(
)//pr
ovi
desr
ead-
onl
yaccess
set
Name(
)//pr
ovi
deswr
it
e-onl
yaccess
I
thel
pst odecoupl
ecomponent
sofasy
stem.Forexampl
e,wecanencapsul
atecodei
nto
mult
ipl
ebundles.
Thesedecoupl
edcomponents(bundl
e)canbedeveloped,
test
ed,
anddebuggedi
ndependent
ly
andconcurr
entl
y.And,
anychangesinapart
icul
arcomponentdonothav
eanyeff
ectonother
components.
Wecanal
soachi
evedatahidi
ngusi
ngencapsul
ati
on.Int
heaboveexample,i
fwechanget
he
l
engt
handbr
eadthvar
iabl
eintopr
ivat
e,t
hentheaccesst
othesefi
eldsi
srest
rict
ed.
And,
theyar
ekepthi
ddenf
rom out
ercl
asses.Thi
siscal
l
eddat
ahi
ding.
Dat
aHi
ding
Dat
ahidingisawayofrest
ri
cti
ngtheaccessofourdat
amember
sbyhi
dingt
hei
mpl
ement
ati
on
det
ail
s.Encapsul
ati
onal
soprovi
desawayf ordat
ahidi
ng.
Wecanuseaccessmodi
fi
erst
oachi
evedat
ahi
ding.Forexampl
e,
Exampl
e2:
Dat
ahi
dingusi
ngt
hepr
ivat
especi
fi
er
cl
assPer
son{
/
/pr
ivat
efi
eld
pr
ivat
eintage;
/
/get
termet
hod
publ
i
cintget
Age(
){
r
etur
nage;
}
/
/set
termet
hod
publ
i
cvoi
dset
Age(
intage){
t
his.
age=age;
cl
assMai
n{
publ
i
cst
ati
cvoi
dmai
n(St
ri
ng[
]ar
gs){
/
/cr
eat
eanobj
ectofPer
son
Per
sonp1=newPer
son(
);
/
/changeageusi
ngset
ter
p1.
set
Age(
24)
;
/
/accessageusi
ngget
ter
Sy
stem.
out
.pr
int
ln(
"Myagei
s"+p1.
get
Age(
));
RunCode
Out
put
Myagei
s24
I
ntheaboveexample,
wehav
eapr
ivat
efi
eldage.Si
ncei
tispr
ivat
e,i
tcannotbeaccessedf
rom
out
sidet
heclass.
Inordertoaccessage,wehaveusedpubl
i
cmet
hods:
get
Age(
)andset
Age(
).Thesemet
hods
arecall
edgetterandsett
ermethods.
Makingagepri
vat
eal
l
owedust
orest
ri
ctunaut
hor
izedaccessf
rom out
sidet
hecl
ass.Thi
sis
dat
ahiding.
I
fwet
ryt
oaccesst
heagef
iel
dfr
om t
heMai
ncl
ass,
wewi
l
lgetaner
ror
.
/
/er
ror
:agehaspr
ivat
eaccessi
nPer
son
p1.
age=24;