Download presentation
Presentation is loading. Please wait.
Published byVanessa Flowers Modified over 9 years ago
1
ITEC 320 Lecture 9 Nested records / Packages
2
Review Project ?’s Records Exam 1 next Friday
3
Nested records / Packages Outline Nested records
4
Nested records / Packages Design exercise How do we represent a line mathematically? How do we represent one in Ada?
5
Nested records / Packages Code type Pair is record x: Integer; y: Integer; end record; type Line is record start: Pair; end: Pair; end record; myLine: Line; begin myLine.start.x := 1; myLine.start.y := 2; myLine.end := (3, 4); put(myLine.start.x); put(myLine.end.x);
6
Nested records / Packages Java/Ada Nested records –How is it implemented in Java? –How is it implemented in Ada?
7
Nested records / Packages UML Composition –Is a part of Aggregation –Is contained in University Department Faculty Example
8
Nested records / Packages Arrays What does an array of records like Line mean in terms of –Memory allocation –Syntax
9
Nested records / Packages Real world example Points Lines Line collection / displayer Images Grid World loader
10
Nested records / Packages Packages Records are one way of grouping data Packages are one way of grouping functions and procedures
11
Nested records / Packages Definitions Client –Uses the class and its methods –Routine or package that uses the types and routines defined in package P Examples –With ada.text_io; use ada.text_io; Which one is Java? Which one is Ada?
12
Nested records / Packages Ada “Classes” Records store information Procedures work with records / other data Put the two together and you have the Ada version of classes Contain –Procedures –Types
13
Nested records / Packages Java class Pair { int x, y; int distanceToOrigin() // How far to origin { return Math.abs(x) + Math.abs(y); } } // Client for class Pair class PairClient { public static void main(String[] args) { Pair p; p = new Pair(); p.x = 1; p.y = 2; Sop(p.distanceToOrigin()); }
14
Nested records / Packages Ada 2 pieces –Record for a pair –Function to calculate the distance to the origin File structure –Specification –Body
15
Nested records / Packages Specificatio n Tells the compiler what the package does, but not how to do it Store in a.ads file package PairPkg is type Pair is record x, y: Integer; end record function distanceToOrigin(p: Pair) return Integer; end PairPkg;
16
Nested records / Packages Body Contains the code for a certain package’s procedures / functions package body PairPkg is function distanceToOrigin(p: Pair) return Integer is begin return abs p.x + abs p.y; end distanceToOrigin; end PairPkg;
17
Nested records / Packages Ada / Java Java classes (1 file) Ada method (2 files) What are the benefits / downsides of each approach? How does Java sort of provide the same idea that Ada does?
18
Nested records / Packages Rules The specification must be followed to the letter All functions / procedures must be implemented All return / parameter types must match
19
Nested records / Packages Use Without the use statement, you have to fully-qualify the package name with pairpkg; procedure pairclient is p: pairpkg.Pair; begin p.x := 1; p.y := 2; put(pairpkg.distanceToOrigin(p)); end pairclient;
20
Nested records / Packages Specificatio n Tells the compiler what the package does, but not how to do it Store in a.ads file package PairPkg is type Pair is private; function distanceToOrigin(p: Pair) return Integer; private type Pair is record x, y: Integer; end record; end PairPkg;
21
Nested records / Packages Body Contains the code for a certain package’s procedures / functions package body PairPkg is function distanceToOrigin(p: Pair) return Integer is begin return abs p.x + abs p.y; end distanceToOrigin; end PairPkg;
22
Nested records / Packages Compilation Rule of thumb –Keep it all in the same directory –Some way of pointing where to look for specifications / bodies Compiler does the work for you –Automatically pulls in packages thanks to the with statement Take a look at the files produced and think about why they are there…
23
Nested records / Packages Review Nested records Intro to packages
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.