review creating objects pepper many references from rial/java/objects/object.html

22
Review Creating Objects Pepper many references from http://journals.ecs.soton.ac. uk/java/tutorial/java/objects /object.html

Upload: shawn-rice

Post on 06-Jan-2018

230 views

Category:

Documents


0 download

DESCRIPTION

Class blueprint  Instance Scanner x = new Scanner(System.in) int y = x.nextInt; nextInt nextDouble next Scanner Class System.in 1223 nextInt nextDouble next x Input &Type

TRANSCRIPT

Page 1: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Review Creating Objects

Peppermany references from

http://journals.ecs.soton.ac.uk/java/tutorial/java/objects/object.html

Page 2: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Objects you use

• Scanner • Random

ABC System.in

nextInt

nextDouble

next

Page 3: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Class blueprint Instance

• Scanner x = new Scanner(System.in)• int y = x.nextInt;

nextInt

nextDouble

next

Scanner Class

System.in 1223

nextInt

nextDouble

next

x

Input &Type

Page 4: Review Creating Objects Pepper many references from  rial/java/objects/object.html

People class

say

moveArm

blink

People Class

mary

hair coloreye colorarm length

say

moveArm

blinkbrowngreen11

carrie

say

moveArm

blinkblondblue5

Page 5: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Creating a blueprint

• Add instance variables inside class and outside methods

public class Student{

private String hairColor;private String eyeColor;private int armLength;

/**}

Page 6: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Creating a blueprint

• remove static from methodspublic void printPerson ()

{

System.out.println ("The eye color is "+ eyeColor + " and the hair color is " + hairColor);

}

Page 7: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Use the blueprint

Student mary = new Student();Student carrie = new Student();mary.setEyeColor("green");mary.setHairColor("brown");carrie.setEyeColor("blue");carrie.setHairColor("blonde");

Page 8: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Look at the class again - thispublic void setEyeColor(String colorin) { this.eyeColor = colorin; }

mary

say

moveArm

blinkbrowngreen11

carrie

say

moveArm

blinkblondblue5

Page 9: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Exercise – make a point class

• setxy – take in 2 int to set x and y

• getx – return x• gety – return y• getDistance – take in

1 point and return distance to it

Point

gety

getx

setxyxy

getDistance 2122

12 yyxx

Page 10: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Make a point public class Point{ int x; int y; public void setxy (int xIn, int yIn) { this.x = xIn; this.y = yIn;} public int getx() { return this.x;} public int gety() { return this.y;} public double getDistance(Point another) { return Math.sqrt((this.x-another.getx()) * (this.x-another.getx()) + (this.y-another.gety()) * (this.y-another.gety())); }}

Page 11: Review Creating Objects Pepper many references from  rial/java/objects/object.html

PointUsepublic class PointUse{ public static void main() { Point one = new Point(); Point two = new Point(); one.setxy(1,2); two.setxy(4,6); System.out.println(one.getDistance(two)); }}

Page 12: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Player class

setName

moveMan

getLoc

Player Class

locationnamescore

setLoc reportWin

setName

moveMan

getLoc

mary

30mary100

setLoc reportWin

setName

moveMan

getLoc

carrie

40carrie30

setLoc reportWin

Page 13: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Teach that player how to do things

• setName – take a string to change name• setLoc – take an int to change location• getLoc – return its loc• reportWin – print win if > 30• moveMan – take in int - amount to move; int - current loc ; return new loc

setName

moveMan

getLoc

Player Class

locationnamescore

setLoc reportWin

Page 14: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Player classpublic class Player{

int location; String name; int score;

public void setName(String namein){ this.name = namein;}public void setLoc(int locin){ this.location = locin;}public int setLoc(){ return this.location; }public boolean reportWin(){if (this.location > 30) { System.out.println(name + " won."); return true;} else {return false;}} public int moveMan(int move){ this.location = this.location+move; return this.location;}}

Page 15: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Game classpublic class Game1{ public static void main() { Player player1 = new Player(); Player player2 = new Player(); player1.setLoc(0); player2.setLoc(0); player1.setName("mary"); player2.setName("carrie"); player1.moveMan(15); player2.moveMan(13); player1.moveMan(12); player2.moveMan(20); player1.reportWin(); player2.reportWin(); }}

Page 16: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Summary So Far• Classes as Blueprints vs Instances

– Variable of a class type – hold instance– Create instances with new Class ()

• Behavior – methods– placement: same as other methods, not static– access: instance.method

• State – instance variables – placement: in class; outside method; – access: this.– scope: throughout class

Page 17: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Constructors

• Creates a new instance (a new object)• Can take in parameters so the new object

has information set inside it right away• Special method

– No return– Same name as the class

• Call it with "new" keyword

Page 18: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Point class constructorpublic class Point { int x; int y; //============ Constructor public Point(int x, int y) { this.x = x; this.y = y; }

Page 19: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Use the Point Constructor

Point myPoint = new Point(1,3);Point yourPoint = new Point(4,5);

myPoint

gety

getx

setxy13

getDistance

yourPoint

gety

getx

setxy45

getDistance

Page 20: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Constructors vs Methods• Differences between methods and constructors.

– There is no return type given in a constructor signature (header). The value is this object itself so there is no need to indicate a return value.

– There is no return statement in the body of the constructor. http://www.leepoint.net/notes-java/oop/constructors/constructor.html

Page 21: Review Creating Objects Pepper many references from  rial/java/objects/object.html

What is wrong with this code

public class usePoint {public static void main(){Point myPoint1;Point myPoint2;System.out.println(myPoint1.getX());System.out.println(myPoint1.getDistance(myPoint2));}}

Page 22: Review Creating Objects Pepper many references from  rial/java/objects/object.html

Summary So Far2• Classes as Blueprints vs Instances

– Variable of a class type – hold instance– Create instances with new Class () – default– Create instances with new Class (cons parms)

• Behavior – methods– placement: same as other methods, not static– access: instance.method– Special method: constructor

• State – instance variables – placement: in class; outside method; – access: this.– scope: throughout class