Upload
sabin
View
30
Download
0
Tags:
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
1CompSci 105 SS 2005
Principles of Computer Science
Lecture 9: Implementing ADTs
Lecturer: Santokh Singh
Please try toUnderstand All concepts
involved.
2
Partitioning (Revision)
<p p ≥p
938 710 1 2 3 4
713 98
Textbook, pp. 83
731 98
3
Built-in Data Types
int x = 14;
111014
4
Abstract Data Type
A collection of data
… combined with …
a set of operations on that data
Textbook, p. 108
5
The Wall
Program that uses the ADT
ADTImplementation
AD
T O
perations
Textbook, p. 110
6
List ADT
1. Milk
2. Eggs
3. Butter
4. Apples
5. Bread
6. Chicken
Operations?
Textbook, p. 111ff
7
List ADT
• createList()
• isEmpty()
• size()
• add( index, item)
• remove(index)
• removeAll()
• get(index)
Operations Textbook, p. 113
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
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
10
Abstract Data Types (ADTs)ExamplesSpecifying ADTsCombining ADTs
Implementing ADTsInterfacesClasses
Private vs. PublicConstructorsOther Methods
Exceptions and Inheritance
11
Defining ADTs
• What needs to be stored?
• What are the valid operations?
Textbook, p. 119
12
Combining ADTs
Program that uses the DropBox
DropboxADT
Implementation
DropBox ADTOperations
13
Combining ADTs
Program that uses the DropBox
DropboxADT
Implementation
DropBox ADTOperations
ListADT
Implementation
List ADTOperations
14
Abstract Data Types (ADTs)ExamplesSpecifying ADTsCombining ADTs
Implementing ADTsInterfacesClasses
Private vs. PublicConstructorsOther Methods
Exceptions and Inheritance
15
• Object Oriented Programming
16
Circle ADT
• setX()
• setY()
• setRadius()
• getX()
• getY()
• getRadius()
• getArea()
Operations
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 ();
}
18
A method that uses Circle
public boolean isBigger( Circle A,
Circle B)
{
if ( A.getArea() > B.getArea() )
return(true);
else
return(false);
}
19
Creating Circles?
Circle A = new Circle();
Circle B = new Circle();
boolean b = isBigger( A, B );
20
Abstract Data Types (ADTs)ExamplesSpecifying ADTsCombining ADTs
Implementing ADTsInterfacesClasses
Private vs. PublicConstructorsOther Methods
Exceptions and Inheritance
21
public Class MyCircle implements Circle
{
float x, y, radius;
void setRadius( float newRadius ) {
radius = newRadius;
}
void getArea() {
return ( Math.PI * radius * radius );
}
}
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;
}
23
A method that uses Circle
public boolean isBigger( Circle A,
Circle B)
{
if ( A.getArea() > B.getArea() )
return(true);
else
return(false);
}
24
Creating Circles
Circle A = new MyCircle();
Circle B = new MyCircle(1, 1, 2);
boolean x = isBigger( A, B );
25
public Class MyCircle implements Circle
{
:
:
printCircle( ) {
System.out.println( x, y, radius );
}
:
:
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 );
}
}
27
Creating Circles
Circle A = new MyCircle ();
Circle B = new AreaCircle(1, 1, 2);
boolean x = isBigger( A, B );