7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 1/21
LECTURE 3: FIELDS,
GETTERS AND SETTERS,CONSTRUCTORS, TESTING
Penkom2013
1
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 2/21
Assignment A1 is on te C!S "n# Pi"$$"
2
%&ite " sim'(e )("ss to m"int"in in*o&m"tion "+ot+tte&-ies
O+.e)ti/es in +&ie*:
Get se# to E)(i'se "n# &iting " sim'(e "/" )("ss Le"&n )on/entions *o& "/"#o) s'e)s, *o&m"tting
)o#e eg in#ent"tion4, )("ss in/"&i"nts, meto#'&e)on#itions
Le"&n "+ot "n# se nit testingIm'o&t"nt: &e"# )"&e*((5, in)(#ing Ste' 6, i)&e/ies "t te "ssignment is g&"#e# on
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 3/21
O/e&/ie3
An o+.e)t )"n )ont"in /"&i"+(es "s e(( "smeto#s7"&i"+(e in "n o+.e)t is )"((e# " 8e(#
De)("&e 8e(#s in te )("ss #e8nition Gene&"((5,m"ke 8e(#s '&i/"te so te5 )"n9t +e seen *&omotsi#e te )("ss
!"5 "## gette& meto#s *n)tions4 "n# sette&meto#s '&o)e#&es4 to "((o "))ess to some o&"(( 8e(#s
Use " ne kin# o* meto#, te )onst&)to&, toiniti"(i$e 8e(#s o* " ne o+.e)t #&ing e/"("tiono* " nee;'&ession
C&e"te " nit Testing C("ss to s"/e " site o* test
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 4/21
Re*e&en)es to te;t "n# "/"Smm"&5''t;
4
De)("&"tion o* 8e(#s: <=<> s(i#e 12
Gette&?sette& meto#s: <> s(i#e 13, 1@
Const&)to&s: <16<1 s(i#e 1=
C("ss St&ing: A>6A63 nit Testing C("ss: none s(i#e 6@0
O/e&(o"#ing meto# n"mes: <21 s(i#e 22
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 5/21
Bomeo&k5
1 Co&se e+site )ont"ins )("sses Time "n# TimeTeste& Te +o#5 o* te one'"&"mete&)onst&)to& is not &itten %&ite it Te one'"&"mete& )onst&)to& is not teste# in TimeTeste&
%&ite " '&o)e#&e to test it2 7isit )o&se e+site, )(i)k on Reso&)es "n# tenon Co#e St5(e Gi#e(ines St#5
1 N"ming )on/entions
33 C("ss in/"&i"nt
@ Co#e o&g"ni$"tion
@1 P(")ement o* 8e(# #e)("&"tions
= P+(i)?'&i/"te "))ess mo#i8e&s
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 6/21
)("ss Time6
O+.e)t )ont"ins te time o* #"5 in o&s "n#mintes
!eto#s in o+.e)t &e*e& to 8e(# in o+.e)t
Co(# "/e "n "&&"5 o* s) o+.e)ts to (ist te
times "t i) )("sses st"&t "t Co&ne((
%it /"&i"+(es t1 "n# t2 +e(o,
t1getBo&4 is
t2getBo&4 is t2toSt&ing4 is 0:0=
Time1=0
Time&
min
0getBo&4get!in4toSt&ing4
Time*"
Time&
min getBo&4get!in4toSt&ing4
=t1 Time1=0
t2 Time*"
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 7/21
A )("ss Time7
?HH An inst"n)e m"int"ins " time o* #"5 H?
public class Time
private int & ??o& o* te #"5, in 023
private int min ?? minte o* te o&, in 0=
J
Time*"
Time&
min =
A))ess mo#i8e& private:)"n9t see 8e(# *&omotsi#e )("ss
So*t"&e enginee&ing'&in)i'(e: m"ke 8e(#s
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 8/21
C("ss in/"&i"nt8
?HH An inst"n)e m"int"ins " time o* #"5 H?
public class Time
private int & ??o& o* #"5, in 023
private int min ?? minte o* o&, in 0=
J
Classinvariant:)o((e)tion o*#e*s o*
/"&i"+(es "n#)onst&"ints ontem g&eenstK4
So*t"&e enginee&ing '&in)i'(e: A("5s&ite " )(e"&, '&e)ise )("ss in/"&i"nt,
i) #es)&i+es "(( 8e(#sC"(( o* e/e&5 meto# st"&ts it )("ssin/"&i"nt t&e "n# so(# en# it )("ssin/"&i"nt t&e
F&eent &e*e&en)e to )("ss in/"&i"nt i(e
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 9/21
Gette& meto#s *n)tions49
/** An instance maintains a time of day */
public class Time {
private int hr; // hour of the day, in 0..23
private int min; // minute of the hour, in 0..59
/** Return hour of the day */ public int getour!" {
return hr;
#
/** Return minute of the hour */ public int get$in!" {
return hr;
#
#
Time*"
Time&
min = getBo&4get!in4
S'e) goes +e*o&e meto#It9s " "/"#o))omment
Mst"&ts it ?HH
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 10/21
A (itt(e "+ot t5'e )("ss4 St&ing10
public class Time { private int hr; //hour of the day, in 0..23
private int min; // minute of the hour, in 0..59
/** Return a re%resention of this time, e.g. 09&05*/
public String to'tring!" {
return %re%end!hr" ( : ( %re%end!min"; #
/** Return i )ith %receding 0, if
necessary, to mae t)o chars. */
private 'tring %re%end!int i" { if !i + 9 i - 0" return ( i;
return 0 ( i;
#
"/":#o+(e
otes *o&
St&ing(ite&"(s "/": isSt&ing
)"ten"tion
e('e& *n)tion is
'&i/"te, so it )"n9t +e
C"ten"te it em't5St&ing to )"nge "n5/"(e to " St&ing
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 11/21
Sette& meto#s '&o)e#&es411
/** An instance maintains a time of day */
public class Time {
private int hr; //hour of the day, in 0..23
private int min; // minute of the hour, in 0..59
#
Time*"
Time&
min = getBo&4get!in4
toSt&ing4
No "5 tosto&e /"(ein " 8e(#%e )"n "##
" sette&meto#/** hange this o1ects hour to h */
public void setour!int h" {
hr h;
#
setBo&int4setBo&int4 is no in te o+.e)t
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 12/21
Sette& meto#s '&o)e#&es412
/** An instance maintains a time of day */
public class Time {
private int hr; //hour of day, in 0..23
private int min; // minute of hour, in 0..59
#
Time*" Time&
min =
/** hange this o1ects hour to h */
public void setour!int h" {
hr h;
#
getBo&4get!in4
toSt&ing4setBo&int4
Do not s"5 set 8e(# &to
Use& #oes not
kno te&e is "8e(# A(( se&knos is t"t
Time m"int"ins
o&s "n#mintes L"te&,e so "n
im'(ement"tion t"t
#oesn9t "/e
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 13/21
Test sing " nit testing )("ss13
In E)(i'se, se men item Fi(e Ne nit Test C"se to )&e"te " )("ss t"t (ooks (ike tis:
import static org.1unit.Assert.*;
import org.1unit.Test;
public class TimeTester {
4Test
public void test!" {
fai!67ot yet im%emented6";
#
#
Se(e)t TimeTeste& inP")k"ge E;'(o&e&
Use men item Rn Rn
P&o)e#&e test is)"((e#, "n# te )"((*"i(Q4 )"sese;e)tion to *"i(:
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 14/21
Test sing " nit testing )("ss14
…
public class TimeTester {
4Test
public void test!" { Time t8 new Time!";
assert:uas!0, t8.getour!"";
assert:uas!0, t8.get$in!";
assert:uas!600&006, t8.to'tring!"";
##
%&ite "n# s"/e "site o* test )"sesin TimeTeste&, to testt"t "(( meto#s in
Time "&e )o&&e)tSto&e ne Time o+.e)t in t1
Gi/e g&een (igt i* e;'e)te# /"(e e"(s )om'te# /"(e, &e# (igt i* not:"sse&tE"(se;'e)te# /"(e, )om'te# /"(e4
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 15/21
Test sette& meto# in nit testing )("ss
15
public class TimeTester {
4Test public void test'etters!" {
Time t8 new Time!";
t8.setour!28";
assert:uas!28,t8.getour!"";
#
#
Time*"
Time&
min =getBo&4get!in4
toSt&ing4setBo&int4
TimeTeste& )"n "/ese/e&"( testmeto#s, e")'&e)e#e# +5 Test
A(( "&e )"((e# enmen item Rn Rn is se(e)te#
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 16/21
Const&)to&s Mne kin# o* meto#
16
public class {
private int a;
private int ;
private int c;
private int d; private int e;
#
C "s (ots o* 8e(#sIniti"(i$ing "n o+.e)t )"n +e "'"in M"ssming te&e "&esit"+(e sette& meto#s
C /"& new
C4/"&setA24/"&set<204/"&setC3=4
/"&setD1=4
<t 8&st, mst &ite " nemeto# )"((e# ")onst&)to&
new !2, 20, 35, 85, 850";
E"sie& "5 to initi"(i$e te8e(#s, in te nee;'&essionitse(* Use:
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 17/21
Const&)to&s Mne kin# o* meto#
17
Time*"
Time& min =
getBo&4 get!in4toSt&ing4 setBo&int4
Timeint, int4
/** An o1ect maintains a time of day */
public class Time {
private int hr; //hour of day, 0..23
private int min; // minute of hour, 0..59
/** onstructor& an instance )ithh hours and m minutes.
*/
public Time!int h, int m" {
hr h;
min m;
#
P&'ose o*)onst&)to&:Initi"(i$e 8e(# o* "ne o+.e)t sot"t its )("ssin/"&i"nt is t&e
7o return ty%e
or <oid
7ame of constructor
is the cass name
!emo&i$e
=recondition& h in 0..23, m in 0..59 7eed %recondition
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 18/21
Re/isit te nee;'&ession18
Time*"
Time& 0 min 0
getBo&4 get!in4toSt&ing4 setBo&int4
Timeint, int4
S5nt"; o* nee;'&ession: new )onst&)to&)"((
>f you do not decare a constructor,
?a<a %uts in this one&
public -cassname+ !" { #
E/"("tion o* nee;'&ession:1 C&e"te " ne o+.e)t o* )("ss, it #e*"(t/"(es in 8e(#s
@am%e& new Time!9, 5"
2 E;e)te te )onst&)to&)"((
=
3 Gi/e "s /"(e o* te
e;'&ession te n"me o* te neo+.e)t
Time*"
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 19/21
Bo to test " )onst&)to&19
public class TimeTester {
4Test
public void testonstructor8!" {
Time t8 new Time!9, 5";
assert:uas!9, t8.getour!""; assert:uas!5, t8.get$in!";
#
#
C&e"te "n o+.e)t sing te )onst&)to& Ten)e)k t"t "(( 8e(#s "&e '&o'e&(5 initi"(i$e# Me/en tose t"t "&e not gi/en /"(es in te)onst&)to& )"((
Note: Tis "(so)e)ks te gette&meto#s No nee#to )e)k tem
se'"&"te(5
<t, m"in'&'ose: )e)k
)onst&)to&
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 20/21
A se)on# )onst&)to&20
Time*"
Time& min =
getBo&4 get!in4toSt&ing4 setBo&int4
Timeint, int4 Time int4
/** An o1ect maintains a time of day */
public class Time {
private int hr; //hour of day, 0..23
private int min; // minute of hour, 0..59
/** onstructor& an instance )ith
m minutes.
=recondition& m in 0..23*0 (59 */
public Time!int m" {
BBB Chat do )e %ut here BBB #
Time iso/e&(o"#e#: 2)onst&)to&sB"/e #iKe&ent
'"&"mete& t5'esConst&)to& )"((#ete&mines i)one is )"((e#
new Time, =4
new Time12=4
7/23/2019 Field in Java Object
http://slidepdf.com/reader/full/field-in-java-object 21/21
!eto# s'e)s so(# not mention 8e(#s
21
public class Time {
private int hr; //in 0..23
private int min; //in 0..59
/** return hour of day*/
public void getour!" {
return h;
#
/** return hour of day*/
public void getour!" { return min / 0;
#
Time*"
Time&
min =getBo&4get!in4toSt&ing4setBo&int4
public class Time {
// min, in 0..23*0(59
private int min;
Time*"
Timemin =
getBo&4 get!in4toSt&ing4 setBo&int4
S'e)s o* meto#s st"5 te s"me
Im'(ement"tions, in)(#ing 8e(#s, )"ng
Decideto
changeipleen!tation
Top Related