1 / 27

Java Classes, Objects, και Events

Java Classes, Objects, και Events. Μια εισαγωγή σε classes, objects, πεδία ( fields ) , constructors, και methods; Να πάρουμε μια γενική ιδέα για το πώς ένα μικρό πρόγραμμα χρησιμοποιεί τα πιο πάνω

zeph-jensen
Download Presentation

Java Classes, Objects, και Events

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. Java Classes, Objects, και Events

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

  3. Objects in the Ramblecs Applet Ramblecs, the applet itself FallingCube cube LetterPanel whiteboard JButton go Δρ. Μαρία Ι. Ανδρέου

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

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

  6. Classes in the Ramblecs Applet Από το library package javax.swing Δικός μας κώδικας Δρ. Μαρία Ι. Ανδρέου

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

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

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

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

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

  14. Fields (συνέχ.) • Μπορεί να είναιprimitive data types: int, char, double, etc. • private int cubeX, cubeY; // cube coordinates • ... • private char randomLetter; // cube letter Δρ. Μαρία Ι. Ανδρέου

  15. Fields (συνέχ.) • Μπορεί να είναιobjectsδιαφορετικών τύπων: • private FallingCubecube; • private Timert; • private static final String letters; Δρ. Μαρία Ι. Ανδρέου

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

  17. Constructors (συνέχ.) go = new JButton("Go"); Δρ. Μαρία Ι. Ανδρέου

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

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

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

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

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

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

  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. Applet starts  “Go” clicked Ramblecs Events Ramblecs class applet object creates the whiteboard panel and the “Go” button calls whiteboard’s dropCube init method actionPerformed method Δρ. Μαρία Ι. Ανδρέου

  26. Repaint request Timer fires 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 dropCube method actionPerformed method paintComponent method Δρ. Μαρία Ι. Ανδρέου

  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 Δρ. Μαρία Ι. Ανδρέου

More Related