12
Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila University

Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila

Embed Size (px)

Citation preview

Page 1: Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila

Introduction toObject-Oriented Programming

CS 21a: Introduction to Computing I

Department of Information Systems

and Computer ScienceAteneo de Manila University

Page 2: Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila

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

Page 3: Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila

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

Page 4: Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila

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

Page 5: Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila

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

Page 6: Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila

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

Page 7: Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila

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

Page 8: Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila

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

Page 9: Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila

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

Page 10: Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila

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…

Page 11: Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila

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

Page 12: Introduction to Object-Oriented Programming CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila

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