Java classes objects events
1 / 27

Java Classes, Objects, ??? Events - PowerPoint PPT Presentation

  • Uploaded on

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Java Classes, Objects, ??? Events' - zeph-jensen

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Java classes objects events

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

Επεξήγηση για το πωςοι βιβλιοθήκεςκατηγοριών (library classes)χρησιμοποιούνται σε Java programs

Να πάρουμε μια ιδέα για το πώς μέθοδοι καλούν η μια την άλλη.

Να μάθουμε για private και public methods

Μια μικρή εισαγωγή για event-driven applications και the event-handling mechanism στην Java


Δρ. Μαρία Ι. Ανδρέου

Objects in the ramblecs applet
Objects in the Ramblecs Applet

Ramblecs, the applet itself

FallingCube cube



JButton go

Δρ. Μαρία Ι. Ανδρέου

Classes source files
Classes και Source Files

  • ένα class ορίζει μια κατηγορία από objects.

Όνομα του Class :

Όνομα του File :





Το όνομα του class αρχίζει με Κεφαλαίο Γράμμα

Τα ΙΔΙΑκεφαλαία / μικρά γράμματα

Δρ. Μαρία Ι. Ανδρέου

Programmers write classes
Programmers write classes

  • Κάνουμε εκτεταμένη χρήση από library classes

    • Είτε άμεσα:

      JButton go = new JButton("Click here");

    • Η μέσω κληρονομικότητας:

      public class LetterPanel extends JPanel

Δρ. Μαρία Ι. Ανδρέου

Classes in the ramblecs applet
Classes in the Ramblecs Applet

Από το library package javax.swing

Δικός μας κώδικας

Δρ. Μαρία Ι. Ανδρέου

Files folders
Files και Folders

  • javacαυτόματα ψάχνει classes (.java or .class files) στον τρέχων κατάλογο, ή, αν έναclasspathέχει οριστεί, ψάχνει σε folders που βρίσκονται στοclasspath string.

  • Όταν ένα file δεν μπορεί να το βρει τότε ένα syntax error γνωστοποιείται από τον compiler.

  • Για να θέσουμε έναclasspath, πρέπει να περιλαμβάνουμε το τρέχον folder. Για παράδειγμα:


    Η τελεία υποδηλώνει το τρέχον folder

Δρ. Μαρία Ι. Ανδρέου

Java classes objects events

  • Τα Java programs συχνά δεν γράφονται από το μηδέν.

  • Υπάρχουν εκατοντάδες από library classes για όλες τις περιπτώσεις.

  • Οι Library classes οργανώνονται σε packages. Για παράδειγμα:

    java.util —classes για πολλές ποικίλες χρήσεις

    java.awt — windowing και graphics toolkit

    javax.swing — newer GUI package Swing

Δρ. Μαρία Ι. Ανδρέου


  • Full library class names ενσωματώνουν το package name. Για παράδειγμα:



  • import statements στην αρχή του προγράμματος σας σας επιτρέπουν να αναφέρεστε σε library classes με τα short names τους. Για παράδειγμα:

    import javax.swing.JButton;


    JButton go = new JButton("Click here");

Fully-qualified name

Δρ. Μαρία Ι. Ανδρέου


  • Μπορείτε να κάνετε 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

Δρ. Μαρία Ι. Ανδρέου

Public class someclass
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

Δρ. Μαρία Ι. Ανδρέου

Public class fallingcube
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;

  • ...

  • }

  • ...


Το όνομα του/των constructor/s είναι ΠΑΝΤΑ το ίδιο με το όνομα του class




Δρ. Μαρία Ι. Ανδρέου


Ονόμασε το!

  • private (or public)[static][final]

  • datatypename;

συνήθως private

Προαιρετικό: αυτό το field είναι constant

Προαιρετικό: αυτό το field μοιράζεται από ΌΛΑ τα objects του class

int, double, etc., or an object: String, JButton, FallingCube, Timer

Δρ. Μαρία Ι. Ανδρέου

Fields (συνέχ.)

  • Μπορεί να είναιprimitive data types:

    int, char, double, etc.

  • private int cubeX, cubeY; // cube coordinates

  • ...

  • private char randomLetter; // cube letter

Δρ. Μαρία Ι. Ανδρέου

Fields (συνέχ.)

  • Μπορεί να είναιobjectsδιαφορετικών τύπων:

  • private FallingCubecube;

  • private Timert;

  • private static final String letters;

Δρ. Μαρία Ι. Ανδρέου


  • Constructors είναι methods για δημιουργία objects μιας class.

  • Οι περισσότεροι constructors αρχικοποιούν τα fields του object.

  • Οι Constructors μπορεί να έχουν παραμέτρους (parameters).

  • Μια class μπορεί να έχει πολλούς constructors οι οποίοι διαφοροποιούνται από το πλήθος ή τον τύπο των παραμέτρων τους.

  • Όλοι οι constructors μιας class έχουν το ίδιο όνομα με την class.

Δρ. Μαρία Ι. Ανδρέου

Constructors (συνέχ.)

go = new JButton("Go");

Δρ. Μαρία Ι. Ανδρέου

Constructors (συνέχ.)

  • Καλούμε τους constructors χρησιμοποιώντας τον τελεστή (operator) new:

  • cube = newFallingCube(CUBESIZE);

  • ...

  • t = newTimer(delay, this)

Καλεί τον constructor της FallingCubeμετο CUBESIZEσαν παράμετρο

Καλεί τον constructor της Timerμε ταdelay και this (δηλ.αυτό το object) σαν παραμέτρους (δες Java docs γιαjavax.swing.Timer)

Δρ. Μαρία Ι. Ανδρέου

Μέθοδοι (Methods)

  • Τις καλούμε για κάποιο συγκεκριμένο object:



    randomLetter = letters.charAt(i);

  • καλούμεstatic (“class”) methodsγια ολόκληρο το class, ΌΧΙ για συγκεκριμένο object:

    y = Math.sqrt (x);

Δρ. Μαρία Ι. Ανδρέου

Methods (συνέχ.)

  • Constructors και methods μπορούν να καλούν άλλεςpublic και private methods της ίδιας class.

  • Constructors και methods μπορούν να καλούν ΜΟΝΟpublic methods από άλλες class.

Class X

private method

Class Y

public method

public method

Δρ. Μαρία Ι. Ανδρέου

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 ) {...}

Δρ. Μαρία Ι. Ανδρέου

Γεγονότα (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.)

Δρ. Μαρία Ι. Ανδρέου

Events (συνέχ.)


  • ένα object που δημιουργεί events μπορεί να έχει ένα ή περισσότερους listenersεπισυναπτόμενους σε αυτό.

  • ένας listener είναι ένα object.

  • Μια listener’s method καλείται για κάθε event.

ActionListener object

(ActionEvent e)




public void actionPerformed

Δρ. Μαρία Ι. Ανδρέου

Events (συνέχ.)

public class Ramblecs extends JApplet

implements ActionListener



private JButton go;

public void init()


go = new JButton("Go");




public void actionPerformed(AcionEvent e)





Πρόσθεσε ένα listener στο button. Σε αυτή τη περίπτωση, το listener object είναιτο applet.

Δρ. Μαρία Ι. Ανδρέου

Ramblecs events

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

Δρ. Μαρία Ι. Ανδρέου

Ramblecs events1

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

Δρ. Μαρία Ι. Ανδρέου

Ramblecs events2
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

Δρ. Μαρία Ι. Ανδρέου