Lecture 6 Methods, Classes, Inheritance

Slides:



Advertisements
Similar presentations
1 Inheritance Classes and Subclasses Or Extending a Class.
Advertisements

C Functions. What are they? In general, functions are blocks of code that perform a number of pre-defined commands to accomplish something productive.
Abstract Classes We often define classes as subclasses of other classes – First, define the superclass – In some cases, a superclass may not have enough.
Exception Handling The purpose of exception handling is to permit the program to catch and handle errors rather than letting the error occur and suffer.
IAT 334 Lab 2 Computer Graphics: Rocket, PImage. June 4, 2010IAT 3342 Outline  Programming concepts –Programming Computer Graphics –Transformations –Methods.
Week 8 Recap CSE 115 Spring Composite Revisited Once we create a composite object, it can itself refer to composites. Once we create a composite.
CS 106 Introduction to Computer Science I 11 / 26 / 2007 Instructor: Michael Eckmann.
Starting Classes and Methods. Objects have behaviors In old style programming, you had: –data, which was completely passive –functions, which could manipulate.
Sep 26, Fall 2006IAT 800 Lecture 6 Methods and Classes.
CS 106 Introduction to Computer Science I 04 / 16 / 2010 Instructor: Michael Eckmann.
______________________________________________________________________________________ SCHOOL OF INTERACTIVE ARTS + TECHNOLOGY [SIAT] |
IAT 800 Lecture 4. Sept 18, Fall 2006IAT 8002 Outline  Programming concepts –Methods –Classes  Talk about project 1  Reading: Read Chapters 1-4 of.
25-Jun-15 Starting Classes and Methods. Objects have behaviors In old style programming, you had: data, which was completely passive functions, which.
IAT 800 Lecture Oct, Fall 2006IAT 8002 Outline  Programming concepts –Super and this –Java SDK classes Lists Reading the Java docs –Programming.
Copyright 2010 by Pearson Education Building Java Programs Chapter 8 Lecture 8-2: Object Behavior (Methods) and Constructors reading:
IAT 355 Lecture 4 Computer Graphics: Rocket. May 9, 2014IAT 3552 Outline  Programming concepts –Programming Computer Graphics –Transformations –Methods.
Principles of Computer Programming (using Java) Review Haidong Xue Summer 2011, at GSU.
Multiple Choice Solutions True/False a c b e d   T F.
By Nicholas Policelli An Introduction to Java. Basic Program Structure public class ClassName { public static void main(String[] args) { program statements.
Object Oriented Programming Lecture 5: BallWorld.
Computation as an Expressive Medium Lab 3: (Methods and) Classes Jason Alderman.
BIT 115: Introduction To Programming LECTURE 3 Instructor: Craig Duckett
Programming with Java © 2002 The McGraw-Hill Companies, Inc. All rights reserved. 1 McGraw-Hill/Irwin Chapter 5 Creating Classes.
Java Class Structure. Class Structure package declaration import statements class declaration class (static) variable declarations* instance variable.
Comp1004: Inheritance I Super and Sub-classes. Coming up Inheritance and Code Duplication – Super and sub-classes – Inheritance hierarchies Inheritance.
Computer Science I Classes and objects Classwork/Homework: Examine and modify my examples. Make your own.
LCC 6310 Computation as an Expressive Medium Lecture 6.
Methods Awesomeness!!!. Methods Methods give a name to a section of code Methods give a name to a section of code Methods have a number of important uses.
Quick Review of OOP Constructs Classes:  Data types for structured data and behavior  fields and methods Objects:  Variables whose data type is a class.
Written by: Dr. JJ Shepherd
Overview of C++ Polymorphism
______________________________________________________________________________________ SCHOOL OF INTERACTIVE ARTS + TECHNOLOGY [SIAT] |
This In Java, the keyword this allows an object to refer to itself. Or, in other words, this refers to the current object – the object whose method or.
Chapter 9: Continuing Classes By Matt Hirsch. Table Of Contents 1.Static Fields and Methods 2.Inheritance I. Recycle Code with Inheritance II. Overriding.
CS100Lecture 61 Announcements Homework P1 due on Thursday Homework P2 handed out.
IAT 265 Lecture 7 Objects and ArrayList. May 19, 2016IAT 2652 Outline  Programming concepts –Super and this –Java SDK classes Lists Reading the Java.
Constructors and Destructors
Modern Programming Tools And Techniques-I
Topic: Classes and Objects
Computer Graphics: Rocket, Java: Class
Agenda Warmup AP Exam Review: Litvin A2
Lecture 15: More Inheritance
Chapter 8 Objects.
LCC 6310 Computation as an Expressive Medium
Computation as an Expressive Medium
LCC 6310 Computation as an Expressive Medium
Lecture 9-2: Interacting with the Superclass (super);
Engineering Innovation Center
Trainings 11/4 Intro to Java.
CSC 253 Lecture 8.
Object Oriented Programming (OOP) LAB # 8
CSC 253 Lecture 8.
Week 6 Object-Oriented Programming (2): Polymorphism
Variables and Their scope
Building Java Programs
Announcements Mid-Term Exam!! Quiz 5 Again + Quiz 6 Exercise 5
Constructors and Destructors
Chapter 8 Objects.
Chapter 10: Method Overriding and method Overloading
Building Java Programs
Lecture 15: Inheritance II
Overview of C++ Polymorphism
Inheritance and Polymorphism
Java Programming Language
Comp1202: Inheritance I Super and Sub-classes.
An Example of Inheritance
Lecture 6 Methods and Classes
Method Overriding and method Overloading
C++ Programming CLASS This pointer Static Class Friend Class
Classes and Methods 15-Aug-19.
Presentation transcript:

Lecture 6 Methods, Classes, Inheritance IAT 265 Lecture 6 Methods, Classes, Inheritance May 17, 2016 IAT 265

This Lecture Subclasses A few good programming practices Methods Rockets, asteroids Methods that return values Subclasses May 17, 2016 IAT 265

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() May 17, 2016 IAT 265

Methods Methods, also known as Method declaration Method call Functions (methods which return something) Procedures (methods which don’t return stuff) Method declaration Method call void vendingMachine( int coinCents ){ println("You inserted "+coinCents+" cents."); } int quarter = 25; vendingMachine(quarter); May 17, 2016 IAT 265

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."); } void means doesn't return anything May 17, 2016 IAT 265

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 = 25; vendingMachine(quarter); May 17, 2016 IAT 265

Classes Types Primitives: int, float, char, boolean … Objects: array, string, class … May 17, 2016 IAT 265

Objects We’ve worked with some objects before, like Arrays. We can make our own objects, to keep related data together, with methods to control that data. May 17, 2016 IAT 265

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) } May 17, 2016 IAT 265

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 May 17, 2016 IAT 265

Fields and Methods x y drawMe() 10 10 20 90 drawMe() drawMe() square1 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); May 17, 2016 IAT 265

Fields and Methods square1.drawMe(); square2.drawMe(); x y drawMe() 10 20 90 square1 square2 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(); May 17, 2016 IAT 265

Arrays of Objects? Let’s make a bunch of squares! MySquare[] squares = new MySquare [10] ; // initialize all of our squares. for (int i = 0; i < 10; i ++) { squares[i] = new MySquare(i*10, i*10); } squares[4].drawMe(); // draw the 4th square. May 17, 2016 IAT 265

Asteroids Let’s 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; … } May 17, 2016 IAT 265

Asteroids When we create an asteroid, let’s 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; } May 17, 2016 IAT 265

Asteroids class Asteroid { … // draw method void drawMe() { May 17, 2016 IAT 265

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 don’t want to get rid of our non-firing rocket Create a subclass! May 17, 2016 IAT 265

Inheritance Subclasses inherit fields and methods from parent class ArmedRocket extends Rocket { … } May 17, 2016 IAT 265

Our subclass needs a constructor Our empty ArmedRocket example creates an error Processing doesn’t 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 May 17, 2016 IAT 265

Now we have ArmedRocket We can use an ArmedRocket now in our example But, it’s basically just a copy of Rocket The only reason to define an ArmedRocket is to add new capabilities or to override old ones May 17, 2016 IAT 265

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? May 17, 2016 IAT 265

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 May 17, 2016 IAT 265

The fire() method Now add code in loop to draw missiles Missile fire() { Missile m = new Missile(xPos, yPos, rotation); return m; } Now add code in loop to draw missiles May 17, 2016 IAT 265

Using the keyPressed() method keyPressed() is a built in Processing method that is called when a key is pressed May 17, 2016 IAT 265