Field in Java Object

21
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

Transcript of Field in Java Object

Page 1: Field in Java Object

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

Page 2: Field in Java Object

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

Page 3: Field in Java Object

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

Page 4: Field in Java Object

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

Page 5: Field in Java Object

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

Page 6: Field in Java Object

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*"

Page 7: Field in Java Object

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

Page 8: Field in Java Object

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

Page 9: Field in Java Object

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

Page 10: Field in Java Object

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

Page 11: Field in Java Object

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

Page 12: Field in Java Object

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

Page 13: Field in Java Object

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(:

Page 14: Field in Java Object

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

Page 15: Field in Java Object

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#

Page 16: Field in Java Object

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:

Page 17: Field in Java Object

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

Page 18: Field in Java Object

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*"

Page 19: Field in Java Object

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&

Page 20: Field in Java Object

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

Page 21: Field in Java Object

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