introduction to object-oriented programming in...

27
1 © 2011 The MathWorks, Inc. Introduction to Object-Oriented Programming in MATLAB Jamie Winter Sr. Account Manager Abhishek Gupta Application Engineer

Upload: leque

Post on 10-May-2018

268 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

1 © 2011 The MathWorks, Inc.

Introduction to Object-Oriented

Programming in MATLAB

Jamie Winter

Sr. Account Manager

Abhishek Gupta

Application Engineer

Page 2: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

2

Agenda

Object-oriented programming

Basic object-oriented programming

syntax in MATLAB

Classes in MATLAB

Page 3: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

3

What is a program?

x = 12

while (x < 100)

x = x+1

if (x == 23)

disp('Hello') end

end

Code

Data

x = 12

while (x < 100)

x = x+1

if (x == 23)

disp('Hello') end

end

Assignment

Looping Test

Increment

Test to Act

Take Action

End

End

Actions

Page 4: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

4

Progression of Programming Techniques

Algorithm

Data

function

script

command line

value

variable

structure

Level of Abstraction / Sophistication

Page 5: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

5

Example: Sensor Array

Transmitting a signal

from a weather balloon

Locating the signal

with a sensor array

Computing the angle of

arrival (AoA) for the signal

Page 6: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

6

Procedural Programming

Easy to learn

Minimal planning

There is no formal

relationship between

data and functions.

Every detail is exposed.

Page 7: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

7

Data and Actions to Implement

Actions Data

Compute FFT

Plot results

Determine peaks

Synthesize measurements

Location

Spacing

Reading

Wavelength Number

Frequency

Page 8: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

8

Balloon

Location

Signal

Frequency

Wavelength

Sensor

Reading

Spacing

Number

Related Data and Actions

Actions Data

Sensor

Synthesize measurements

Determine peaks

Compute FFT

Plot results

Location

Spacing

Reading

Wavelength Number

Frequency

Compute FFT

Plot results

Determine peaks

Synthesize measurements

Page 9: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

9

Balloon

Location

Signal

Frequency

Wavelength

Grouping Related Data and Actions

Actions Data

Sensor

Synthesize measurements

Determine peaks

Compute FFT

Plot results

Sensor

Synthesize measurements

Determine peaks

Compute FFT

Plot results

Class

Sensor

Reading

Spacing

Number

Sensor

Reading

Spacing

Number

Page 10: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

10

Progression of Programming Techniques

Algorithm

Data

function

script

command line

value

variable

structure

Level of Abstraction / Sophistication class

(properties)

(methods)

Page 11: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

11

Object-Oriented Terminology

Class

– Outline of an idea

– Properties (data)

– Methods (algorithms)

Object

– Specific example of a class

– Instance

An element of

the set – object

Defined set – class

Page 12: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

12

Agenda

Object-oriented programming

Basic object-oriented programming

syntax in MATLAB

Classes in MATLAB

Page 13: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

13

Demonstration: Building a Simple Class

Define a class for

our radar blips

Create the weather

balloon object

Use the object in

place of the structure

Page 14: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

14

Objects

Are easy to create

Manage their own data

Are interchangeable

with a structure

– No other code changes are required.

– Properties behave similar to field names.

– Fields can’t be added arbitrarily.

Page 15: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

15

Sensor

Synthesize measurements

Determine peaks

Compute FFT

Plot results

Demonstration:

Adding Methods to a Class

Start from a sensor class

with existing properties

Add a method to compute

angle of arrival (AoA)

Integrate a sensor object

into the existing code

Page 16: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

16

Objects with Methods

Have immediate access to

their own data (properties)

Allow you to overload

existing functions

Allow you to perform

custom actions at

creation and deletion

Page 17: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

17

Agenda

Object-oriented programming

Basic object-oriented programming

syntax in MATLAB

Classes in MATLAB

Page 18: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

18

Taking Methods and Properties Further

Control access

Create constants

Make values interdependent

Execute methods when properties change

Page 19: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

19

Demonstration: Applying Attributes

Control access

Access = public

Access = protected

Restrict modification

Constant

Dependent

Page 20: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

20

Encapsulation

Sensor

Synthesize

measurements

Determine

Peaks Compute

FFT

Speed of

Light

etc.

Noise Ratio

Sensor

Number of Towers

Tower Spacing

Plot Results

Sensor Reading

Compute AoA

Page 21: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

21

Sensor

etc.

Noise Ratio

Number of Towers

Tower Spacing

Plot Results

Sensor Reading

Compute AoA

Encapsulation

Number of Towers

Tower Spacing

Synthesize

measurements

Compute

FFT

Speed of

Light

Separates the interface

from the implementation

Simplifies object use

Becomes a building block

Determine

Peaks

Page 22: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

22

Using a Class as a Building Block

All Radar Blips

The Balloon

All Moving Radar Blips

The Red Baron

Page 23: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

23

Demonstration:

Creating a Moving Target

Define a new class

for moving blips

Inherit from the existing

class for blips

Add a method

Use the moving blip

Move Blip

Signal

Position

Page 24: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

24

Inheritance

Subclass substitutes

for the superclass

Allows re-envisioning

and re-implementing

the superclass

Builds on proven code

Allows inheriting from the base MATLAB classes

Page 25: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

25

Object-Oriented Programming in MATLAB

Class definition file describes object behavior

Objects can substitute for structures

Apply attributes for a clean interface

Build on existing classes with inheritance

Extends the matrix-based language to objects

Page 26: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

26

Additional Resources

Page 27: Introduction to Object-Oriented Programming in MATLABweb.mit.edu/8.13/matlab/MatlabTraining_IAP_2012/OOP/OOP.pdf · 2 Agenda Object-oriented programming Basic object-oriented programming

27

Questions and Answers