Title: Computation as an Expressive Medium
1Computation as an Expressive Medium
- Lab 3 (Methods and) Classes
- Jason Alderman
2ARE YOU READY TO RUMMMMMMBBLLLLLLE?!
- A few good programming practices
- Methods Oi, whats the deal, eh?
- Classes Heres where it gets really fun
3Drive friendly. Code friendly.
- 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()
Also known asgank, borrow, reuse, yoinks,
etc. Give due credit!
4Methods. Reloaded.
- 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)
5Methods. Reloaded.
- 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.")
6Methods. Reloaded.
- 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!! Hooray!
argument
int quarter 25vendingMachine(quarter)
7Avast, Cap'n! Java Ahoy!
- Classes Theyre not just for breakfast, anymore.
- Remember that slide a couple labs ago?
- Types
- Primitives int, float, char, boolean
- Objects array, string, class
This bit of information is courtesy your memory
of things learned. Don't leave home without it.
8Objects
- Weve worked with some objects before, like
Arrays. - We can make our own objects, to keep related data
together, and methods to control that data.
9Classes
Hey! You reused that metaphor!
- 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)
10Fields 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
11Fields 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)
12Fields 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()
13Arrays of Objects?
- Sure! Lets make a bunch of squares!
MySquare squares new MySquare10 //
initialize all of our squares. for (int i 0 i
i10) squares4.drawMe() // draw the 4th
square.
14Asteroids
- Lets adapt this to make an array of Asteroids
for our rocket from lecture.
class Asteroid //fields float rotation
0 float xPos, yPos float velocityX,
velocityY long lastDrawMillis 0
except you didn't finish going over the
Asteroids code in class, did you? Just follow
along and we'll go over the code in a second (not
on slides).
15Asteroids
- 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
16Asteroids
Class Asteroid // draw method void
drawMe()
17OOP, we'll do it again.
The more the merrier! MUHAHAHA!
- Programming practices
- Methods, redux
- Classes, hoo-boy!
clone-o-matic