1 / 32

Objects

Objects. Pepper many references from http://journals.ecs.soton.ac.uk/java/tutorial/java/objects/object.html. Objects. Look around you and see objects – desk, people, blackboard, pen, eraser State – hair color, eye color, name, arm length, mouth expression Behavior – move arm; speak; see.

brinda
Download Presentation

Objects

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Objects • Look around you and see objects – desk, people, blackboard, pen, eraser • State – hair color, eye color, name, arm length, mouth expression • Behavior – move arm; speak; see

  3. variables and methods

  4. Bicycle object

  5. Objects you use • Scanner • Random nextDouble ABC System.in next nextInt

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

  7. People class People Class mary moveArm moveArm brown green 11 blink say hair color eye color arm length blink say carrie moveArm blond blue 5 blink say

  8. Creating a blueprint • Add instance variables •  inside class and outside methods public class Student{ private String hairColor;private String eyeColor;private int armLength; /**}

  9. Creating a blueprint • remove static from methods public void printPerson (){ System.out.println ("The eye color is "+ eyeColor + " and the hair color is " + hairColor); }

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

  11. Look at the class again - this public void setEyeColor(String colorin) { this.eyeColor = colorin; } mary moveArm carrie brown green 11 moveArm blink say blond blue 5 blink say

  12. 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 getx x y setxy gety getDistance

  13. Step 1: Class with Variables Create a class called point Create 2 class instance variables int x int y public class Point { int x; int y; } (Note, you can create int x = 1; if you want 1 to be the default value when the Point is created.

  14. 2: Create a method to set x, y Method name: setxy Input: int for x, int for y Output: none Requires class instance: Yes public void setxy (int xIn, int yIn) { this.x = xIn; this.y = yIn;}

  15. 3: Create a method to get the x Method name: getx Input: none Output: int (the x value of the point) Requires class instance: Yes public int getx() { return this.x;} public int gety() { return this.y;}

  16. 4: Create a method to get Distance Method name: getDistance Input: another point Output: double representing distance Requires class instance: Yes Process:

  17. 4: Create a method to get Distance public double getDistance(Point another) { int x1 = another.getx(); int y1 = another.gety(); return Math.sqrt((this.x-x1) * (this.x-x1) + (this.y-y1) * (this.y-y1)); }

  18. 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())); }}

  19. Use your point class • create 2 points • print the distance between them

  20. PointUse public 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)); }}

  21. Player class Player Class mary moveMan moveMan setName location name score getLoc setName 30 mary 100 getLoc reportWin setLoc carrie reportWin setLoc moveMan setName 40 carrie 30 getLoc reportWin setLoc

  22. exercise – make a player • Make a player that knows its own • location - int • name - String • score - int Player Class moveMan setName location name score getLoc reportWin setLoc

  23. 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 Player Class moveMan setName location name score getLoc reportWin setLoc

  24. Player class public 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;} }

  25. Exercise continued - Make a game class • Main method • Create 2 players • Tell players their names • Tell players to start on 0 • Tell players to move some amounts • Ask each player if it won

  26. Game class public 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(); }}

  27. 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

  28. 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

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

  30. Use the Point Constructor Point myPoint = new Point(1,3); Point yourPoint = new Point(4,5); yourPoint myPoint getx getx 4 5 setxy gety 1 3 setxy gety getDistance getDistance

  31. 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. • The first line of a constructor must either be a call on another constructor in the same class (using this), or a call on the superclass constructor (using super). If the first line is neither of these, the compiler automatically inserts a call to the parameterless super class constructor. • These differences in syntax between a constructor and method are sometimes hard to see when looking at the source. It would have been better to have had a keyword to clearly mark constructors as some languages do. http://www.leepoint.net/notes-java/oop/constructors/constructor.html

  32. coming soon • Class variables - shared variables among instances • Class constants - variables that do not change for the class http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html

More Related