17
Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling 1.0

Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

  • Upload
    lycong

  • View
    233

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with JavaA Practical Introduction

using BlueJ

David J. BarnesMichael Kölling

1.0

Page 2: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 2

Course Contents

• Introduction to object-oriented programming…

• … with a strong software engineering foundation…

• … aimed at producing and maintaining large, high-quality software systems.

Page 3: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 3

Buzzwords

interfacejavadoc

encapsulation

couplingcohesion

polymorphic method calls

inheritance

mutator methodscollection classes

overridingiterators

responsibility-driven design

Page 4: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 4

Goals

• Sound knowledge of programming principles

• Sound knowledge of object-orientation• Able to critically assess the quality of

a (small) software system• Able to implement a small software

system in Java

Page 5: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 5

Book

David J. Barnes & Michael KöllingObjects First with JavaA Practical Introduction using BlueJ

Pearson Education, 2003ISBN 0-13-044929-6.

Page 6: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 6

Webpage

The course web page is atwww.cs.vt.edu/~cs1054/fall2003/

Please check it regularly.It will be used for announcements and distribution of material.

Page 7: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 7

Course overview (1)

• Objects and classes• Understanding class definitions• Object interaction• Grouping objects• More sophisticated behavior - libraries• Well-behaved objects - testing,

maintaining, debugging• Designing classes

Page 8: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 8

Course overview (2)

• Inheritance• Polymorphism• Extendable, flexible class structures• Handling errors• Designing applications

Page 9: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 9

Demo

Page 10: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 10

Fundamental concepts

• object• class• method• parameter• data type

Page 11: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 11

Objects and classes

• objects– represent ‘things’ from the real world,

or from some problem domain (example: “the red car down there in the car park”)

• classes– represent all objects of a kind (example:

“car”)

Page 12: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 12

Methods and parameters

• objects have operations which can be invoked (Java calls them methods)

• methods may have parameters to pass additional information needed to execute

Page 13: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 13

Other observations

• many instances can be created from a single class

• an object has attributes: values stored in fields.

• the class defines what fields an object has, but each object stores its own set of values (the state of the object)

Page 14: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 14

State

Page 15: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 15

Two circle objects

Page 16: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 16

Source code

• Each class has source code (Java code) associated with it that defines its details (fields and methods).

Page 17: Objects First with Java A Practical Introduction using BlueJcourses.cs.vt.edu/~cs1054/spring2005/notes/1/Chapter01.pdf · Objects First with Java A Practical Introduction using BlueJ

Objects First with Java - A Practical Introduction using BlueJ, © David J. Barnes, Michael Kölling 17

Return values

• Methods may return a result via a return value.