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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Advertisements

Human Computer Interaction JAVA APPLETS JAVA AWT Μελισσόβας Δημήτρης Owda Zaher.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Λίστες παράλειψης (skip lists) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A
ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ – ΜΗΧΑΝΗΣ Εαρινό Εξάμηνο 2007 Παρουσίαση Εργαλείου Ανάπτυξης JBuilder Τσουρού Σταυρούλα, ΑΜ 708 Μαδεμλής Ιωάννης, ΑΜ 669.
ΘΕΩΡΙΑ ΔΙΑΛΕΞΗ 4 Αριθμητικές εκφράσεις και πράξεις Εντολές ανάθεσης
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Constructors, equals, toString Αντικείμενα ως παράμετροι.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 3: Υλοποίηση μεθόδων.
Γλωσσική Τεχνολογία Object-Orientation in Python.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Φροντιστήρια Εισηγητής: Σπύρος Αργυρόπουλος Μέλος ΕΤΕΠ Εργαστήριο Προγραμματισμού & Τεχνολογίας Ευφυών Συστημάτων.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 10: Graphical User Interfaces Εβδομάδα 10: Εισαγωγή στα Γραφικά Περιβάλλοντα.
Page  1 Ο.Παλιάτσου Γαλλική Επανάσταση 1 ο Γυμνάσιο Φιλιππιάδας.
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Αντικείμενα, Κλάσεις και Μέθοδοι
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 7: Συμβολοσειρές.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
Γραφικά Ενδιάμεσα Χρήστη στην Java
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Methods, Constructors and Field.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING Επισκόπηση.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Graphical User Interfaces (GUI) SWING.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 11: Εκτέλεση Java χωρίς το BlueJ.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) OOP Concepts and Object-Oriented Design.
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό Κλάσεις και αντικείμενα Κλάσεις και αντικείμενα Κατασκευαστές κλάσεων (constructors) Κατασκευαστές κλάσεων.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γενικευμένες κλάσεις Συλλογές.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Java Syntax and Style.
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Εισαγωγή στον αντικειμενοστραφή προγραμματισμό
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
Applets Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη δυνατότητα προβολής γραφικών και τη δυνατότητα υλοποίησης ενός γραφικού.
Διαχείριση γεγονότων (events) Γεγονότα: Κλήσεις που παράγονται από γραφικά στοιχεία (Components) π.χ. click ποντικιού, μετακίνηση ποντικιού Ακρόαση-Διαχείριση.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Data Types, Variables, and Arithmetic.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
Threads Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά η μία μετά.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
Applets Εκτελούνται από τον appletviewer και από Java enabled web browsers Εκμεταλλεύονται τo γραφικό υπόβαθρο που παρέχουν οι browsers, έχοντας έτσι τη.
1 Κεφάλαιο 2 Εισαγωγή στον αντικειμενοστραφή προγραμματισμό.
Μέθοδοι Μέθοδοι Δημιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων.
Βασικά στοιχεία της Java
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
Βασικές ένοιες Αντικειμενοστραφούς Προγραμματισμού - Κλάσεις ΕΡΓΑΣΤΗΡΙΟ AΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Διαφάνειες: ΧΟΧΟΛΗΣ ΔΙΟΝΥΣΙΟΣ Προσαρμογή 2014:
ΟΣΣ2 - 4 Δεκεμβρίου 2005 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
Κλάσεις και αντικείμενα
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Ειδικά Θέματα στον Προγραμματισμό Υπολογιστών
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Swing II Εβδομάδα Νο. 6.
Εισαγωγή στη Java (Μέρος Α’)
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Διάλεξη #10: Εκτέλεση Java χωρίς το BlueJ
Wrapper Classes, Abstract Classes and Interfaces
Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)
Week 10: Graphical User Interfaces
Διάλεξη #3: Υλοποίηση μεθόδων.
Μεταγράφημα παρουσίασης:

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

Εισαγωγή στο ΟΟΡ και 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

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

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

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

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

Εισαγωγή στο ΟΟΡ και 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

Εισαγωγή στο ΟΟΡ και 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

Εισαγωγή στο ΟΟΡ και 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

Εισαγωγή στο ΟΟΡ και 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

Εισαγωγή στο ΟΟΡ και 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.

Εισαγωγή στο ΟΟΡ και 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

Εισαγωγή στο ΟΟΡ και 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 Ονόμασε το!

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

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

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

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

Εισαγωγή στο ΟΟΡ και 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 )

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

Εισαγωγή στο ΟΟΡ και 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

Εισαγωγή στο ΟΟΡ και 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 ) {...}

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

Εισαγωγή στο ΟΟΡ και 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!

Εισαγωγή στο ΟΟΡ και 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.

Εισαγωγή στο ΟΟΡ και 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

Εισαγωγή στο ΟΟΡ και 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

Εισαγωγή στο ΟΟΡ και 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