Lecture%206%20Methods%20and%20Classes - PowerPoint PPT Presentation

About This Presentation
Title:

Lecture%206%20Methods%20and%20Classes

Description:

So far we have a rocket that flies around in a field of asteroids ... Like asteroids and rockets, the missile class should know how to draw itself ... – PowerPoint PPT presentation

Number of Views:15
Avg rating:3.0/5.0
Slides: 25
Provided by: sfu5
Category:

less

Transcript and Presenter's Notes

Title: Lecture%206%20Methods%20and%20Classes


1
IAT 800
  • Lecture 6 Methods and Classes

2
Today
  • A few good programming practices
  • Methods
  • Classes
  • Rockets, asteroids
  • Subclasses
  • Methods that return values
  • BImage

3
Good Practices
  • Comments are your friend!
  • Put a block of commenting at the top of each
    program that explains what it does
  • Comment in code what a section will do
  • Comment when you appropriate code!!
  • Auto-format is also your friend!!
  • Your programs will have at least three sections
  • Variable declaration
  • setup()
  • draw()

4
Methods
  • Methods, also known as
  • Functions (methods which return something)
  • Procedures (methods which dont return stuff)
  • Method declaration
  • Method call

void vendingMachine( int coinCents )
println("You inserted "coinCents" cents.")
int quarter 25vendingMachine(quarter)
5
Methods
  • Method declaration
  • The method declaration is like a blueprint
  • Doesn't matter if declaration is before or after
    call!
  • Parameter name (e.g. coinCents) is just the name
    given to data passed into the method

parameter
void vendingMachine( int coinCents )
println("You inserted "coinCents" cents.")
6
Methods
  • Method call
  • vendingMachine(quarter) vendingMachine(25)
  • Method call must occur in either setup(), draw(),
    or another method
  • You can call it as many times as you like!
  • vendingMachine()s for everyone!!

argument
int quarter 25vendingMachine(quarter)
7
Classes
  • Types
  • Primitives int, float, char, boolean
  • Objects array, string, class

8
Objects
  • Weve worked with some objects before, like
    Arrays.
  • We can make our own objects, to keep related data
    together, with methods to control that data.

9
Classes
  • Classes are the blueprints for our new objects.
  • To declare a new Class (a new type of object)

class MyToy // fields (class variables)
// methods (class functions)
10
Fields and Methods
class MySquare int xPos, yPos
MySquare(x, y) xPos x yPos y
void drawMe() rect(xPos, yPos, 50, 50)
fields
x
y
constructor
drawMe()
(one kind of method)
methods
11
Fields and Methods
class MySquare int xPos, yPos
MySquare(x, y) xPos x yPos y
void drawMe() rect(xPos, yPos, 50, 50)
10
10
20
90
drawMe()
drawMe()
square1
square2
MySquare square1 new MySquare(10, 10) MySquare
square2 new MySquare(20, 90)
12
Fields and Methods
class MySquare int xPos, yPos
MySquare(int x, int y) xPos x yPos y
void drawMe() rect(xPos, yPos, 50, 50)

MySquare square1 new MySquare(10, 10) MySquare
square2 new MySquare(20, 90)
square1.drawMe() square2.drawMe()
13
Arrays of Objects?
  • Lets make a bunch of squares!

MySquare squares new MySquare 10 //
initialize all of our squares. for (int i 0 i
lt 10 i ) squaresi new MySquare(i10,
i10) squares4.drawMe() // draw the 4th
square.
14
Asteroids
  • Lets adapt this to make an array of Asteroids
    for our rocket from lecture 4

class Asteroid //fields float rotation
0 float xPos, yPos float velocityX,
velocityY long lastDrawMillis 0
15
Asteroids
  • When we create an asteroid, lets have it start
    in a random position, and move in a random
    direction.

class Asteroid // constructor
Asteroid() xPos random(0, 400) yPos
random(0, 400) rotation random(0,
TWO_PI) velocityX sin(rotation)10 velocityY
-cos(rotation)10
16
Asteroids
class Asteroid // draw method void
drawMe()
17
Revisit our example
  • So far we have a rocket that flies around in a
    field of asteroids
  • What if we want our rocket to be able to fire
  • But we dont want to get rid of our non-firing
    rocket
  • Create a subclass!

18
Inheritance
  • Subclasses inherit fields and methods from parent
  • class ArmedRocket extends Rocket

19
Our subclass needs a constructor
  • Our empty ArmedRocket example creates an error
  • Processing doesnt know how to construct an
    ArmedRocket
  • We want the ArmedRocket constructor to do the
    same work as the Rocket constructor
  • ArmedRocket(int initialX, int initialY, float
    initialRot)
  • super(initialX, initialY, initialRot)
  • The keyword super means to refer to the parent
    class.
  • In this case, to call the Parent Class Constructor

20
Now we have ArmedRocket
  • We can use an ArmedRocket now in our example
  • But, its basically just a copy of Rocket
  • The only reason to define an ArmedRocket is to
    add new capabilities or to override old ones

21
Add a fire() method
  • We want our fire method to draw a missile that
    shoots out of the rocket
  • We could have the fire method draw the missile
  • Is there a problem with this?

22
Missiles should also be objects
  • The object oriented solution is to make the
    missile an object as well
  • All the different types of things in our domain
    should have a corresponding class
  • Like asteroids and rockets, the missile class
    should know how to draw itself
  • A Missile is similar to a rocket (position,
    rotation, draw method, etc.)
  • Now our ArmedRocket.fire() method can just create
    and return a missile

23
The fire() method
  • Missile fire()
  • Missile m new Missile(xPos, yPos,
    rotation)
  • return m
  • Now add code in loop to draw missiles

24
Using the keyPressed() method
  • keyPressed() is a built in Processing method that
    is called when a key is pressed
Write a Comment
User Comments (0)
About PowerShow.com