Java classes objects events
This presentation is the property of its rightful owner.
Sponsored Links
1 / 27

Java Classes, Objects, και Events PowerPoint PPT Presentation


  • 79 Views
  • Uploaded on
  • Presentation posted in: General

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

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.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

Java Classes, Objects, και Events


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

LetterPanel

whiteboard

JButton go

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


Classes source files

Classes και Source Files

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

Όνομα του Class :

Όνομα του File :

SomeClass

Ramblecs

FallingCube

SomeClass.java

Ramblecs.java

FallingCube.java

σύμβαση:

Το όνομα του 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. Για παράδειγμα:

    .;C:\javamethods\EasyIO

    Η τελεία υποδηλώνει το τρέχον 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

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


Import

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

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


Import1

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

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


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;

  • ...

  • }

  • ...

Fields

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

Constructor

Methods

}

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


Fields

Fields

Ονόμασε το!

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

  • datatypename;

συνήθως private

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

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

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

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


Fields1

Fields (συνέχ.)

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

    int, char, double, etc.

  • private int cubeX, cubeY; // cube coordinates

  • ...

  • private char randomLetter; // cube letter

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


Fields2

Fields (συνέχ.)

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

  • private FallingCubecube;

  • private Timert;

  • private static final String letters;

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


Constructors

Constructors

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

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

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

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

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

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


Constructors1

Constructors (συνέχ.)

go = new JButton("Go");

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


Constructors2

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

Μέθοδοι (Methods)

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

    cube.start();

    whiteboard.dropCube();

    randomLetter = letters.charAt(i);

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

    y = Math.sqrt (x);

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


Methods1

Methods (συνέχ.)

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

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

Class X

private method

Class Y

public method

public method

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


Methods2

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

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

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


Events1

Events (συνέχ.)

Click!

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

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

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

ActionListener object

(ActionEvent e)

{

whiteboard.dropCube();

}

public void actionPerformed

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


Events2

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.

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


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

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


  • Login