Upload
loreen-james
View
235
Download
0
Embed Size (px)
Citation preview
Introduction toObject-Oriented Programming
CS 21a: Introduction to Computing I
Department of Information Systems
and Computer ScienceAteneo de Manila University
Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved
L3: Intro to OOPSlide 2
Object-Oriented Programming
The traditional definition of a program is:a sequence of instructions to be executedon a computer
In the Object-Oriented Programming (OOP) paradigm, a program that executes is a collection of interacting objects
In this paradigm, the programs we specify what are in these objects and how these objects behave
Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved
L3: Intro to OOPSlide 3
So … What is an Object?
A “thing” that has type, identity, state, and behavior type: belongs to a “class” of similar objects identity: is a distinct “instance” of a class of
objects state / attributes: has a set of properties (aka
fields) each field can have different values
behavior: has “methods” (things that the object knows how to do)
we say we “call” a method on the object
Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved
L3: Intro to OOPSlide 4
Examples of Objects
state/attributes on (true or false)
behavior switch on switch off check if on
state/attributes # of liters of gas in tank total # of km run so far efficiency (km/liter)
behavior drive load gas change efficiency check gas check odometer reading
LightBulb Car
BankAccount
state/attributes balance
behavior deposit withdraw check balance
Note each object is an
“instance” of that “type” of object
each instance has its own values for its attributes
e.g., different accounts can have different balances
Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved
L3: Intro to OOPSlide 5
BankAccount example(A Preview)
BankAccount
state/attributes balance
behavior get balance deposit withdraw
BankAccount
double balance
double getBalance()void deposit( double amount )… and more
public class BankAccount{ private double balance = 0;
public double getBalance() { return balance; }
public void deposit( double amount ) { balance = balance + amount; } …}
BankAccount.java
Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved
L3: Intro to OOPSlide 6
Class Definition in JavaBankAccount
type (or class)
state/attributes (fields)
behavior (methods) may have input parameters
in parenthesis may have output
(or “return”) type has “body” with code
public class BankAccount{ private double balance = 0;
public double getBalance() { return balance; }
public void deposit( double amount ) { balance = balance + amount; } …}
BankAccount.java
“double” means a floatingPoint number like1234.25
Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved
L3: Intro to OOPSlide 7
A Class with a Constructor
public class BankAccount{ private double balance;
public BankAccount() { balance = 0; }
public double getBalance() { return balance; }
public void deposit( double amount ) { balance = balance + amount; } …}
BankAccount.java
Constructor: special method that handles initialization
For now, view constructors as an alternative to initializing fields as they are declared
Later: more advanced uses for constructors
Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved
L3: Intro to OOPSlide 8
A Class and Its Instances
A single class can have multiple instances Each instance is a separate object Each instance can have different values for
its fields The definition of methods is the same for all
instances of the same type Thus, there is only one class definition
Written as the .java file for that class
Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved
L3: Intro to OOPSlide 9
Lab Exercise: Try it in BlueJ
Create and compile a BankAccount class (BankAccount.java)
Create BankAccount objects(instances of the class) Right-click on the class
Carry out operations on the BankAccount objects (invoke the deposit and getBalance methods) Right-click on the instances
Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved
L3: Intro to OOPSlide 10
Lab Exercise, continued Instantiate and use a BankAccount
object in a Java application(use the command prompt)
How? In the same folder containing the BankAccount class, create BankSystem.java Inside the public static void main(String
args[]) method of BankSystem.java, type the following code…
Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved
L3: Intro to OOPSlide 11
Lab Exercise, continuedpublic static void main( String args[] ){ BankAccount b = new BankAccount(); b.deposit( 1000.00 ); b.withdraw( 100.00 ); System.out.println( b.getBalance() ); b.deposit( 2000.00 ); System.out.println( b.getBalance() );}
Compile and execute BankSystem.java The values 900.0 and 2900.0 should be printed
out
Copyright 2008, by the authors of these slides, and Ateneo de Manila University. All rights reserved
L3: Intro to OOPSlide 12
Summary In Java, we write programs for objects These programs are called classes A class consists of fields and methods to
specify the state and behavior for its objects Once a class has been defined, objects of
that class can be created (instantiated) Methods are invoked on an object, and may
cause the state of the object to change