Problem Solving and Object-Oriented...
-
Upload
truongmien -
Category
Documents
-
view
216 -
download
0
Transcript of Problem Solving and Object-Oriented...
![Page 1: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/1.jpg)
Problem Solving and Object-Oriented Programming
CS 180Sunil PrabhakarDepartment of Computer Science Purdue University
![Page 2: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/2.jpg)
2
Objectives
This week we will study:n The notion of hardware and softwaren Problem solving with computersn Programming paradigms n Java portabilityn Fundamentals of Object-Oriented Programming
¡ classes and objects¡ inheritance
n The software lifecycle
![Page 3: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/3.jpg)
This Course
n We will study how computers can be used to solve certain problems¡ Identify how to represent the program so that
we can use computers to solve them¡ Design a solution for the problem¡ Convert the solution to a program (in Java)
n We will learn several aspects that are common to most programming languages¡ and also several details only specific to Java.
3
![Page 4: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/4.jpg)
The Art of Programming
n Computers are not inherently intelligent.¡ They have a very small number of simple operations
available¡ They do not “understand” what they are doing -- they
simply follow (like a mindless automaton) the instructions given to them.
¡ But, they are very fast, tireless, and perfectly obedient.n All the “magic” is in the program
¡ How to represent real world concepts in the bits of a program?
¡ How to use the simple instructions to achieve a high-level task such as playing chess.
4
![Page 5: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/5.jpg)
Programming is ...
n Not unlike writing a symphony¡ But with perfect players to perform it!
n A highly creative exercise¡ How to create complexity out of simplicity
n Can be painful initially¡ not unlike finger exercises
n Highly rewarding and useful¡ Internet, iTunes, Facebook, Amazon, EMR,
space flight, climate modeling and prediction, simulations of phenomena, Hubble, Pacemakers, Computer games, telemedicine, Watson
n Essential for many modern sciences 5
![Page 6: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/6.jpg)
Working with computers
n Computers aren’t smart, but they are perfectly dumb :¡ all errors are due to your (mis)instructions!
6
![Page 7: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/7.jpg)
Programming Languagesn Programming languages provide a means to
communicate our instructions to a simpler “mind” -- we need to learn to break complex tasks into simpler sub-tasks.
n We need to understand how to use only the operations available to achieve our goals
n We need to understand how simple bits can be used to represent complex concepts such as videos, images, web pages, gene expression data, particle collider outputs, global climate models, ...
7
![Page 8: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/8.jpg)
8
Computer Systems
n There are two main components of a computer:¡ Hardware
n The physical device including the IC chips, hard disks, displays, mice, etc.
n Generally stuff that you can touch.¡ Software
n The information stored on the computern Includes programs and datan Stored in binary (0s and 1s)
![Page 9: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/9.jpg)
9
Computer Architecture (simplified)
CPU“brains”
Keyboard
Monitor
Memory
StorageDevices
MousePrinter
NetworkDevices
More in CS250: ComputerArchitecture.
![Page 10: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/10.jpg)
10
Software
n Everything is in binary -- 0s and 1sn Two types of information
¡ Instructions(programs) -- executed by the CPU¡ Data -- manipulated by CPU
n These are stored in memoryn The software provides a means to access and
control the hardwaren This is done through a very important piece of
software called the Operating Systemn The OS is always running. More in CS252 and
CS354
![Page 11: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/11.jpg)
11
Programs
n A program is simply a set of instructions to the CPU to perform one of its operations¡ Arithmetic, Logic, Tests, Jumps, …
n A program typically takes input data, e.g.,¡ input keywords to a browser¡ mouse clicks as input to the operating system
n It also produces output, e.g.,¡ the display of search results in a browser¡ launching a program
n The program is stored in memory. It is read and executed by the CPU.
![Page 12: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/12.jpg)
12
Machine Languagen A computer only runs programs that are specified
in its own machine language (ML)n For example, for the 8085 microprocessor: 11000011 1000010100100000 Instruction Addressn Also called binary or executable code.n This instruction tells the CPU to pick its next
instruction from memory location 133200.n The ML is specific to the CPU, e.g. Pentium, 386,
PowerPC G3, G4, …n An executable program written for one CPU will
not run on another CPU -- i.e. it is not portable.
![Page 13: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/13.jpg)
13
Not really!
![Page 14: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/14.jpg)
14
Assembly languagen Machine language codes are not easy to remembern Assembly language uses mnemonics and symbols
to ease programming, e.g., JMP L2 n A special program called an assembler must be
used to convert the assembly code to machine coden The assembly code is also hardware-specific.n Eases programming but still requires one to think in
terms of low-level steps taken by the CPU.n Humans think at a higher level.
![Page 15: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/15.jpg)
15
High-Level Languages
n Allow programmers to work with constructs that are closer to human language.¡ E.g. Java, C, C++, Basic, Fortran, COBOL, Lisp, …
n Need a special purpose program to convert the high-level program to machine language.
n This program is called a compiler.n Can write programs in many different HLLs for the
same CPU.n Need a compiler for each language and CPU (OS).n Efficient conversion is still an issue. More in CS352
Compilers¡ still use Machine Language for critical tasks
![Page 16: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/16.jpg)
16
High-Level Languages (cont.)
n Since the language is not specific to the hardware, HLL programs are more portable¡ Some hardware, OS issues limit portability
n All we need is the program and a compiler for that language on the given hardware platform¡ E.g., a C compiler for Mac OS X
n Thus we can write a program once in a HLL and compile it to run on various platforms, e.g.,Firefox
![Page 17: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/17.jpg)
17
Source Coden A program written in a machine language is called an
executable, or a binary.¡ It is not portable.
n A program written in a HLL is often called source code.
n Given an executable, it is difficult to recover the source code (not impossible).
n Thus, companies release only the executables.n This makes it hard for someone else to replicate the
software and also to modify it (maybe even to trust it completely)
n Open-Source is an alternative approach.
![Page 18: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/18.jpg)
18
Algorithms
n Humans tend to think of programs at a higher level than HLL -- more in terms of algorithms.
n An algorithm is a well-defined, finite set of steps that solves a given problem¡ E.g., the rules for multiplying two numbers
n Algorithms are sometimes described using flow charts, or pseudo-code.
n This avoids the details of a particular HLL’s syntax rules.
![Page 19: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/19.jpg)
19
HLL Paradigms
n Procedural¡ A program is composed of packets of code called
procedures, and variables. A procedure is at full liberty to operate on data that it can see. E.g. C, Pascal, COBOL, Fortran
n Object-Oriented¡ Programs are composed of Objects, each of a specific
class with well defined methods. Data and programs are tightly coupled -- better design. E.g. Java, C++, Objective-C, C#
n Functional¡ Programs are composed of functions. E.g. Lisp
n More in CS456 Programming Languages.
![Page 20: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/20.jpg)
20
Java
n We will use Java as a representative language.n Java is based upon C++ (which in turn is based
on C).n Unlike C++ which is really a hybrid language,
Java is purely Object-Oriented. n This results in significant advantages.n Most HLL programs are compiled to run on a
single platform.n Java programs can run on multiple platforms after
compilation -- i.e., its compiled format is platform-independent.
n This design choice comes from its history.
![Page 21: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/21.jpg)
21
History of Java
n Java was developed by J. Gosling at Sun Microsystems in 1991 for programming home appliances (variety of hardware platforms).
n With the advent of the WWW (1994), Java’s potential for making web pages more interesting and useful was recognized. Java began to be added to web pages (as applets) that could run on any computer (where the browser was running).
n Since then it has been more widely accepted and used as a general-purpose programming language, partly due to¡ its platform-independence, and ¡ it is a truly OO language (unlike C++)
n Now belongs to Oracle following the purchase of Sun Microsystems.
![Page 22: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/22.jpg)
22
Platform-Independence
n Notion of a “Java Virtual Machine” (JVM)n Java programs are compiled to run on a virtual
machine (just a specification of a machine). This code is called Byte Code
n Each physical machine that runs a Java program (byte code) must “pretend” to be a JVM.
n This is achieved by running a program on the machine that implements the JVM and interprets the byte code to the appropriate machine code.
n This interpreting is done at run-time which can cause a slow down!
![Page 23: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/23.jpg)
23
Regular Programming Languages
Fortran program
C-OSXCompiler
C-LinuxCompiler
Fortran-OSXCompiler
Fortran-LinuxCompiler
010101100101
110100100111
C program
101001101111
110100100111
![Page 24: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/24.jpg)
24
Java
Java Program JavaCompiler
OSXInterpreter
010101100101
110100100111
LinuxInterpreter
Java ByteCode
![Page 25: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/25.jpg)
25
Datan All data are eventually stored in binary.n In a HLL we treat data as having a type, e.g.,
integer, character, etc.n Within a program every piece of data is stored at
some location (address) in memory.n We use identifiers to refer to these locations or to
the data itself.n Program instructions manipulate the various
pieces of data accessible to the program.n An object is a collection of some data along with
pieces of code that can manipulate that data.
![Page 26: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/26.jpg)
26
Object-Oriented Programming
n The OOP paradigm uses the notion of objects and classes as basic building blocks
n Other important components of OOP are¡ Encapsulation¡ Inheritance¡ Polymorphism (later)¡ Dynamic binding (later)
![Page 27: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/27.jpg)
27
Classes and Objects
n Object-oriented programs use objects.n An object represents a concept that is part of our
algorithm, such as an Account, Vehicle, or Employeen Similar objects share characteristics and behavior. We
first define these common characteristics for a group of similar objects as a class.
n A class defines the type of data that is associated with each object of the class, and also the behavior of each object (methods).
n A class is a template for the objects.n An object is called an instance of a class.n Most programs will have multiple classes and objects.
![Page 28: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/28.jpg)
28
Banking Example
n In a banking application, there may be numerous accounts. n There is common behavior (as far as the bank is concerned)
for all these accounts¡ Deposit, Check balance, Withdraw, Overdraw? ...
n There are also common types of data of interest¡ Account holder’s name(s), SSN, Current balance, …
n Instead of defining these data and behavior for each account separately, we simple define them once -- this is the notion of the Account class.
n Each account will be an instance of this class and will have its own values for the data items, but the same behavior (defined once).
![Page 29: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/29.jpg)
29
Graphical Representation of a Class
Using the standard Unified Modeling Language (UML) notation.
<Class Name> We use a rectangle to represent a class with its name appearing inside the rectangle.
Example: Account Motorcycle
![Page 30: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/30.jpg)
30
Graphical Representation of an Object
<Object Name>
We use a rectangle to represent an object and place the underlined name of the object inside the rectangle.
Example:
SV198This is an object named SV198.
![Page 31: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/31.jpg)
31
An Object with the Class Name
<Object Name> : <Class Name>
Example:
SV198 : BankAccount
This notation indicates the class which the object is an instance of.
This indicates that object SV198 is an instance of the BankAccount class.
![Page 32: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/32.jpg)
32
Messages and Methods
n To instruct a class or an object to perform a task (behavior), we send a message to it.
n You can send a message only to the classes and objects that understand that message.
n A class or an object must possess a matching method to be able to handle the received message.
n A value we pass to an object when sending a message is called an argument of the message.
![Page 33: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/33.jpg)
33
Encapsulation
n To prevent uncontrolled access to read and modify the data for an object, OOP language restrict what operations (methods) can be applied to each object.
n This restriction of behavior is also called encapsulation -- an important part of OOP.
n The data and behavior are encapsulated. n This greatly improves reliability and manageability
of code.n Procedural language do not have such restrictions
-- the onus is on the programmer (less reliable).
![Page 34: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/34.jpg)
34
Sending a Message
deposit (250.00)
Message deposit with the argument 250.00 is sent to a BankAccount object SV198.
SV198 : BankAccount
![Page 35: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/35.jpg)
35
Sending a Message and Getting an Answer
current balance
getCurrentBalance()SV198 : BankAccount
The current balance of SV198 is returned.
Ask for the current balance of this particular account.
![Page 36: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/36.jpg)
36
Calling a Class Method
$100
Account
getMinimumBalance()
Ask for the minimum balance allowed for any Account.
![Page 37: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/37.jpg)
37
Class and Instance Data Values
n An object is comprised of data values and methods.n An instance data value is used to maintain
information specific to individual instances ¡ each BankAccount object maintains its balance
n A class data value is used to maintain information shared by all instances or aggregate information about the instances¡ Avoids repeated storage¡ Easy to modify¡ Less prone to errors¡ E.g. minimum balance
![Page 38: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/38.jpg)
38
SV098 : BankAccount SV211 : BankAccountSV129 : BankAccount
Sample Instance Data Value
current balance current balance current balance908.55 1304.98 354.00
All three BankAccount objects possess the same instance data item current balance.
The actual dollar amounts are, of course, different.
![Page 39: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/39.jpg)
39
Sample Class Data Value
SV098 : BankAccount SV211 : BankAccountSV129 : BankAccount
current balance current balance current balance908.55 1304.98 354.00
BankAccount
minimum balance100.00
There is one copy of minimum balance for the whole class and shared by all instances.
This line is an instance-of relationship.
![Page 40: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/40.jpg)
40
Object Icon with Class Data Value
When the class icon is not shown, we include the class data value in the object icon itself.
SV129 : BankAccount
current balance908.55
minimum balance100.00
![Page 41: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/41.jpg)
41
Inheritance
n Inheritance is a mechanism in OOP to design two or more entities that are different but share many common features. ¡ Features common to all classes are defined in
the superclass.¡ The classes that inherit common features from
the superclass are called subclasses.n We also call the superclass an ancestor and the
subclass a descendant.
![Page 42: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/42.jpg)
42
A Sample Inheritance
n Here are the superclass Account and its subclasses Savings and Checking.
Account
Checking Savings
Superclass(Ancestor)
Subclass(Descendant)
![Page 43: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/43.jpg)
43
Inheritance (cont.)
n The account class may define ¡ Owner’s Name as a data element¡ getBalance
n The Checking class may define¡ Minimum (checking) balance¡ ATM transactions
n The Savings class may define¡ Minimum (savings) balance¡ Interest rate¡ Pay interest
![Page 44: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/44.jpg)
44
Inheritance Hierarchy
n An example of an inheritance hierarchy among different types of students.
Student
Graduate Undergrad
Commuting Resident Law Masters Doctoral
![Page 45: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/45.jpg)
45
Software Engineering
n Much like building a skyscraper, we need a disciplined approach in developing complex software applications.
n Software engineering is the application of a systematic and disciplined approach to the development, testing, and maintenance of a program.
n In this class, we will learn how to apply sound software engineering principles when we develop sample programs.
![Page 46: Problem Solving and Object-Oriented Programmingweb.ics.purdue.edu/~cs180/Spring2012Web/lecture_notes/Intro... · Programming paradigms ! Java portability! Fundamentals of Object-Oriented](https://reader031.fdocuments.us/reader031/viewer/2022022013/5b2c132e7f8b9a5c478bdc3d/html5/thumbnails/46.jpg)
46
Software Life Cycle
n The sequence of stages from conception to operation of a program is called the software life cycle.
n Five stages are¡ Analysis¡ Design¡ Coding¡ Testing¡ Operation and Maintenance
More in CS307, 407 Software Engg.