Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Java Classes, Objects, και Events.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Java Classes, Objects, και Events."— Μεταγράφημα παρουσίασης:

1 Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Java Classes, Objects, και Events

2 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-2 Στόχος: l Μια εισαγωγή σε classes, objects, πεδία (fields), constructors, και methods; Να πάρουμε μια γενική ιδέα για το πώς ένα μικρό πρόγραμμα χρησιμοποιεί τα πιο πάνω l Επεξήγηση για το πως οι βιβλιοθήκες κατηγοριών (library classes) χρησιμοποιούνται σε Java programs l Να πάρουμε μια ιδέα για το πώς μέθοδοι καλούν η μια την άλλη. l Να μάθουμε για private και public methods l Μια μικρή εισαγωγή για event-driven applications και the event-handling mechanism στην Java

3 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-3 Objects in the Ramblecs Applet Ramblecs, the applet itself LetterPanel whiteboard FallingCube cube JButton go

4 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-4 Classes και Source Files l ένα class ορίζει μια κατηγορία από objects. Όνομα του Class : Όνομα του File : SomeClass Ramblecs FallingCube SomeClass.java Ramblecs.java FallingCube.java σύμβαση: Το όνομα του class αρχίζει με Κεφαλαίο Γράμμα Τα ΙΔΙΑ κεφαλαία / μικρά γράμματα

5 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-5 Programmers write classes l Κάνουμε εκτεταμένη χρήση από library classes –Είτε άμεσα: JButton go = new JButton("Click here"); –Η μέσω κληρονομικότητας: public class LetterPanel extends JPanel

6 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-6 Classes in the Ramblecs Applet Δικός μας κώδικας Από το library package javax.swing

7 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-7 Files και Folders javac αυτόματα ψάχνει classes (.java or.class files) στον τρέχων κατάλογο, ή, αν ένα classpath έχει οριστεί, ψάχνει σε folders που βρίσκονται στο classpath string. l Όταν ένα file δεν μπορεί να το βρει τότε ένα syntax error γνωστοποιείται από τον compiler. Για να θέσουμε ένα classpath, πρέπει να περιλαμβάνουμε το τρέχον folder. Για παράδειγμα:.; C:\javamethods\EasyIO Η τελεία υποδηλώνει το τρέχον folder

8 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-8 Βιβλιοθήκες l Τα Java programs συχνά δεν γράφονται από το μηδέν. l Υπάρχουν εκατοντάδες από library classes για όλες τις περιπτώσεις. l Οι Library classes οργανώνονται σε packages. Για παράδειγμα: java.util —classes για πολλές ποικίλες χρήσεις java.awt — windowing και graphics toolkit javax.swing — newer GUI package Swing

9 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-9 import l Full library class names ενσωματώνουν το package name. Για παράδειγμα: java.awt.Color javax.swing.JButton import statements στην αρχή του προγράμματος σας σας επιτρέπουν να αναφέρεστε σε library classes με τα short names τους. Για παράδειγμα: import javax.swing. JButton ;... JButton go = new JButton ("Click here"); Fully-qualified name

10 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-10 import (συνέχ.) Μπορείτε να κάνετε import όλων των ονομάτων των classes σε ένα package χρησιμοποιώντας wildcard. * : import java.awt.* ; import java.awt.event.* ; import javax.swing.* ; java.lang ενσωματώνεται (is imported) αυτόματα σε όλες τις classes; Σε αυτή ορίζονται System, Math, Object, String, και άλλες συχνά χρησιμοποιούμενες classes. Imports all classes from awt, awt.event, and swing packages

11 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-11 public class SomeClass { l Πεδία (Fields) l Constructors l Methods } private: visible ΜΟΝΟ μέσα στο class public: visible σε άλλες classes Χαρακτηριστικά (Attributes) / μεταβλητές (variables) που καθορίζουν την κατάσταση του αντικειμένου (object’s state). Μπορεί να περιλαμβάνουν αριθμούς, χαρακτήρες, strings, ή άλλα objects. Συνήθως είναι private. Κώδικας για κατασκευή (constructing) ενός νέου object και αρχικοποίησης των fields του. Συνήθως είναι public. Ενέργειες που ένα object μπορεί να κάνει. Μπορούν να είναι public ή private.

12 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-12 public class FallingCube { private final int cubeSize; private int cubeX, cubeY; // Cube coordinates... private char randomLetter; // Cube letter public FallingCube(int size) { cubeSize = size;... } public void start() { cubeX = 0; cubeY = -cubeSize;... }... } Fields Constructor Methods Το όνομα του/των constructor/s είναι ΠΑΝΤΑ το ίδιο με το όνομα του class

13 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-13 private (or public) [static] [final] datatype name ; Fields συνήθως private Προαιρετικό: αυτό το field μοιράζεται από ΌΛΑ τα objects του class Προαιρετικό : αυτό το field είναι constant int, double, etc., or an object: String, JButton, FallingCube, Timer Ονόμασε το!

14 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-14 Fields (συνέχ.) l Μπορεί να είναι primitive data types: int, char, double, etc. private int cubeX, cubeY; // cube coordinates... private char randomLetter; // cube letter

15 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-15 Fields (συνέχ.) l Μπορεί να είναι objects διαφορετικών τύπων: private FallingCube cube ; private Timer t ; private static final String letters ;

16 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-16 Constructors l Constructors είναι methods για δημιουργία objects μιας class. l Οι περισσότεροι constructors αρχικοποιούν τα fields του object. l Οι Constructors μπορεί να έχουν παραμέτρους (parameters). l Μια class μπορεί να έχει πολλούς constructors οι οποίοι διαφοροποιούνται από το πλήθος ή τον τύπο των παραμέτρων τους. l Όλοι οι constructors μιας class έχουν το ίδιο όνομα με την class.

17 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-17 Constructors (συνέχ.) go = new JButton("Go");

18 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-18 Constructors (συνέχ.) l Καλούμε τους constructors χρησιμοποιώντας τον τελεστή (operator) new : cube = new FallingCube (CUBESIZE);... t = new Timer (delay, this) Καλεί τον constructor της FallingCube με το CUBESIZE σαν παράμετρο Καλεί τον constructor της Timer με τα delay και this (δηλ. αυτό το object) σαν παραμέτρους (δες Java docs για javax.swing.Timer )

19 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-19 Μέθοδοι (Methods) l Τις καλούμε για κάποιο συγκεκριμένο object: cube.start(); whiteboard.dropCube(); randomLetter = letters.charAt(i); l καλούμε static (“class”) methods για ολόκληρο το class, ΌΧΙ για συγκεκριμένο object: y = Math.sqrt (x);

20 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-20 Methods (συνέχ.) l Constructors και methods μπορούν να καλούν άλλες public και private methods της ίδιας class. l Constructors και methods μπορούν να καλούν ΜΟΝΟ public methods από άλλες class. Class X private method Class Y public method

21 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-21 Methods (συνέχ.) l Μπορείς να καλείς methods με specific arguments (ορίσματα): g.drawRect (75, 25, 150, 50); g.drawString ("Welcome", 120, 50); l Το πλήθος, οι τύποι και η σειρά των arguments πρέπει να κάνουν match (ταιριάζουν) με τις παραμέτρους της μεθόδου (method): public void drawRect ( int x, int y, int width, int height ) {...} public void drawString ( String msg, int x, int y ) {...}

22 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-22 Γεγονότα (Events) l Μπορούν να δημιουργηθούν στον πραγματικό κόσμο (mouse clicked, keyboard key pressed, cable gets connected, etc.) l Μπορεί να προέλθουν από operating system (window resized or closed, e-mail message received, etc.) l Μπορεί να δημιουργηθούν από το program σου (a timer fires, a panel needs to be repainted, etc.)

23 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-23 Events (συνέχ.) l ένα object που δημιουργεί events μπορεί να έχει ένα ή περισσότερους listeners επισυναπτόμενους σε αυτό. l ένας listener είναι ένα object. l Μια listener’s method καλείται για κάθε event. ActionListener object (ActionEvent e) { whiteboard.dropCube(); } public void actionPerformed Click!

24 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-24 Events (συνέχ.) public class Ramblecs extends JApplet implements ActionListener {... private JButton go; public void init() { go = new JButton("Go"); go.addActionListener(this);... } public void actionPerformed(AcionEvent e) { whiteboard.dropCube(); } Πρόσθεσε ένα listener στο button. Σε αυτή τη περίπτωση, το listener object είναι το applet.

25 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-25 Ramblecs Events Ramblecs class applet object creates the whiteboard panel and the “Go” button calls whiteboard’s dropCube Applet starts init method actionPerformed method  “Go” clicked

26 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-26 Ramblecs Events (συνέχ.) LetterPanel class whiteboard object starts the timer and the cube moves the cube down; generates a repaint request restores the background; calls cube’s draw method Repaint request dropCube method actionPerformed method  Timer fires paintComponent method

27 Εισαγωγή στο ΟΟΡ και Java Δρ. Μαρία Ι. Ανδρέου1-27 Ramblecs Events (συνέχ.) FallingCube class cube object picks a random letter; resets cube’s position to the top checks whether cube reached the bottom; moves the cube down draws the cube start method moveDown method draw method


Κατέβασμα ppt "Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Java Classes, Objects, και Events."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google