Embed
Email

Objects

Document Sample

Shared by: wuzhenguang
Categories
Tags
Stats
views:
1
posted:
12/17/2011
language:
pages:
27
INFT11-110/71-110

Section 7



Objects

Object-orientation

• Software is very complex • Model the real world as a collection

(perhaps the most complex of interacting entities, called objects

thing ever built) – everything is an object!



• Need organisation and structure • Objects have defined

to build and understand – properties

– behaviour



• object-orientation is one

mechanism addressing these

aims

Object-oriented Design

OO design quite similar to LEGO ™



• use small blocks to build bigger objects

• same kind of block used in different objects

– some blocks very generic

– some blocks become highly specialised

• blocks fit together in specific ways









OO problem-solving

• determine all the blocks required

• determine how to fit the blocks together

What is an Object?

Objects are entities that can perform a Objects communicate with each other using

given (defined) set of activities messages





E.g., • each object specifies the actions it can

perform



• Clock • sender object sends a message

– what time is it? – to clock: “tell me the time”

– what make is it? – to book: “tell me your title”



• Book • receiver object responds

– what‟s the title? – from clock: “it‟s 12pm”

– who‟s the author? – from book: “Zen and the Art of

Motorcycle Maintenance”

Object-orientation Example

Find highest card in poker hand: Hand of card object: how does it work?



• What are the objects? Hand of cards is a collection of card objects

– hand of cards – what behaviour do card objects

have?

• What behaviour do the objects – card: compare yourself against

display? (I.e., to what messages do another card and say whether

they respond?) you‟re higher or not

– hand of cards: tell me your

highest card



• Note: algorithms from tutorial 1 are

not object-oriented

Object-orientation Example

OO algorithm for highest card in hand:



object: hand-of-cards

message: which-is-highest



answer: hand-of-cards . which-is-

highest



OO algorithm for hand-of-cards.which-is-highest:



highest-so-far is first card object in hand

repeat for all card objects in hand:

next-card-object . compare-to: highest-so-far

(I.e., next-card-object, compare yourself against

highest-so-far object)

If larger: set highest-so-far as next-card-object

If not: do nothing

Classes and Objects

Card objects OO Design



• Define the classes in the system

K J 9

– what properties do objects of this

class have?

Each behaves in similar way

– I.e., each responds to the – what behaviour do objects of this

message compare-yourself-to class display?



Concept of how all cards behave, • Declare the actual objects in the system

rather than specific cards: a class

– introduce the objects



– declare what class they belong to

Messages

A Message has four components

• receiver: to whom is the message going?

• behaviour: what general task do you want the

receiver to do?

• details: are there any specific details about

how you want the receiver to do the task?

• return: what kind of response are you

expecting?

Messages



Examples



“ clock , tell me the time ” ?



receiver behaviour no details return







“ son , turn that damned radio off ”



receiver behaviour details no return

Messages



Examples



“ honey , buy me a diamond necklace ”



receiver behaviour details no return







“ honey , buy me flowers ”



receiver behaviour details

no return

Sending Messages in Java

Messages are sent in Java through method

calls:



receiver . behaviour ( details )



return = receiver . behaviour ( details )



• The method‟s name identifies the behaviour

• The details are the arguments passed to the

method‟s parameters

Messages in Java



E.g.,



honey . buy_me ( “flowers”);



time_now = clock . tell_time ( );







note! no

details

Existentialism and Ontology



“What‟s in a name? A rose by any other

name would smell just as sweet.”



Can an object (a thing) exist without a

name?



Can a name exist without an object?

Existentialism Examples



• People

– same person can have several names

– same name can be used for several people



Sir Donald Bradman Donald Donald Trump









The Don

Existentialism Examples



• Houses

– the building is the object

– the address is the object reference









69 Main St

Hometown Qld

Existentialism Examples

Names without objects

“When I have a baby, I‟m going to call it „Rachel‟”

• name exists

• baby does not exist yet





Objects without names

Doctor: “What are you going to call him?”

Proud Father: “I don‟t know yet”

• baby exists

• name does not exist yet

Existentialism and Java



Introducing a name in Java:

– names refer to objects

– (in Java) must associate a class (data-

type) with a name

• i.e., the new name is going to refer to an object

of that class

Introducing Object References in

Java

Java syntax for declaring an object

reference:



class-name object-reference ;





E.g.,

Card highest-so-far ;

Person honey; note syntax

Clock myClock;

Introducing New Objects in Java

Java syntax for creating a new object:



new class-name ( details )



E.g.,

new Person( )

new Card (“ace of spades”)

new Clock( )

Attaching object references to

actual objects



To make a new, named object in Java:

1. make a new, unnamed object of some

class

2. associate it with an object reference to

an object of that class

Attaching object references to

actual objects in Java

In Java:



class-name object-reference ;

object-reference = new class-name ( details ) ;





E.g.,

Person honey; Card x;

honey = new Person ( ) ; x = new Card ( “ace_of_spades” );





Card motörhead;

motörhead = new Card ( “ace_of_spades” );

Strings

Strings are objects

Object references Objects



In Java:



String s = new String(“Batman”);

s

String t = new String(“Robin”);

String u = new String(“Batman”); B a t m a n





t

Objects respond to messages:

R o b i n

In Java:



System.out.println( s.length() ); u

B a t m a n

Objects and Object References

Object references are not objects Objects are not object references









String s = new String(“Batman”); s

String t = new String(“Robin”); B a t m a n

String u = s;

u



System.out.println(s); Batman



t

System.out.println(t); Robin

R o b i n

System.out.println(u); Batman

Objects and Object References

Object references are not objects Objects are not object references





B a t m a n

s = “Robin”;

u



System.out.println(s); Robin



System.out.println(u); Batman

R o b i n

t = u + t;

s

R o b i n



t



B a t m a n R o b i n

Objects and Object References

Object references are not objects Objects are not object references





String s = new String(“Batman”); s

String t = new String(“Robin”); B a t m a n

String u = new String(“Batman”);

t

int x = 10;

int y = 5; R o b i n

int z = 5;

u

B a t m a n



x == y ? false

y == z ? true x 10





s == t ? false

y 5

s == u ? false

s.equals(u) ? true

z 5

Unnamed Objects

Objects can exist without names

E.g., a String object



System.out.println( “Baron Greenback” );





a Point object





jLabel1.setPosition( new Point(10,10) );







a Frame1 object





Application.run( new Frame1( ) );

The Class Tour









http://java.sun.com/j2se/1.3/docs/api/



Related docs
Other docs by wuzhenguang
Is Air Quality a Problem in My Home
Views: 7  |  Downloads: 0
IHRM Chapter 6
Views: 8  |  Downloads: 0
37.10593
Views: 6  |  Downloads: 0
December_break
Views: 7  |  Downloads: 0
Lectures for 2nd Edition
Views: 8  |  Downloads: 0
Google Chart
Views: 29  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!