Chapter 1: Data Abstraction. Introductory concepts. - PowerPoint PPT Presentation

1 / 68
About This Presentation
Title:

Chapter 1: Data Abstraction. Introductory concepts.

Description:

Objects are often abstractions of real-world entities: students, employees, rooms, ... or a solitaire playing card object might be instructed to turn over, changing ... – PowerPoint PPT presentation

Number of Views:49
Avg rating:3.0/5.0
Slides: 69
Provided by: defau350
Learn more at: http://www.cs.uno.edu
Category:

less

Transcript and Presenter's Notes

Title: Chapter 1: Data Abstraction. Introductory concepts.


1
Chapter 1 Data Abstraction. Introductory
concepts.
2
Objectives
  • After studying this chapter you should understand
    the following
  • the nature of a software object its properties,
    functionality, data, and state
  • the notions of query and command
  • values and collection of values called types
  • Javas built-in types
  • variables, and the relationship between values,
    variables, and types
  • classes as collections of related objects
  • the syntactic layout of a class as defined in
    Java
  • reference values and reference types.

3
Objectives
  • Also, you should be able to
  • classify an object as immutable or mutable
  • describe the components of a system developed
    using objects
  • describe the values comprising the built-in Java
    types
  • describe literals of the built-in Java types
  • form legal Java identifiers and name the role of
    identifiers in programming.

4
Objects
  • Fundamental abstractions to build software
    systems.
  • Objects are often abstractions of real-world
    entities
  • students,
  • employees,
  • rooms,
  • passageways,
  • chess pieces.

5
Objects
  • System functionality set of tasks it must
    perform.
  • Tasks system must perform are allocated to
    objects.
  • A given object has responsibility for performing
    certain specific tasks of the system.
  • A critical part of system design is allocating
    responsibilities to objects.

6
Data and State
  • An object is responsible for maintaining relevant
    data about the thing it models.
  • Example Given object Student as part of a
    registration system. Data it maintains
  • Name,
  • address,
  • number of credit hours the student is enrolled
    in,
  • students course schedule,
  • whether or not the student has paid fees, etc.

7
Data and State
  • An object contains a number of data items,
  • Each data item consists of
  • a data description
  • an associated value.

8
Data and State
  • The data descriptions are the properties of the
    object.
  • Example Properties of a student object include
  • Name,
  • address,
  • number of credit hours the student is enrolled
    in,
  • students course schedule,
  • whether or not the student has paid fees, etc.
  • If we are modeling a playing card, object
    properties will include suit and rank.

9
Data and State
  • Each property of an object has an associated
    value.
  • Examples
  • The students name is Stephen Dadelus,
  • the playing cards rank is Jack,
  • the windows width is 100 pixels.

10
Data and State
  • Instance variables variables for objects
    values.
  • A portion of computer memory reserved for storing
    a particular value.
  • Memory space used to store an objects instance
    variables allocated to object when created.
  • An instance variable is allocated for each
    property of the object.
  • Instance variable contains the data value
    associated with that property.

11
Data and State
  • The set of properties of an object is fixed.
  • The associated values can often change over time
  • a student can change address or even name
  • a computer user can change the width and height
    of a window on the screen.
  • Objects state set of objects instance
    variables and associated values at any given
    time.

12
Mutable and Immutable objects
  • Immutable object object whose state cannot be
    changed.
  • An object whose state can be changed is mutable.

13
Mutable and Immutable objects
  • Example of mutable objects
  • Student,
  • Computer screen window
  • Examples of immutable objects
  • A playing card
  • A Calendar date
  • A color.

14
Functionality Queries and Commands
  • An object maintains data in order to support its
    functionality.
  • Object functionality actions the object performs
    in response to requests from other objects.

15
Functionality Queries and Commands
  • Two kinds of requests an object can serve
  • Query request for data
  • Command request to change its state.
  • Objects features collection of queries and
    commands.

16
Queries
  • A request for data maintained by the object.
  • Object responds by providing a value.

17
Queries
  • Examples
  • a student object might be queried for the
    students name,
  • a playing card object for the cards suit,
  • a chess piece for its position.
  • Queries are used to gather information about an
    objects state.

18
Queries
  • An object might support queries for data it does
    not explicitly store.
  • Example object modeling a window maintains
    length and width. Design query for the windows
    area.
  • Area is not explicitly stored in an objects
    instance variables.

19
Queries
  • An object might not support queries for data it
    does store.
  • Example an object representing a computer user
    contains the users name and password.
  • The object is not likely to support a query for
    the password.

20
Commands
  • Instructs object to perform some action resulting
    in value stored in one or more of the objects
    instance variables to be changed.

21
Commands
  • Examples
  • a student object might be instructed to drop a
    course, changing the credit hours and course
    schedule properties of the object
  • a chess piece might be told to move to a
    different square
  • or a solitaire playing card object might be
    instructed to turn over, changing its is face
    up property.

22
Commands
  • An immutable object supports no commands to
    change its state.

23
Objects change in response to commands
drop course (Ethics 1001)
SolitairePlayingCard
SolitairePlayingCard
turnOver
Heart
suit
Heart
suit
10
10
rank
rank
true
isFaceUp
false
isFaceUp
state before command
command
state after command
24
Values and Types
  • Values abstractions used to represent, or model,
    properties of objects.

25
Values and Types
  • Integers model problem features we count
  • the number of students in a class, or
  • the number of words on a page.
  • Real numbers model problem features we measure
  • the width of a table,
  • the voltage drop across a line.

26
Values and Types
  • Values are grouped together according to the
    operations we perform with them.
  • Type A set of values along with the operations
    that can be performed with them.

27
Javas built-in primitive types
  • Integer types
  • byte, short, int, long.
  • Real types
  • float, double.
  • The operations for these types include
  • addition, subtraction, multiplication, and
    division.

28
Javas built-in primitive types
  • char
  • values include the upper and lower case letters,
    digits, punctuation marks, and spaces that
    constitute text.
  • boolean.
  • contains only the two values true and false.

29
Ranges of integer type values
type Smallest value Largest value
byte -128 127
short -32,768 32,767
int -2,147,483,648 2,147,483,647
long -9,223,372,036,854,775,808 9,223,372,036,854,775,807
30
Types and variables
  • A variable can contain values of only one type.
  • An int variable contains a single int value
  • a double variable contains a double value, etc.

31
Types and variables
  • The type of value a variable contains is
  • type of the variable and
  • fixed when the object is designed.
  • Example The width of a window might be 100
    pixels at one time, and 150 pixels some time
    later.
  • Value will always be an integer, and instance
    variable modeling it is of type int

32
Classes
  • Class collection of similar objects, that is,
    objects supporting the same queries and commands.
  • Every object is an instance of some class, which
    determines the objects features.

33
Example A class modeling a counter
  • / 1
  • A simple integer counter.
  • /
  • public class Counter
  • private int count
  • /
  • Create a new Counter, with the count
    initialized to 0
  • /
  • public Counter ()
  • count 0
  • /
  • The number of items counted /
  • public int currentCount ()
  • return count
  • / 2
  • Increment the count by 1.
  • /
  • public void incrementCount ()
  • count count 1
  • /
  • Reset the count to 0.
  • /
  • public void reset ()
  • count 0
  • // end of class Counter

34
Reference values Objects as properties of
objects
  • Know how to model objects properties such as
    numbers, or characters.
  • How to model properties like the name, address,
    and course schedule or birthday of a student?

35
Reference values Objects as properties of
objects
  • Example to model birthday, we first model a date
    with an object, via the class Date

36
Reference values
  • The students value for property birthday
    denotes or refers to a Date object.
  • Value is a reference value.
  • Type is reference-to-Date
  • reference value a value that denotes an object.

37
Modeling students name, address Javas class
String
  • String instance immutable object that contains a
    sequence of characters.
  • A String can be queried for length and for
    individual characters that comprise it.
  • Class contains no state-changing commands.

38
Overview of a complete system
  • Set of objects comprising system can be divided
    into
  • Model objects that cooperate to solve the
    problem.
  • external interface or user interface and
  • data management objects that maintain problems
    data.

39
Overview of a complete system
  • Example
  • We build a very simple system to test a Counter.
  • The model only a single class Counter.
  • The user interface only a single class
    CounterTester.
  • Data management none.

40
//A simple tester for the class Counter. public
class CounterTester private Counter
counter // Create a new CounterTester.
public CounterTester () counter new
Counter() // Run the test. public void
start () System.out.println("Starting
count") System.out.println(counter.currentCoun
t()) counter.incrementCount() counter.increm
entCount() counter.incrementCount() System.o
ut.println("After 3 increments") System.out.pr
intln(counter.currentCount()) counter.reset()
System.out.println("After reset") System.out
.println(counter.currentCount())
41
Getting it all started
  • We need one more class containing a method named
    main, as shown

/ Test the class Counter. / public class
Test / Run a Counter test. / public
static void main (String args)
CounterTester tester new CounterTester()
tester.start()
42
Running a program
  • It depends on the computing system and
    environment used. We must identify class
    containing method main to the Java run-time
    system. For instance,

java Test
  • Running the program will produce six lines of
    output

Starting count 0 After 3 increments 3 After
reset 0
43
Identifiers
  • We use identifiers to name things in Java.
  • A Java identifier is a sequence of characters
    consisting of letters, digits, dollar signs(),
    and/or underscores(_). An identifier can be of
    any length, and cannot begin with a digit.

X Abc aVeryLongIdentifier b29 a2b A_a_x b2 _
IXLR8
  • Not legal identifiers.

2BRnot2B a.b Hello! A-a Test.java
44
Identifiers
  • Java identifiers are case sensitive. This means
    that upper and lower case characters are
    different. For example, the following are all
    different identifiers.

total Total TOTAL tOtAl
45
Identifiers
  • There are a number of keywords and identifier
    literals reserved for special purposes.
  • Cannot be used as identifiers.
  • Identifier literals true, false, null

46
Guidelines in choosing identifiers
  • Use lower-case characters, with upper-case
    characters inserted for readability.
  • Capitalize class names.
  • Choose descriptive identifiers
  • Avoid overly long identifiers.
  • Avoid abbreviations.
  • Be as specific as possible.
  • Take particular care to distinguish closely
    related entities.
  • Dont incorporate the name of its syntactic
    category in the name of an entity

47
Literals
  • A literal is a representation of a value.

48
Integer Literals
  • Integer literals look like ordinary decimal
    numbers, and denote values of the type int.
  • Integer literals cant contain commas and
    shouldnt have leading zeros.

25 0 1233456 289765 7
49
Floating point Literals
  • Numbers that include a decimal point denote
    values of type double.

0.5 2.67 0.00123 12.0 2. .6
50
Floating point Literals
  • Exponential notation can also be used for double
    literals. The following are legal double
    literals

0.5e3 0.5e-3 0.5E3 5e4 2.0E-27
51
Character Literals
  • Character literals (denoting values of type char)
    consist of a single character between
    apostrophes.

'A' 'a' '2' '' '.' ' '
52
Character Literals
  • The apostrophe, quotation mark, and backslash
    must be preceded by a backslash in a character
    literal.

'\'' '\"' '\\'
53
Character Literals
'\t' //represents the tab character '\n' //represe
nts the end of line character.
54
Boolean Literals
  • The two values of type boolean are written as
    follows

true false
55
Boolean Literals
  • String literal is a possibly empty sequence of
    characters enclosed in quotations

"ABC" "123" "A" ""
56
Summary
  • chapter introduced the fundamental notions of
    value, type, object, and class. We also saw Java
    identifiers and literals.

57
Summary
  • Values fundamental pieces of information
    manipulated in a program.
  • Values are grouped along with their operations
    into types.

58
Summary
  • Java has two kinds of types
  • primitive types
  • several integer types (byte, short, int, long)
  • two real or floating types (float and double)
  • character type char, and
  • type boolean which contains two values, true and
    false.
  • reference types.

59
Summary
  • A reference value denotes, or refers to, an
    object.
  • Objects are the fundamental abstractions from
    which software systems are built.

60
Summary
  • Objects are often abstractions of real-world
    entities,
  • Designed to support system functionality.

61
Summary
  • An objects role in the system determines the set
    of features the object is responsible for
    supporting. These features include
  • queries, by which data values are obtained from
    the object
  • commands, which cause the object to perform some
    actions change state of the object.

62
Summary
  • Instance variables Data maintained by the object
  • State of object Instance variables and their
    values at any given point in the computation
  • Query reports information obtained from the state
    of the object.
  • Command usually causes object to change state.
  • Some objects are immutable.
  • state cannot change after the object is created.

63
Summary
  • Objects are grouped into classes.
  • A class defines the features of, and data items
    maintained by, its members.
  • All objects in a particular class have the same
    features.
  • An object that is a member of a particular class
    is called an instance of the class.

64
Summary
  • Defining a class
  • define instance variables
  • define algorithms for carrying out queries and
    commands.

65
Summary
  • Reference value value that denotes or refers to
    the object.
  • Type is reference-to-x, where x is the class of
    the object.

66
Summary
  • Objects that comprise a system can be divided
    into three basic subsystems
  • Model represent the problem and cooperate to
    provide the solution.
  • External interface user interface.
  • Data management responsible for storing and
    retrieving persistent data in a file system or
    data base.

67
Summary
  • identifiers name of entities in programs.
  • We name classes, objects, properties, features
  • An identifier is a sequence of characters
    consisting of letters, digits, dollar signs,
    and/or underscores.

68
Summary
  • Literal denote a particular value in a program
  • Literals can be used to denote
  • integer values,
  • floating point values,
  • character values,
  • boolean values,
  • Strings.
Write a Comment
User Comments (0)
About PowerShow.com