Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java)

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Κληρονομικότητα. Εισαγωγή  Κληρονομικότητα (Inheritance) καλείται ο μηχανισμός με τον οποίο μία νέα κλάση που ονομάζεται παράγωγη (derived class) δημιουργείται.
Advertisements

7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Δαμιανός Χατζηαντωνίου Οικονομικό Πανεπιστήμιο Αθηνών
Πανεπιστήμιο Αιγαίου Σχολή Επιστημών της Διοίκησης Τμήμα Μηχανικών Οικονομίας & Διοίκησης Computer applications in the modern enterprise Γ. Κούζας, PhD.
Τι είναι ο υπολογιστής; Τι είναι ο προγραμματισμός
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΕΠΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ – ΜΗΧΑΝΗΣ Εαρινό Εξάμηνο 2007 Παρουσίαση Εργαλείου Ανάπτυξης JBuilder Τσουρού Σταυρούλα, ΑΜ 708 Μαδεμλής Ιωάννης, ΑΜ 669.
ΗΥ 252: Αντικειμενοστρεφής Προγραμματισμός csd. uoc
Κεφάλαιο 6 Threads. 2 Στον παραδοσιακό προγραμματισμό όταν ένα πρόγραμμα εκτελείται ονομάζεται process (διεργασία) και οι εντολές του εκτελούνται σειριακά.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 11: Intro to Applets Εβδομάδα 11: Εισαγωγή στα Applets.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 6: Java Collections Εβδομάδα 6: Συλλογές δεδομένων στην Java.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Εβδομάδα 2: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism]
Αντικειμενοστρεφής Προγραμματισμός, Αντώνιος Συμβώνης, Πανεπιστήμιο Ιωαννίνων, Slide 1 Week 13: Review Εβδομάδα 13: Ανασκόπηση.
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Αντικείμενα, Κλάσεις και Μέθοδοι
Επανάληψη βασικών αρχών του αντικειμενοστρεφούς προγραμματισμού
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
1 Ολυμπιάδα Πληροφορικής Μάθημα 7. 2 Στόχοι μαθήματος Δημιουργία συναρτήσεων από το χρήστη Δομή προγράμματος με συναρτήσεις Συναρτήσεις και παράμετροι.
Κωνσταντίνος Δελησταύρου Ευγενία Παπαδοπούλου
ΣΥΝΑΡΤΗΣΕΙΣ.
Εισαγωγή στον Προγραμματισμό, Αντώνιος Συμβώνης, ΣΕΜΦΕ, ΕΜΠ, Slide 1 Εβδομάδα 11: Εκτέλεση Java χωρίς το BlueJ.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής (Αντικειμενοστρεφής Προγραμματισμός)
Κεφάλαιο 6 -Περιβάλλοντα Ανάπτυξης Εφαρμογών
Κεφάλαιο 6: Εισαγωγή στον προγραμματισμό Φυσικές και τεχνητές γλώσσες.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τμ. Πληροφορικής,
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τμ. Πληροφορικής,
Για τη διεκπεραίωση ενός προβλήματος πρέπει να ακολουθηθεί η εξής διαδικασία:  να γραφεί ο αλγόριθμος να συνταχθεί το πρόγραμμα σε γλώσσα υψηλού επιπέδου.
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Εισαγωγή στη JAVΑ (μέρος Α’)
ΑΝΑΚΕΦΑΛΑΙΩΣΗ 26 Οκτωβρίου Αντικειμενοστρεφής Προγραμματισμός Ένα νέο προγραμματιστικό μοντέλο (paradigm) το οποίο στηρίζεται στις κλάσεις και τα.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Κ. ΛΑΖΟΣ - Π. ΚΑΤΣΑΡΟΣ Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τρίτη, 14 Απριλίου 2015Τμ.
Δρ. Μαρία Ι. Ανδρέου Εισαγωγή στον Αντικειμενόστρεφη Προγραμματισμό (Object-Oriented Programming) Data Types, Variables, and Arithmetic.
Προγραμματισμός Γιατι γραφουμε προγραμματα (προηγ. διαλεξη)
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Βασικά στοιχεία της Java
Διάλεξη 1 Εισαγωγή Επισκόπηση άσκησης Διάλεξη 1 1 Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού Χειμερινό Εξάμηνο
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
ΚΑΤΑΝΟΩ ΤΙΣ ΜΕΤΑΒΛΗΤΕΣ ΜΕ ΤΗ ΒΟΗΘΕΙΑ ΤΟΥ SCRATCH Χρήστος Μανώλης, Πληροφορικός ΠΕ 19 ΘΕΣΣΑΛΟΝΙΚΗ / ΑΥΓΟΥΣΤΟΣ 2015 Ομάδα ανάπτυξης 6 ο εσπερινό ΕΠΑΛ Θεσσαλονίκης.
Εισαγωγή στον προγραμματισμό Μέρος 3 ο Προγραμματιστικά περιβάλλοντα § 6.7.
Εισαγωγή στη C# Μαρίνος Θεμιστοκλέους Ανδρούτσου 150 Γραφείο 206 Τηλ Ώρες Γραφείου: Τετάρτη 5-6 μμ.
Κωδικός Θ: ΤΠ4003, Κωδικός Ε: ΤΠ4103 (ΜΕΥ/Υ) Ώρες (Θ - ΑΠ - Ε): Προαπαιτούμενα: ΤΠ2003,2103.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
ΟΣΣ2 - 4 Δεκεμβρίου 2005 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΕΦΑΡΜΟΓΕΣ ΥΠΟΛΟΓΙΣΤΩΝ
Java DataBase Connectivity
Κλάσεις και αντικείμενα
Αντικειμενοστραφής Προγραμματισμός (Object Oriented Programming)
Wrapper Classes, Abstract Classes and Interfaces
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
Εισαγωγή Επισκόπηση άσκησης
Εισαγωγή στη Java Χαρακτηριστικά της Java Εργαλεία της Java
2ο ΓΥΜΝΑΣΙΟ ΣΗΤΕΙΑΣ - ΤΑΞΗ Γ'
Ειδικά Θέματα στον προγραμματισμό Υπολογιστών
Εβδομάδα 12: Ανασκόπηση.
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ Η/Υ
Προχωρημένος Προγραμματισμός
JAVA – Basic OOP Principles
ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ
Εφαρμογή Μεθοδολογίας ICONIX
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εργασία στην JML Μάθημα: Τυπικές Μέθοδοι Ανάλυσης Συστημάτων
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Εισαγωγή στον Προγραμματισμό (στη γλώσσα Java)
Wrapper Classes, Abstract Classes and Interfaces
Κληρονομικότητα [inheritance]
Μεταγράφημα παρουσίασης:

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό (στη γλώσσα Java) Αντώνιος Συμβώνης www.math.ntua.gr/~symvonis Γραφείο: Ε.3.18 Πέτρος Στεφανέας www.math.ntua.gr/~petros Γραφείο: Ε.3. things to say at the beginning: - 2 hr lecture, 2 hr tute - have to enrol in tutes (allocate+) - which countries do they come from? - what programming experience?

Στόχοι Καλή γνώση βασικών αρχών προγραμματισμού Καλή γνώση βασικών αρχών αντικειμενοστρεφή προγραμματισμού Ικανότητα προγραμματισμού στη γλώσσα Java

Αξιολόγηση Εργασίες(2)**: 10% Διαγώνισμα: 90% Προσοχή: Εργασίες(2)**: 10% Διαγώνισμα: 90% ** Απαραίτητη η ικανοποιητική συμμετοχή στο εργαστήριο Προσοχή: Η παρακολούθηση των εργαστηρίων και η ολοκλήρωση των ασκήσεων είναι η καλύτερη προετοιμασία για το διαγώνισμα

Συγγράμματα Σύγγραμματα που διανέμονται David Barnes, Michael Kolling "Αντικειμενοστρεφής προγραμματισμός σε Java. Μια πρακτική εισαγωγή με χρήση Bluej” Εκδόσεις Κλειδάριθμος, Γιώργος Λιακέας, "Εισαγωγή στη Java" Εκδόσεις Κλειδάριθμος Προαιρετικά «The Java Tutorial» http://docs.oracle.com/javase/tutorial/

Σελίδα στο internet Όλες οι πληροφορίες σχετικά με το μάθημα είναι διαθέσιμες στις διευθύνσεις: www.math.ntua.gr/~symvonis (ακολουθώντας το σύνδεσμο «Εισαγωγή στον Αντικειμενοστρεφή προγραμματισμό») mycourses.ntua.gr (απαιτείται η «εγγραφή» σας)

Χρόνος ενασχόλησης 4 ώρες διαλέξεων 2 ώρες εργαστήριο Τουλάχιστον 4 ώρες μελέτη την εβδομάδα!!

? Περιεχόμενα Java, αντικείμενα [objects], BlueJ Αντικείμενα και κλάσεις [classes] Υλοποίηση μεθόδων [methods] Τύποι δεδομένων [data types] και τελεστές [operations] Εντολές επιλογής / επανάληψης Διανύσματα [Arrays] Βιβλιοθήκες κλάσεων Συμβολοσειρές [Strings]

Περιεχόμενα (συνέχεια) ! Κληρονομικότητα [inheritance] Πολυμορφισμός [polymorphism] Κλάσεις αφηρημένου τύπου [abstract classes] και διαπροσωπείες [interfaces] Εξαιρέσεις [exceptions] Κλάσεις συλλογής δεδομένων [collections] Γενικές κλάσεις [generics] Είσοδος/ έξοδος Γραφικό περιβάλλον διασύνδεσης [GUI - Graphical User Interface] Εκτέλεση Java χωρίς το BlueJ

Java, Αντικείμενα και BlueJ Διάλεξη #1: Java, Αντικείμενα και BlueJ

Επίδειξη Live demo: show “shapes” project create squares, circles, etc. create picture; modify picture

Τι είδαμε; Ένα περιβάλλον Ένα πρόγραμμα Μια γλώσσα

Διαφορετικά συστήματα... Το “BlueJ” είναι ένα περιβάλλον ανάπτυξης προγραμμάτων Η “Java” είναι μια γλώσσα προγραμματισμού “shapes” είναι ένα πρόγραμμα (εφαρμογή) με την οποία δουλεύουμε “Square”, “Circle”, “Canvas”, κ.λπ. είναι κλάσεις της εφαρμογής Το BlueJ αναφέρεται σε μια «υπό ανάπτυξη» εφαρμογή σαν το «έργο» [project]

Java Σχετικά νέα γλώσσα προγραμματισμού (διατίθεται από το 1995) Αρχικά από την Sun Microsystems Τώρα από την Oracle Δωρεάν διάθεση (δείτε σελίδα μαθήματος στο internet)

BlueJ Το BlueJ είναι ένα προγραμματιστικό περιβάλλον σε Java που αναπτύχθηκε ειδικά για την διδασκαλία του αντικειμενοστρεφή προγραμματισμού σε αρχάριους Αναπτύχθηκε στο School of Network Computing, Monash University Δωρεάν διάθεση (δείτε σελίδα μαθήματος στο internet)

Κλάσεις και αντικείμενα Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Ο προγραμματιστής σχεδιάζει τις κλάσεις (πιο συγκεκριμένα: τον κώδικα για τις κλάσεις) Αντικείμενα δημιουργούνται με βάση τις κλάσεις (είναι στιγμιότυπα [instances] των κλάσεων) Πολλά αντικείμενα μπορεί να δημιουργηθούν βασιζόμενα στην ίδια κλάση

Κλάσεις και αντικείμενα(2) Οι κλάσεις είναι ένα είδος «βιομηχανίας» αντικειμένων Τα αντικείμενα έχουν «λειτουργίες» [operations] οι οποίες μπορεί να εκτελεστούν Στην Java οι λειτουργίες αυτές αναφέρονται σαν «μέθοδοι» [methods] Τα αντικείμενα περιέχουν γνωρίσματα δεδομένων [data attributes] τα οποία ονομάζονται «πεδία» [fields] ή «μεταβλητές στιγμιότυπου» [instance variables]

Κλάσεις και αντικείμενα (3) Τα γνωρίσματα (πεδία και μέθοδοι) ορίζονται μέσα σε μια κλάση αλλά, τα πεδία αποθηκεύονται (και οι μέθοδοι επιδρούν) σε ένα αντικείμενο Οι κλάσεις προσδιορίζουν την μορφή των αντικειμένων Όταν σχεδιάζουμε μια εφαρμογή σχεδιάζουμε κλάσεις; όταν εκτελούμε μια εφαρμογή χειριζόμαστε αντικείμενα.

Ένα ακόμα παράδειγμα Επίδειξη: Person

Τι άλλο είδαμε μέχρι τώρα; Ο κώδικας Java που ορίζει μια κλάση ονομάζεται ο πηγαίος κώδικας της κλάσης [source code] Ο πηγαίος κώδικας μπορεί να διορθωθεί η να μεταβληθεί με ένα συντάκτη κειμένου [editor] Μετά από κάθε αλλαγή του πηγαίου κώδικα, αυτός πρέπει να μεταγλωττιστεί [compiled] ξανά πριν την εκτέλεση του Ο μεταγλωττιστής [compiler] ελέγχει τον πηγαίο κώδικα για συντακτικά λάθη

Χρήση παραμέτρων Όταν καλείται μια μέθοδος μπορούμε να δώσουμε τιμές στις παραμέτρους της (εάν η μέθοδος χρησιμοποιεί παραμέτρους) Κάθε παράμετρος έχει συγκεκριμένο τύπο δεδομένων; πρέπει να δώσουμε τιμές του κατάλληλου τύπου σε κάθε παράμετρο Είδαμε παραμέτρους τύπου “String” (συμβολοσειρά, κείμενο) και “int” (ακέραιοι αριθμοί)