{"id":10532,"date":"2015-08-29T09:51:16","date_gmt":"2015-08-29T13:51:16","guid":{"rendered":"http:\/\/bangla.salearningschool.com\/?p=10532"},"modified":"2015-08-24T10:36:02","modified_gmt":"2015-08-24T14:36:02","slug":"a-ship-class-illustrating-object-oriented-programming-concepts","status":"publish","type":"post","link":"http:\/\/bangla.sitestree.com\/?p=10532","title":{"rendered":"A Ship class illustrating object-oriented programming concepts"},"content":{"rendered":"<pre>************************\r\nShip.java A Ship class illustrating object-oriented programming concepts. Incorporates Javadoc comments. See ShipTest.java for a test. \r\n************************\r\n\/** Ship example to demonstrate OOP in Java.\r\n\u00a0*\r\n\u00a0*\u00a0 @author \r\n\u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Larry Brown\r\n\u00a0*\u00a0 @version 2.0\r\n\u00a0*\/\r\n\r\npublic class Ship {\r\n\u00a0 \/\/ Instance variables\r\n\r\n\u00a0 private double x=0.0, y=0.0, speed=1.0, direction=0.0;\r\n\u00a0 private String name;\r\n\r\n\u00a0 \/\/ Constructors\r\n\r\n\u00a0 \/** Build a ship with specified parameters. *\/\r\n\r\n\u00a0 public Ship(double x, double y, double speed,\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 double direction, String name) {\r\n\u00a0\u00a0\u00a0 setX(x);\r\n\u00a0\u00a0\u00a0 setY(y);\r\n\u00a0\u00a0\u00a0 setSpeed(speed);\r\n\u00a0\u00a0\u00a0 setDirection(direction);\r\n\u00a0\u00a0\u00a0 setName(name);\r\n\u00a0 }\r\n\r\n\u00a0 \/** Build a ship with default values\r\n\u00a0\u00a0 *\u00a0 (x=0, y=0, speed=1.0, direction=0.0).\r\n\u00a0\u00a0 *\/\r\n\r\n\u00a0 public Ship(String name) {\r\n\u00a0\u00a0\u00a0 setName(name);\r\n\u00a0 }\r\n\r\n\u00a0 \/** Move ship one step at current speed\/direction. *\/\r\n\r\n\u00a0 public void move() {\r\n\u00a0\u00a0\u00a0 moveInternal(1);\r\n\u00a0 }\r\n\r\n\u00a0 \/** Move N steps. *\/\r\n\r\n\u00a0 public void move(int steps) {\r\n\u00a0\u00a0\u00a0 moveInternal(steps);\r\n\u00a0 }\r\n\r\n\u00a0 private void moveInternal(int steps) {\r\n\u00a0\u00a0\u00a0 double angle = degreesToRadians(direction);\r\n\u00a0\u00a0\u00a0 x = x + (double)steps * speed * Math.cos(angle);\r\n\u00a0\u00a0\u00a0 y = y + (double)steps * speed * Math.sin(angle);\r\n\u00a0 }\r\n\r\n\u00a0 private double degreesToRadians(double degrees) {\r\n\u00a0\u00a0\u00a0 return(degrees * Math.PI \/ 180.0);\r\n\u00a0 }\r\n\r\n\u00a0 \/** Report location to standard output. *\/\r\n\r\n\u00a0 public void printLocation() {\r\n\u00a0\u00a0\u00a0 System.out.println(getName() + \" is at (\" + getX() +\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \",\" + getY() + \").\");\r\n\u00a0 }\r\n\r\n\u00a0 \/** Get current X location. *\/\r\n\r\n\u00a0 public double getX() {\r\n\u00a0\u00a0\u00a0 return(x);\r\n\u00a0 }\r\n\r\n\u00a0 \/** Set current X location. *\/\r\n\r\n\u00a0 public void setX(double x) {\r\n\u00a0\u00a0\u00a0 this.x = x;\r\n\u00a0 }\r\n\r\n\u00a0 \/** Get current Y location. *\/\r\n\r\n\u00a0 public double getY() {\r\n\u00a0\u00a0\u00a0 return(y);\r\n\u00a0 }\r\n\r\n\u00a0 \/** Set current Y location. *\/\r\n\r\n\u00a0 public void setY(double y) {\r\n\u00a0\u00a0\u00a0 this.y = y;\r\n\u00a0 }\r\n\r\n\u00a0 \/** Get current speed. *\/\r\n\r\n\u00a0 public double getSpeed() {\r\n\u00a0\u00a0\u00a0 return(speed);\r\n\u00a0 }\r\n\r\n\u00a0 \/** Set current speed. *\/\r\n\r\n\u00a0 public void setSpeed(double speed) {\r\n\u00a0\u00a0\u00a0 this.speed = speed;\r\n\u00a0 }\r\n\r\n\u00a0 \/** Get current heading (0=East, 90=North, 180=West,\r\n\u00a0\u00a0 *\u00a0 270=South).\u00a0 I.e., uses standard math angles, not\r\n\u00a0\u00a0 *\u00a0 nautical system where 0=North, 90=East, etc.\r\n\u00a0\u00a0 *\/\r\n\r\n\u00a0 public double getDirection() {\r\n\u00a0\u00a0\u00a0 return(direction);\r\n\u00a0 }\r\n\r\n\u00a0 \/** Set current direction (0=East, 90=North, 180=West,\r\n\u00a0\u00a0 *\u00a0 270=South). I.e., uses standard math angles,not\r\n\u00a0\u00a0 *\u00a0 nautical system where 0=North,90=East, etc.\r\n\u00a0\u00a0 *\/\r\n\r\n\u00a0 public void setDirection(double direction) {\r\n\u00a0\u00a0\u00a0 this.direction = direction;\r\n\u00a0 }\r\n\r\n\u00a0 \/** Get Ship's name. Can't be modified by user. *\/\r\n\r\n\u00a0 public String getName() {\r\n\u00a0\u00a0\u00a0 return(name);\r\n\u00a0 }\r\n\r\n\u00a0 private void setName(String name) {\r\n\u00a0\u00a0\u00a0 this.name = name;\r\n\u00a0 }\r\n}\r\n*********************\r\nShipTest.java \r\n*********************\r\npublic class ShipTest {\r\n\u00a0public static void main(String[] args) {\r\n\u00a0\u00a0\u00a0 Ship s1 = new Ship(\"Ship1\"); \r\n\u00a0\u00a0\u00a0 Ship s2 = new Ship(0.0, 0.0, 2.0, 135.0, \"Ship2\");\r\n\u00a0\u00a0\u00a0 s1.move();\r\n\u00a0\u00a0\u00a0 s2.move(3);\r\n\u00a0\u00a0\u00a0 s1.printLocation();\r\n\u00a0\u00a0\u00a0 s2.printLocation();\r\n\u00a0 }\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>************************ Ship.java A Ship class illustrating object-oriented programming concepts. Incorporates Javadoc comments. See ShipTest.java for a test. ************************ \/** Ship example to demonstrate OOP in Java. \u00a0* \u00a0*\u00a0 @author \u00a0*\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Larry Brown \u00a0*\u00a0 @version 2.0 \u00a0*\/ public class Ship { \u00a0 \/\/ Instance variables \u00a0 private double x=0.0, y=0.0, speed=1.0, direction=0.0; \u00a0 private String name; &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"http:\/\/bangla.sitestree.com\/?p=10532\">Continue reading<\/a><\/p>\n","protected":false},"author":130,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1417,1424],"tags":[706,308,285],"class_list":["post-10532","post","type-post","status-publish","format-standard","hentry","category-code-programming-samples--","category-javaj2eej2me","tag-code","tag-java","tag-285","item-wrap"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":26561,"url":"http:\/\/bangla.sitestree.com\/?p=26561","url_meta":{"origin":10532,"position":0},"title":"A Ship class illustrating object-oriented programming concepts #Programming Code Examples #Java\/J2EE\/J2ME #Object Oriented Programming","author":"Author-Check- Article-or-Video","date":"April 28, 2021","format":false,"excerpt":"************************ Ship.java A Ship class illustrating object-oriented programming concepts. Incorporates Javadoc comments. See ShipTest.java for a test. ************************ \/** Ship example to demonstrate OOP in Java. * * @author * Larry Brown * @version 2.0 *\/ public class Ship { \/\/ Instance variables private double x=0.0, y=0.0, speed=1.0, direction=0.0; private\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26557,"url":"http:\/\/bangla.sitestree.com\/?p=26557","url_meta":{"origin":10532,"position":1},"title":"Accesses instance variables in a Ship object. #Programming Code Examples #Java\/J2EE\/J2ME #Object Oriented Programming","author":"Author-Check- Article-or-Video","date":"April 28, 2021","format":false,"excerpt":"Test1.java Accesses instance variables in a Ship object. ******************************************************** \/\/ Create a class with five instance variables (fields): \/\/ x, y, speed, direction, and name. Note that Ship1 is \/\/ not declared \"public\", so it can be in the same file as \/\/ Test1. A Java file can only contain\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26563,"url":"http:\/\/bangla.sitestree.com\/?p=26563","url_meta":{"origin":10532,"position":2},"title":"Speedboat.java Illustrates inheritance from Ship class #Programming Code Examples #Java\/J2EE\/J2ME #Object Oriented Programming","author":"Author-Check- Article-or-Video","date":"April 28, 2021","format":false,"excerpt":"***************************** Speedboat.java Illustrates inheritance from Ship class. See SpeedboatTest.java for a test. ***************************** \/** A fast Ship. Red and going 20 knots by default. * *********************** public class Speedboat extends Ship { private String color = \"red\"; \/** Builds a red Speedboat going N at 20 knots. *\/ public Speedboat(String\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10303,"url":"http:\/\/bangla.sitestree.com\/?p=10303","url_meta":{"origin":10532,"position":3},"title":"Accesses methods in a Ship2 object","author":"","date":"August 26, 2015","format":false,"excerpt":"********************************************* Test2.java Accesses methods in a Ship2 object ********************************************* \/\/ Give the ship public move and printLocation methods. class Ship2 { \u00a0 public double x=0.0, y=0.0, speed=1.0, direction=0.0; \u00a0 public String name = \"UnnamedShip\"; \u00a0 private double degreesToRadians(double degrees) { \u00a0\u00a0\u00a0 return(degrees * Math.PI \/ 180.0); \u00a0 } \u00a0 public\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10528,"url":"http:\/\/bangla.sitestree.com\/?p=10528","url_meta":{"origin":10532,"position":4},"title":"Accesses instance variables in a Ship object.","author":"","date":"August 29, 2015","format":false,"excerpt":"Test1.java Accesses instance variables in a Ship object. ******************************************************** \/\/ Create a class with five instance variables (fields): \/\/ x, y, speed, direction, and name. Note that Ship1 is \/\/ not declared \"public\", so it can be in the same file as \/\/ Test1. A Java file can only contain\u2026","rel":"","context":"In &quot;Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8&quot;","block_context":{"text":"Code . Programming Samples . \u09aa\u09cd\u09b0\u09cb\u0997\u09cd\u09b0\u09be\u09ae \u0989\u09a6\u09be\u09b9\u09b0\u09a8","link":"http:\/\/bangla.sitestree.com\/?cat=1417"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26559,"url":"http:\/\/bangla.sitestree.com\/?p=26559","url_meta":{"origin":10532,"position":5},"title":"Demonstrates overloading methods in class Ship4 #Programming Code Examples #Java\/J2EE\/J2ME #Object Oriented Programming","author":"Author-Check- Article-or-Video","date":"April 28, 2021","format":false,"excerpt":"********************* class Ship4 { public double x=0.0, y=0.0, speed=1.0, direction=0.0; public String name; \/\/ This constructor takes the parameters explicitly. public Ship4(double x, double y, double speed, double direction, String name) { this.x = x; this.y = y; this.speed = speed; this.direction = direction; this.name = name; } \/\/ This\u2026","rel":"","context":"In &quot;FromSitesTree.com&quot;","block_context":{"text":"FromSitesTree.com","link":"http:\/\/bangla.sitestree.com\/?cat=1917"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10532","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/users\/130"}],"replies":[{"embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10532"}],"version-history":[{"count":1,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10532\/revisions"}],"predecessor-version":[{"id":10533,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=\/wp\/v2\/posts\/10532\/revisions\/10533"}],"wp:attachment":[{"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10532"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10532"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/bangla.sitestree.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10532"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}