OOP Class 2 - PowerPoint PPT Presentation

About This Presentation
Title:

OOP Class 2

Description:

Encourage the use of CRC cards (see Chapter 8) ... Displays the greeting 'Hello world!'. To create this program, you will: Create a source file ... – PowerPoint PPT presentation

Number of Views:67
Avg rating:3.0/5.0
Slides: 78
Provided by: csI4
Learn more at: http://www.cs.iit.edu
Category:
Tags: oop | class

less

Transcript and Presenter's Notes

Title: OOP Class 2


1
  • OOPClass 2

2
An Object of class Time
OPERATIONS DATA
Set
Private data hrs 8 mins 25 secs
42
Increment
Write . . .
Time
3
  • Definitions

4
Definitions
  • Definitions of object on the Web
  • a tangible and visible entity an entity that can
    cast a shadow "it was full of rackets, balls and
    other objects"
  • Definitions of object-oriented on the Web
  • object-oriented ... techniques where data
    carries with itself the "methods" (also known as
    "functions") used to handle that data. An OO
    programmer, for instance, can write a statement
    such as "object.print()" without having to be
    concerned about what kind of object will be
    involved at "run time" or what its printing
    method is. Object-oriented code is both more
    flexible and more organized, so it is far easier
    to write, read, and change than procedural code
    www.3dartist.com/WP/dempy/help/glossary.htm
  • A style of software development and packaging
    based on how real world objects relate to one
    another. Data and procedures are combined in
    objects objects communicate with each other via
    messages similar objects are grouped together
    into classes data and procedures are inherited
    through a class hierarchywww.olenick.com/html/gl
    ossary.html

5
Definitions
  • Definitions of object-oriented design on the Web
  • entails transforming the analysis model into a
    feasible design. kaykeys.net/science/computerwork/
    oodesign/
  • A software design method that models the
    characteristics of abstract or real objects using
    classes and objects. software.allindiansite.com/ja
    va/ojava.html
  • Object-oriented design (OOD) is a design method
    in which a system is modeled as a collection of
    cooperating objects and individual objects are
    treated as instances of a class within a class
    hierarchy.
  • en.wikipedia.org/wiki/Object-oriented_design

6
Definitions of object-oriented analysis on the
Web
  • Object-oriented analysis
  • builds a model of a system that is composed of
    objects. The behavior of the system is achieved
    through collaboration between these objects, and
    the state of the system is the combined state of
    all the objects in it. Collaboration between
    objects involves them sending messages to each
    other.
  • Definitions of object-oriented programming on the
    Web
  • A programming approach based on the concepts
    of data abstraction and inheritance. Unlike
    procedural programming techniques,
  • Style of programming characterized by the use
    of separate "objects" to perform different tasks
    within a program. These "objects" usually consist
    of an abstract data type or class, along with the
    methods used to manipulate that abstract data
    type
  • A programming methodology built around objects
    and based on sending messages back and forth
    between those objects. The basic concepts of
    object-oriented programming are encapsulation,
    inheritance, and polymorphism

7
Modeling the Real World
  • Components of a software system is an
    interpretation of the real world
  • Model , a representation of parts of the real
    world
  • Algorithm, capture the computation needed to
    manipulate the model
  • Object Orientation is a software development
    model that makes use of objects as a
    representation of the real world
  • An object represents anything in the real world
    that can be distinctly identified.
  • A class represents a set of objects with similar
    characteristics and behavior

8
History
9
Module Structure Chart
Main
Get Data
Prepare File for Reading
Print Data
Print Heading
10
Two Design Strategies
FUNCTIONAL OBJECT-ORIENTED
DECOMPOSITION DESIGN
OBJECT
11
  • Software Process Models

12
Unified Process
  • a use-case driven, architecture-centric,
    iterative and incremental software process
    closely aligned with the Unified Modeling
    Language (UML)
  • Tools are used to describe customer views (use
    cases)
  • Used mainly for OO based methodologies
  • Runs in phases

13
The Unified Process (UP)
inception
Phase 1 Communication Planning
Phase 2 Planning Modeling
elaboration
inception
Phase 3 Coding, unit test integrate Components
result
Phase 4 Deployment
14
UP Phases
15
UP Work Products
16
Agile Development
17
The Manifesto for Agile Software Development
  • We are uncovering better ways of developing
    software by doing it and helping others do it.
    Through this work we have come to value
  • Individuals and interactions over processes and
    tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
  • That is, while there is value in the items on the
    right, we value the items on the left more.

Kent Beck et al
18
What is Agility?
  • Effective (rapid and adaptive) response to change
  • Effective communication among all stakeholders
  • Drawing the customer onto the team
  • Organizing a team so that it is in control of the
    work performed
  • Yielding
  • Rapid, incremental delivery of software

19
An Agile Process
  • Is driven by customer descriptions of what is
    required (scenarios)
  • Recognizes that plans are short-lived
  • Develops software iteratively with a heavy
    emphasis on construction activities
  • Delivers multiple software increments
  • Adapts as changes occur

20
Extreme Programming (XP)
  • The most widely used agile process, originally
    proposed by Kent Beck
  • XP Planning
  • Begins with the creation of user stories
  • Agile team assesses each story and assigns a cost
  • Stories are grouped to for a deliverable
    increment
  • A commitment is made on delivery date
  • After the first increment project velocity is
    used to help define subsequent delivery dates for
    other increments

21
Extreme Programming (XP)
  • XP Design
  • Follows the KIS principle
  • Encourage the use of CRC cards (see Chapter 8)
  • For difficult design problems, suggests the
    creation of spike solutionsa design prototype
  • Encourages refactoringan iterative refinement
    of the internal program design
  • XP Coding
  • Recommends the construction of a unit test for a
    store before coding commences
  • Encourages pair programming
  • XP Testing
  • All unit tests are executed daily
  • Acceptance tests are defined by the customer
    and executed to assess customer visible
    functionality

22
Extreme Programming (XP)
23
  • OO Design Programming
  • Java Basics

24
Classes and Objects
Class Point Int x, y Public void move
(intd dx, int dy) x dx
y dy
  • An object
  • point1
  • Attributes or fields
  • int x, y
  • A method
  • void move(int dx, int dy)
  • A message
  • point1.move(10, 10)

25
An Object of class Time
OPERATIONS DATA
Modularity Abstraction Encapsulation Inheritance P
olymorphism Message Passing
Set
Private data hrs 8 mins 25 secs
42
Increment
Write . . .
Time
26
Developing a Java Application
  • Write the source code
  • Using an Integrated Development Environment (IDE)
    or text editor
  • Save in a .java file
  • Compile the source code
  • javac ClassName.java
  • Creates .class file
  • Execute the application
  • java ClassName
  • Run by the Java Virtual Machine (JVM)

27
A First Application
  • 1 // First program in Java
  • 2 // FirstProgram.java
  • 3
  • 4 public class FirstProgram
  • 5
  • 6 public static void main( String args )
  • 7
  • 8 System.out.println( "Programming is not "
  • 9 " a spectator sport!" )
  • 10 System.exit( 0 )
  • 11
  • 12

28
  • Class FirstProgram
  • Method main(...)
  • Statement System.out.println(...)
  • Comments
  • // a comment
  • / another comment /
  • Source file FirstProgram.java

29
Program Errors
  • Compiler errors
  • Found by the compiler.
  • Usually caused by incorrect syntax or spelling
  • Run-time errors
  • Reported by the JVM
  • Usually caused by incorrect use of prewritten
    classes or invalid data
  • Logic errors
  • Found by testing the program
  • Incorrect program design or incorrect execution
    of the design

30
Program Life Cycle
31
Introduction Java Platform
  • JavaTM platform is based on the idea that the
    same software should run on many different kinds
    of computers, consumer gadgets, and other
    devices.
  • Portability
  • Java platform allows you to run the same Java
    application on lots of different kinds of
    computers.

32
JVM
  • Java virtual machine or "JVMTM
  • a translator that turns general Java platform
    instructions into tailored commands that make the
    devices do their work

33
Java Program Phases
  • Edit
  • IDE, vi, emacs, notepad
  • Compile
  • javac
  • Load
  • Class Loader
  • Verify
  • Verifier (Security and Validation)
  • Execute
  • Java Interpreter (java or appletviewer)

34
The java Compiler
  • javac
  • Creates bytecodes
  • Stored on disk as .class
  • Each file contains bytecode for one and only one
    class

35
The java Class Loader
  • Loads bytecodes in memory
  • Loads .class files from disk into memory

36
The java Bytecode Verifier
  • Confirms that all bytecodes are
  • Valid and
  • Don't violate Javas Security restrictions
  • Works on bytecodes from memory

37
The java Interpreter
  • Reads bytecodes and translate them into a
    language that is relevant to the targeted
    computer architecture
  • PC
  • Machintosh
  • Cell Phone
  • For applets execution its built into the browser
    or the appletviewer

38
Your first program HelloWorldApp.java
  • Displays the greeting "Hello world!". To create
    this program, you will 
  • Create a source file
  • A source file contains text, written in Java.
  • Compile the source file into a bytecode file.
  • The compiler, javac, converts these instructions
    into a bytecode file

39
Your first program HelloWorldApp
  • Run the program contained in the bytecode file
  • The Java interpreter implements the Java VM
  • This interpreter takes your bytecode file and
    carries out the instructions by translating them
    into instructions that your computer can
    understand.

40
JRE
41
JAVA Program
  • public class HelloWorldApp
  • public static void main(String args)
  • System.out.println("Hello World")

42
Steps
  • Save the file as HellowWordApp.java
  • Compile
  • Javac HellowWordApp.java ? HellowWordApp.class
  • Run the program
  • Java HellowWordApp

43
Output
44
What Can be a Class?
  • Physical Objects equipments, devices, products
  • People Students, Faculty, Customers
  • Organizations Universities, Companies,
    Departments, Bank
  • Places Buildings, Rooms, Seats
  • Events Mouse click, order request, purchase
    orders
  • Concepts Transaction
  • The domain determines the classes

45
What Features Should a Class Have?
  • Actions should be modeled as methods of a class
  • Verb phrases
  • Underline the verbs and nouns in the description
    of the requirements and use cases
  • Nouns are candidate classes or attributes
  • Verbs are candidate methods

46
Java Programming Language
  • Java Basics
  • OO Basics
  • UML Basics

47
Data Types, Variables, and Constants
  • We use Symbolic Names to refer to data
  • We must assign a data type for very identifier
    (symbolic name)
  • Declaring Variables
  • Primitive Data Types
  • Initial Values and Literals
  • String Literals and Escape Sequences
  • Constants

48
Data Types
  • For all data, assign a name (identifier) and a
    data type
  • Data type tells compiler
  • How much memory to allocate
  • Format in which to store data
  • Types of operations you will perform on data
  • Compiler monitors use of data
  • Java is a "strongly typed" language
  • Java "primitive data types"
  • byte, short, int, long, float, double, char,
    boolean

49
Declaring Variables
  • Every Variable must be given a name and a data
    type
  • Variables hold one value at a time, but that
    value can change
  • Syntax
  • dataType identifier
  • or
  • dataType identifier1, identifier2,
  • Naming convention for variable names
  • first letter is lowercase
  • embedded words begin with uppercase letter

50
Java Primitive Data Types
  • byte, short, int, long , float, double, char,
    boolean

51
OO Design
52
Topics
  • Class Basics and Benefits
  • Creating Objects Using Constructors
  • Calling Methods
  • Using Object References

53
Object-Oriented Programming
  • Classes combine data and the methods (code) to
    manipulate the data
  • Classes are a template used to create specific
    objects
  • All Java programs consist of at least one class.
  • Two types of classes
  • Application/Applet classes
  • Service classes

54
Example
  • Student class
  • Data name, year, and grade point average
  • Methods store/get the value of each piece of
    data, promote to next year, etc.
  • Student Object student1
  • Data Maria Gonzales, Sophomore, 3.5

55
Some Terminology
  • Object reference identifier of the object
  • Instantiating an object creating an object of a
    class
  • Instance of the class the object
  • Methods the code to manipulate the object data
  • Calling a method invoking a service for an
    object.

56
Class Data
  • Instance variables variables defined in the
    class and given values in the object
  • Fields instance variables and static variables
    (we'll define static later)
  • Members of a class the class's fields and
    methods
  • Fields can be
  • any primitive data type (int, double, etc.)
  • objects

57
Encapsulation
  • Implementation of a module should be separated
    from its users.
  • Instance variables are usually declared to be
    private, which means users of the class must
    reference the data of an object by calling
    methods of the class.
  • Thus the methods provide a protective shell
    around the data. We call this encapsulation.
  • Benefit the class methods can ensure that the
    object data is always valid.

58
Modularity
  • Divide-and-conquer
  • Decompose a complex system into a highly cohesive
    loosely coupled modules.
  • Cohesion single-mind-ness of a module
  • Each module should small and simple
  • Coupling the degree of connectivity between
    modules
  • Interactions between modules should be simple

59
Abstraction
  • Separating the essential from the nonessential
  • The behaviors of a module should be characterized
    in a precise way using its interfaces.
  • Server provider for example is a client that
    provide services (methods) to its clients.
  • Clients need to know only the contract API.

60
Polymorphism
  • Many shapes
  • Same method many ways to call it (dynamic)
  • Replacing an object with its parent

61
Reusability
  • Reuse class code is already written and tested,
    so you build a new application faster and it is
    more reliable
  • Example A Date class could be used in a
    calendar program, appointment-scheduling program,
    online shopping program, etc.

62
How To Reuse A Class
  • You don't need to know how the class is written.
  • You do need to know the application programming
    interface (API) of the class.
  • The API is published and tells you
  • How to create objects
  • What methods are available
  • How to call the methods

63
Declare an Object Reference
  • Syntax
  • ClassName objectReference
  • or
  • ClassName objectRef1, objectRef2
  • Object reference holds address of object
  • Example
  • Date d1

64
Instantiate an Object
  • Objects MUST be instantiated before they can be
    used
  • Call a constructor using new keyword
  • Constructor has same name as class.
  • Syntax
  • objectReference
  • new ClassName( arg list )
  • Arg list (argument list) is comma-separated list
    of initial values to assign to object data

65
Constructor
  • Constructor method special method with the same
    name as the class that is used with new when a
    class is instantiated
  • public class name
  • public name(String frst,String lst)
  • first frst
  • last lst
  • Name name
  • name new Name(john, Dewey)

66
Date Class API
  • constructor special method that creates an
    object and assigns initial values to data

67
Instantiation Examples
  • Date independenceDay
  • independenceDay new Date( 7, 4, 1776 )
  • Date graduationDate
  • new Date( 5, 15, 2008 )
  • Date defaultDate new Date( )

Example Next Slide
68
Constructors.java
  • public class Constructors
  • public static void main( String args )
  • Date independenceDay
  • independenceDay new Date( 7, 4, 1776 )
  • Date graduationDate new Date( 5, 15, 2008
    )
  • Date defaultDate new Date( )

Figure Next Slide
69
Objects After Instantiation
70
Calling a Method
71
Method Classifications
  • Accessor methods
  • get
  • gives values of object data
  • Mutator methods
  • set
  • change values of object data

72
Date Class Methods

73
The Argument List in an API
  • Pairs of
  • dataType variableName
  • Specify
  • Order of arguments
  • Data type of each argument
  • Arguments can be
  • Any expression that evaluates to the specified
    data type

74
Modeling Relationships and Structures
  • UML

75
UML Class Diagram
  • Used to model the static structure and
    relationships among the classes of an OO software
    system
  • A class diagram is made of
  • Nodes (Classes and Interfaces)
  • Links (Relationships)

76
Relationships
  • Inheritance
  • Extension Relationship (specialization and
    generalization)
  • Extension between two interfaces
  • Implementation (when a class implements an
    interface)
  • UML uses hollow triangle pointing toward the
    super class
  • See Page 30 for an example
  • Association
  • Aggregation and Composition
  • Dependency

77
Read Ahead
  • Chapter 2 including the case study on page 44
Write a Comment
User Comments (0)
About PowerShow.com