overview of java object-oriented programming language...

29
Douglas C. Schmidt [email protected] www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Overview of Java Object-Oriented Programming Language Concepts

Upload: others

Post on 10-Mar-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

Douglas C. [email protected]

www.dre.vanderbilt.edu/~schmidtProfessor of Computer Science

Institute for Software Integrated Systems

Vanderbilt University Nashville, Tennessee, USA

Overview of Java Object-Oriented Programming Language Concepts

Page 2: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

2

• Understand the key object-oriented conceptssupported in Java

OOP

Abstraction

InheritancePolymorphism

Learning Objectives of this Lesson

See en.wikipedia.org/wiki/Java_(programming_language)

Page 3: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

3

Overview of Key Object-Oriented Concepts

Supported by Java

Page 4: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

4

• Java was originally an object-oriented programming languageKey Object-Oriented Concepts Supported by Java

See en.wikipedia.org/wiki/Object-oriented_programming

Page 5: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

5

• Java was originally an object-oriented programming language• Thus, Java apps were organized in terms of structural elements

Key Object-Oriented Concepts Supported by Java

See en.wikipedia.org/wiki/Object-oriented_programming

Page 6: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

6

Key Object-Oriented Concepts Supported by Java• Java was originally an object-oriented programming language

• Thus, Java apps were organized in terms of structural elements• e.g., classes, interfaces, & packages

See en.wikipedia.org/wiki/Software_design_pattern

Page 7: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

7

• An object is an instance of a class that performs certain operations & interacts with other objects

Key Object-Oriented Concepts Supported by Java

See docs.oracle.com/javase/tutorial/java/javaOO/objects.html

Page 8: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

8

• An object is an instance of a class that performs certain operations & interacts with other objects• An object in Java resides in a

memory location of a computer

See github.com/douglascraigschmidt/CS891/blob/master/ex/ImageCounter/src/main/java/utils/SimpleSet.java

SimpleSet<T>

Object[] mElementDataint mSizeint mEnd...

boolean add(E element)boolean contains(Object o)int size()...

Key Object-Oriented Concepts Supported by Java

Page 9: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

9

• An object is an instance of a class that performs certain operations & interacts with other objects• An object in Java resides in a

memory location of a computer• It consists of

• State – represented via data fields

Key Object-Oriented Concepts Supported by Java

See docs.oracle.com/javase/tutorial/java/javaOO/variables.html

SimpleSet<T>

Object[] mElementDataint mSizeint mEnd...

boolean add(E element)boolean contains(Object o)int size()...

Page 10: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

10

• An object is an instance of a class that performs certain operations & interacts with other objects• An object in Java resides in a

memory location of a computer• It consists of

• State – represented via data fields• Behavior – represented via

methods

Key Object-Oriented Concepts Supported by Java

See docs.oracle.com/javase/tutorial/java/javaOO/methods.html

SimpleSet<T>

Object[] mElementDataint mSizeint mEnd...

boolean add(E element)boolean contains(Object o)int size()...

Page 11: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

11

• Objects often correspond to real-world entities

Key Object-Oriented Concepts Supported by JavaanAccount : Account

Money mCurrentBalanceboolean mOverdraftProtection...

void deposit(Money amount)void withdrawl(Money amount)Money checkCurrentBalance()...

Page 12: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

12

• Objects often correspond to real-world entities

Key Object-Oriented Concepts Supported by JavaanAccount : Account

Money mCurrentBalanceboolean mOverdraftProtection...

void deposit(Money amount)void withdrawl(Money amount)Money checkCurrentBalance()...

Page 13: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

13

• Objects often correspond to real-world entities

Key Object-Oriented Concepts Supported by JavaanAccount : Account

Money mCurrentBalanceboolean mOverdraftProtection...

void deposit(Money amount)void withdrawl(Money amount)Money checkCurrentBalance()...

Page 14: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

14

• Objects often correspond to real-world entities

Key Object-Oriented Concepts Supported by JavaanAccount : Account

Money mCurrentBalanceboolean mOverdraftProtection...

void deposit(Money amount)void withdrawl(Money amount)Money checkCurrentBalance()...

Page 15: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

15See en.wikipedia.org/wiki/Procedural_programming

• Many non-object-oriented programming languages organize apps in terms of functional elements

Key Object-Oriented Concepts Supported by Java

Page 16: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

16

• Many non-object-oriented programming languages organize apps in terms of functional elements• e.g., actions & logic

Key Object-Oriented Concepts Supported by Java

Page 17: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

17

• Object-oriented Java programs also perform actions & contain logic

Key Object-Oriented Concepts Supported by JavaAccount

Money mCurrentBalanceboolean mOverdraftProtection...

void deposit(Money amount)void withdrawl(Money amount)Money checkCurrentBalance()...

Page 18: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

18

• Object-oriented Java programs also perform actions & contain logic• However, these functional elements

don’t constitute main focus in theobject-oriented parts of Java

Key Object-Oriented Concepts Supported by Java

Page 19: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

19

• Object-oriented Java programs also perform actions & contain logic• However, these functional elements

don’t constitute main focus in theobject-oriented parts of Java

Key Object-Oriented Concepts Supported by Java

Java 8 does focus heavily on functional programming

Page 20: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

20See www.stroustrup.com/whatis.pdf

OOP

Abstraction

InheritancePolymorphism

• Java supports key object-oriented conceptsKey Object-Oriented Concepts Supported by Java

Page 21: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

21

OOP

Abstraction

InheritancePolymorphism

• Java supports key object-oriented concepts, e.g.• Data & control abstractions

See en.wikipedia.org/wiki/Abstraction_(computer_science)

Key Object-Oriented Concepts Supported by Java

Page 22: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

22

OOP

Abstraction

InheritancePolymorphism

• Java supports key object-oriented concepts, e.g.• Data & control abstractions• Inheritance

See en.wikipedia.org/wiki/Inheritance_(object-oriented_programming)

Key Object-Oriented Concepts Supported by Java

Page 23: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

23

OOP

Abstraction

InheritancePolymorphism

• Java supports key object-oriented concepts, e.g.• Data & control abstractions• Inheritance• Polymorphism

See en.wikipedia.org/wiki/Polymorphism_(computer_science)

Key Object-Oriented Concepts Supported by Java

Page 24: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

24

OOP

Abstraction

InheritancePolymorphism

See en.wikipedia.org/wiki/List_of_object-oriented_programming_languages

Key Object-Oriented Concepts Supported by Java• There are many other object-oriented languages

Page 25: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

25

OOP

Abstraction

InheritancePolymorphism

See en.wikipedia.org/wiki/List_of_object-oriented_programming_languages

Key Object-Oriented Concepts Supported by Java• These are (arguably) the most popular today

Page 26: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

26

OOP

Abstraction

InheritancePolymorphism

Key Object-Oriented Concepts Supported by Java• Learning other object-oriented languages

is much easier once you know Java

Page 27: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

27

• If you already know Java well you’ll be bored by some parts of this material!Key Object-Oriented Concepts Supported by Java

Page 28: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

28Please ask any questions about this material since other lessons depend on it..

• If you already know Java well you’ll be bored by some parts of this material!• We will therefore move through this material fairly quickly

Key Object-Oriented Concepts Supported by Java

Page 29: Overview of Java Object-Oriented Programming Language …schmidt/cs891f/2017-PDFs/L1-pt1-overview-of-OO-Java.pdf• Object-oriented Java programs also perform actions & contain logic

29

End of Overview of Java Object-Oriented Programming

Language Concepts