27
1 CompSci 105 SS 2005 Principles of Computer Science Lecture 9: Implementing ADTs Lecturer: Santokh Singh Please try to Understand All concepts involved.

CompSci 105 SS 2005 Principles of Computer Science

  • Upload
    sabin

  • View
    30

  • Download
    0

Embed Size (px)

DESCRIPTION

CompSci 105 SS 2005 Principles of Computer Science. Please try to Understand All concepts involved. Lecture 9: Implementing ADTs. Lecturer: Santokh Singh. Partitioning (Revision). ≥ p. p.

Citation preview

Page 1: CompSci 105 SS 2005 Principles of Computer Science

1CompSci 105 SS 2005

Principles of Computer Science

Lecture 9: Implementing ADTs

Lecturer: Santokh Singh

Please try toUnderstand All concepts

involved.

Page 2: CompSci 105 SS 2005 Principles of Computer Science

2

Partitioning (Revision)

<p p ≥p

938 710 1 2 3 4

713 98

Textbook, pp. 83

731 98

Page 3: CompSci 105 SS 2005 Principles of Computer Science

3

Built-in Data Types

int x = 14;

111014

Page 4: CompSci 105 SS 2005 Principles of Computer Science

4

Abstract Data Type

A collection of data

… combined with …

a set of operations on that data

Textbook, p. 108

Page 5: CompSci 105 SS 2005 Principles of Computer Science

5

The Wall

Program that uses the ADT

ADTImplementation

AD

T O

perations

Textbook, p. 110

Page 6: CompSci 105 SS 2005 Principles of Computer Science

6

List ADT

1. Milk

2. Eggs

3. Butter

4. Apples

5. Bread

6. Chicken

Operations?

Textbook, p. 111ff

Page 7: CompSci 105 SS 2005 Principles of Computer Science

7

List ADT

• createList()

• isEmpty()

• size()

• add( index, item)

• remove(index)

• removeAll()

• get(index)

Operations Textbook, p. 113

Page 8: CompSci 105 SS 2005 Principles of Computer Science

8

List ADT

aList.createList()

aList.add(1, milk)

aList.add(2, eggs)

aList.add(3, butter)

aList.remove(3)

Using the ADT

• createList()

• isEmpty()

• size()

• add( index, item)

• remove(index)

• removeAll()

• get(index)

Operations Textbook, p. 114

Page 9: CompSci 105 SS 2005 Principles of Computer Science

9

List ADT

• createList()

• isEmpty()

• size()

• add( index, item)

• remove(index)

• removeAll()

• get(index)

for i=1 to aList.size()

{

data = aList.get(i)

println(data)

}

OperationsUsing the ADT

Textbook, p. 115

Page 10: CompSci 105 SS 2005 Principles of Computer Science

10

Abstract Data Types (ADTs)ExamplesSpecifying ADTsCombining ADTs

Implementing ADTsInterfacesClasses

Private vs. PublicConstructorsOther Methods

Exceptions and Inheritance

Page 11: CompSci 105 SS 2005 Principles of Computer Science

11

Defining ADTs

• What needs to be stored?

• What are the valid operations?

Textbook, p. 119

Page 12: CompSci 105 SS 2005 Principles of Computer Science

12

Combining ADTs

Program that uses the DropBox

DropboxADT

Implementation

DropBox ADTOperations

Page 13: CompSci 105 SS 2005 Principles of Computer Science

13

Combining ADTs

Program that uses the DropBox

DropboxADT

Implementation

DropBox ADTOperations

ListADT

Implementation

List ADTOperations

Page 14: CompSci 105 SS 2005 Principles of Computer Science

14

Abstract Data Types (ADTs)ExamplesSpecifying ADTsCombining ADTs

Implementing ADTsInterfacesClasses

Private vs. PublicConstructorsOther Methods

Exceptions and Inheritance

Page 15: CompSci 105 SS 2005 Principles of Computer Science

15

• Object Oriented Programming

Page 16: CompSci 105 SS 2005 Principles of Computer Science

16

Circle ADT

• setX()

• setY()

• setRadius()

• getX()

• getY()

• getRadius()

• getArea()

Operations

Page 17: CompSci 105 SS 2005 Principles of Computer Science

17

Java Interfacepublic interface Circle {

void setX ( float x );

void setY ( float y );

void setRadius( float r );

float getX ();

float getY ();

float getRadius();

float getArea ();

}

Page 18: CompSci 105 SS 2005 Principles of Computer Science

18

A method that uses Circle

public boolean isBigger( Circle A,

Circle B)

{

if ( A.getArea() > B.getArea() )

return(true);

else

return(false);

}

Page 19: CompSci 105 SS 2005 Principles of Computer Science

19

Creating Circles?

Circle A = new Circle();

Circle B = new Circle();

boolean b = isBigger( A, B );

Page 20: CompSci 105 SS 2005 Principles of Computer Science

20

Abstract Data Types (ADTs)ExamplesSpecifying ADTsCombining ADTs

Implementing ADTsInterfacesClasses

Private vs. PublicConstructorsOther Methods

Exceptions and Inheritance

Page 21: CompSci 105 SS 2005 Principles of Computer Science

21

public Class MyCircle implements Circle

{

float x, y, radius;

void setRadius( float newRadius ) {

radius = newRadius;

}

void getArea() {

return ( Math.PI * radius * radius );

}

}

Page 22: CompSci 105 SS 2005 Principles of Computer Science

22

public Class MyCircle implements Circle

{

// Constructors

MyCircle() {

x = 0.0; y = 0.0; radius = 1.0;

}

MyCircle(float newX, newY, newR ) {

x = newX; y = newY; radius = newR;

}

Page 23: CompSci 105 SS 2005 Principles of Computer Science

23

A method that uses Circle

public boolean isBigger( Circle A,

Circle B)

{

if ( A.getArea() > B.getArea() )

return(true);

else

return(false);

}

Page 24: CompSci 105 SS 2005 Principles of Computer Science

24

Creating Circles

Circle A = new MyCircle();

Circle B = new MyCircle(1, 1, 2);

boolean x = isBigger( A, B );

Page 25: CompSci 105 SS 2005 Principles of Computer Science

25

public Class MyCircle implements Circle

{

:

:

printCircle( ) {

System.out.println( x, y, radius );

}

:

:

Page 26: CompSci 105 SS 2005 Principles of Computer Science

26public Class AreaCircle implements Circle

{

float x, y, radius, area;

void setRadius( float newRadius ) {

radius = newRadius;

area = Math.PI * radius * radius );

}

void getArea() {

return ( area );

}

}

Page 27: CompSci 105 SS 2005 Principles of Computer Science

27

Creating Circles

Circle A = new MyCircle ();

Circle B = new AreaCircle(1, 1, 2);

boolean x = isBigger( A, B );