java:objects

This is an old revision of the document!


A PCRE internal error occured. This might be caused by a faulty plugin

====== Δημιουργώντας Αντικείμενα ====== Μέχρι τώρα αναφέραμε στην [[ oop:introduction | "Εισαγωγή στον Αντικειμενοστραφή Προγραμματισμό" ]] ότι η κλάση είναι το βασικό σχέδιο μέσα από το οποίο δημιουργούνται επιμέρους αντικείμενα που φέρουν τα χαρακτηριστικά της κλάσης. Επίσης, δείξαμε πως ορίζουμε μία κλάση μέσα από παραδείγματα, αλλά δεν δείξαμε πως δημιουργούμε αντικείμενα από τις κλάσεις που ορίσαμε. Παρακάτω δίνεται ένα πρόγραμμα που δημιουργεί συγκεκριμένα αντικείμενα του τύπου **Point** και **Rectangle** και εκτυπώνει τα αποτελέσματα στην κονσόλα. <code java Point.java> public class Point { private int x; private int y; public Point(int xPos, int yPos) { x = xPos; y = yPos; } public int getX() { return x; } public void setX(int xPos) { x = xPos; } public int getY() { return y; } public void setY(int yPos) { y = yPos; } } </code> <code java Rectangle.java> public class Rectangle { // the Rectangle class has 3 fields private int width; private int height; private Point origin; // the Rectangle class has one constructor public Rectangle(int setWidth, int setHeight, Point o) { width = setWidth; height = setHeight; origin = o; } public Rectangle(int setWidth, int setHeight) { width = setWidth; height = setHeight; } // the Rectangel class has 3 methods public void setWidth(int newWidth ) { width = newWidth; } public int getWidth() { return width; } public void setHeight(int newHeight ) { height = newHeight; } public int getHeight() { return height; } public void setOrigin(Point o) { origin = o; } public Point getOrigin() { return origin; } public int getArea() { return width * height; } // Move rectangle origin by x,y public void move(int dx, int dy) { origin.setX( origin.getX() + dx ); origin.setY( origin.getY() + dy ); } } </code> <code java CreateObjectDemo.java> public class CreateObjectDemo { public static void main(String[] args) { // Declare and create a point object and two rectangle objects. Point originOne = new Point(23, 94); Rectangle rectOne = new Rectangle(100, 200, originOne); Rectangle rectTwo = new Rectangle(50, 100); // display rectOne's width, height, and area System.out.println("Width of rectOne: " + rectOne.getWidth() ); System.out.println("Height of rectOne: " + rectOne.getHeight() ); System.out.println("Area of rectOne: " + rectOne.getArea()); // set rectTwo's position rectTwo.setOrigin(originOne); // display rectTwo's position System.out.println("X Position of rectTwo: " + rectTwo.getOrigin().getX()); System.out.println("Y Position of rectTwo: " + rectTwo.getOrigin().getY()); // move rectTwo and display its new position rectTwo.move(40, -20); System.out.println("X Position of rectTwo: " + rectTwo.getOrigin().getX()); System.out.println("Y Position of rectTwo: " + rectTwo.getOrigin().getY()); } } </code> Για να μεταγλωτίσουμε τα παραπάνω πρόγραμμα αρκεί να γράψουμε <code> javac Point.java javac Rectange.java javac CreateObjectDemo.java </code> και για να το τρέξουμε γράφουμε <code> java CreateObjectDemo </code> Το παραπάνω πρόγραμμα τυπώνει τα εξής στην κονσόλα. <code> Width of rectOne: 100 Height of rectOne: 200 Area of rectOne: 20000 X Position of rectTwo: 23 Y Position of rectTwo: 94 X Position of rectTwo: 63 Y Position of rectTwo: 74 </code> Από τα πάραπάνω αξίζει να προσέξουμε τα εξής. - Εκτελούμε την κλάση η οποία περιέχει την μέθοδο **main** η οποία εκκινεί την εκτέλεση του προγράμματος <code>public static void main(String[] args) { .... } </code> - Η κλάση Rectangle έχει δύο κατασκευαστές οι οποίοι καλούνται εναλλάξ στη συνάρτηση **main** προκειμένου να αρχικοποιήσουν τα αντικείμενα (**objects**) ''rectOne'' και ''rectTwo''. - H συνάρτηση ''System.out.println()'' εκτυπώνει ένα αλφαριθμητικό (string) ακολουθούμενο από χαρακτήρα αλλαγής γραμμής. |Προηγούμενο: [[:java:class_methods | Μέθοδοι της Κλάσης ]] | Επόμενο: [[:java:this_operator | O τελεστής this ]]|

java/objects.1453477710.txt.gz · Last modified: 2016/02/26 11:15 (external edit)