ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 1/4/2008

Σχετικά έγγραφα
ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 8: Πακέτα (Packages)

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 6: Pass-by-value και φαινομενικό pass-by-reference

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 22/11/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 10/1/08

Πακέτα (Packages) Φωλιασμένες ή Εσωτερικές Κλάσεις (Inner Classes) Παναγιώτης Σφέτσος, PhD

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 4/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 2: Βασικές εντολές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 12: Ροές και είσοδος/έξοδος αρχείων

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 29/11/07

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08

Αντικειµενοστραφής Προγραµµατισµός

ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ «ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ»

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 13/12/07

ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ «ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ»

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 4: Αντικειμενοστραφής Προγραμματισμός (Μέθοδοι, Κλάσεις, Αντικείμενα)

Εισαγωγή στον Προγραμματισμό

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Αντικειμενοστρεφής Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 11: Vectors (διανύσματα)

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016

ΣΥΝΘΕΤΕΣ ΚΛΑΣΕΙΣ ΚΑΙ ΜΕΘΟΔΟΙ

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 5: Κατασκευαστές (Constructors)

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #7

Προγραμματισμός 2 Σημειώσεις εργαστηρίου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Οντοκεντρικός Προγραμματισμός

Βασικά Στοιχεία της Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

Αντικείμενα στη Java. Παύλος Εφραιμίδης. Java Αντικείμενα στη Java 1

Αντικείμενα (Objects) στην Java. Αντικείμενα στη Java. Δημιουργία Αντικειμένων. Δηλώσεις Μεταβλητών (2) Ο τελεστής new (1)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

Εισαγωγή στον Προγ/μό Η/Υ

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 1/11/07

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Βασικά της γλώσσας JAVA

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 8/4/2008. Πίνακες (Arrays)

Εισαγωγή στον Προγραµµατισµό - Εβδοµάδα 7

Εισαγωγή στον αντικειμενοστραφή προγραμματισμό με τη Java

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Αντικειμενοστρεφής Προγραμματισμός

Βασικά Στοιχεία της Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Αντικειµενοστρεφής Προγραµµατισµός

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning

Διδάσκων: Παναγιώτης Ανδρέου

Mεταβλητές (variables) και Σταθερές (constants)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors

Κλάσεις και Αντικείµενα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

Οντοκεντρικός Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Ειδικά Θέματα Προγραμματισμού

Οντοκεντρικός Προγραμματισμός

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου

API: Applications Programming Interface

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και αντικείμενα στην Java Strings Πίνακες

2.1 Αντικειµενοστρεφής προγραµµατισµός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Εισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

scanf() scanf() stdin scanf() printf() int float double %lf float

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

Transcript:

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 1/4/2008 Η Κλάση String (συνέχεια από το προηγούμενο μάθημα) Μέθοδοι δημιουργίας νέων αντικειμένων String (συνέχεια) - public String touppercase() - public String trim() κόβει τα κενά σε αρχή και τέλος - public String concat(string str) το ίδιο με το + // Apo prin: a=blah blah kai h=blah String s = aconcat(h); // blah blahblah (ίδιο με το a+h;) Μετατροπές από/σε String Από μεταβλητή τύπου boolean, int, long, float, double, char σε String: StringvalueOf(<μεταβλητή>); int n = 10; String p = StringvalueOf(n); // p = 10 Από String σε boolean BooleanparseBoolean(str) σε int IntegerparseInt(str) σε long LongparseLong(str) σε float new Float(str)floatValue() σε double DoubleparseDouble(str) Ο χαρακτήρας \ χρησιμοποιείται σε ειδικές περιπτώσεις, όπως για την εκτύπωση των εισαγωγικών: Systemoutprintln( Say \ Hi\! ); τυπώνει: Say Hi! (το παραπάνω string έχει 9 χαρακτήρες και όχι 11 Το \ δεν μετράει σαν χαρακτήρας) Για εκτύπωση του \: \\ Systemoutprintln( abc\\def ); τυπώνει: abc\def \n new line (ENTER) \t tab Η Κλάση StringBuffer: Είναι η κλάση που τροποποιεί αλφαριθμητικά 1

Πακέτα (Packages) Τα πακέτα αποτελούν τρόπο ομαδοποίησης κλάσεων συναφούς λειτουργικότητας Ένα πακέτο λειτουργεί σαν βιβλιοθήκη κλάσεων που μπορούν να χρησιμοποιηθούν από ένα πρόγραμμα χωρίς να βρίσκονται στον υποκατάλογό του Κάθε πακέτο έχει ένα όνομα και όλες του οι κλάσεις βρίσκονται στον ίδιο υποκατάλογο, που έχει το ίδιο όνομα με το πακέτο Οι κλάσεις ενός πακέτου είναι κανονικές κλάσεις, άρα ορίζονται: public class <ClassName> αλλά πριν τον ορισμό τους έχουν την ακόλουθη δήλωση: package <packagename>; πχ Έστω ότι είμαστε μέσα στον υποκατάλογο με όνομα pack1, ο οποίος έχει μέσα δύο κλάσεις, τα αρχεία ClassOnejava και ClassTwojava: Αρχείο ClassOnejava: public class ClassOne Αρχείο ClassTwojava: public class ClassTwo Επίσης, έστω ότι στον υποκατάλογο pack1 υπάρχει νέος υποκατάλογος με το όνομα smallpack ο οποίος περιέχει τις ακόλουθες κλάσεις: Αρχείο Class1java: package pack1smallpack; public class Class1 2

Αρχείο Class2java: package pack1smallpack; public class Class2 Για να χρησιμοποιήσουμε στο πρόγραμμά μας τις κλάσεις του πακέτου pack1 χρησιμοποιούμε την εντολή import: Αρχείο MyClass1java: import pack1*; public class MyClass1 ενώ ειδικά για τις κλάσεις του πακέτου smallpack: Αρχείο MyClass2java: import pack1smallpack*; public class MyClass1 Άρα, με τη δήλωση: import <packagename>*; μπορούμε να χρησιμοποιήσουμε όλες τις κλάσεις ενός πακέτου σε κάποια κλάση του προγράμματός μας Είναι κλάσεις που βρίσκονται εκτός του υποκαταλόγου του προγράμματός μας Το * δηλώνει όλες τις κλάσεις ενός πακέτου Μπορούμε να κάνουμε import σε μια κλάση μόνο συγκεκριμένες κλάσεις ενός πακέτου, ενώ μπορούμε φυσικά να κάνουμε import κλάσεις από πολλά πακέτα Πχ, αν θέλαμε στην κλάση μας MyClass3 να συμπεριλάβουμε όλο το pack1 και την Class2 του pack1smallpack: 3

import pack1*; import pack1smallpackclass2; public class MyClass3 Στο παράδειγμα αυτό των pack1 και smallpack πακέτων, το smallpack, το οποίο βρίσκεται σε έναν υποκατάλογο του pack1, ονομάζεται υποπακέτο του pack1 Η δομή αυτή υπάρχει για να μπορούν οι κλάσεις κάθε πακέτου να χωρίζονται σε υποομάδες συναφούς λειτουργικότητας, έτσι ώστε κάποιος να μπορεί εύκολα να συμπεριλάβει στο πρόγραμμά του μια υπο-ομάδα κλάσεων με τη δήλωση: import <πακέτο><υποπακέτο>*; χωρίς να χρειάζεται να κάνει import μία-μία τις κλάσεις αυτές ή να αναγκάζεται να κάνει import όλο το πακέτο, το οποίο μπορεί να περιέχει πολλές κλάσεις που δεν θα χρειαστεί Περί ορατότητας μεταβλητών και μεθόδων: Ορατότητα: public private χωρίς δήλωση ορατότητας Από την ίδια την κλάση ναι ναι ναι Από άλλη κλάση στο ίδιο πακέτο ναι όχι ναι Από άλλη κλάση έξω από το πακέτο ναι όχι όχι δηλαδή, - οι public μεταβλητές (ή μέθοδοι) είναι ορατές από παντού - οι private είναι ορατές μόνο μέσα στην κλάση όπου ορίζονται - οι χωρίς δήλωση είναι ορατές από τις κλάσεις του πακέτου μόνο, δηλαδή αποτελούν κάτι ενδιάμεσο, μεταξύ public και private Άρα: - για κλάσεις του ίδιου πακέτου: «χωρίς δήλωση» public - για κλάσεις εκτός πακέτου: «χωρίς δήλωση» private (Υπάρχει και η ορατότητα protected στην οποία θα αναφερθούμε όταν μιλήσουμε για κληρονομικότητα) 4

Παράδειγμα: Έχουμε ένα πακέτο (pack1) με τις ακόλουθες δύο κλάσεις: public class ClassA private void method1() public class ClassB ClassA obj = new ClassA(); public void method2() void method3() public void method4() objmethod1(); // ΛΑΘΟΣ! objmethod2(); objmethod3(); Στο πρόγραμμά μας κάνουμε χρήση του πακέτου pack1: import pack1*; public class MyClass ClassA obja = new ClassA(); public void mymethod() objamethod1(); // ΛΑΘΟΣ! objamethod2(); objamethod3(); // ΛΑΘΟΣ!! objamethod4(); // ΛΑΘΟΣ!! (η method4() ανήκει στην ClassB) Κλάσεις με το ίδιο όνομα σε διαφορετικά πακέτα Αν υπάρχει κλάση με το ίδιο όνομα σε δύο διαφορετικά πακέτα, τότε αναφορές στο όνομα της κλάσης αυτής θα πρέπει να περιέχουν και το όνομα του πακέτου Πχ, αν σε συνέχεια του προηγούμενο παραδείγματος με το pack1, θέλουμε να χρησιμοποιήσουμε και το pack2, το οποίο περιέχει και αυτό μια κλάση με το όνομα πχ ClassB, τότε: import pack1*; import pack2*; public class MyNewClass pack1classb obj1 = new pack1classb(); pack2classb obj2 = new pack2classb(); 5

Στην περίπτωση αυτή, χρησιμοποιούμε το <πακέτο><κλάση> για να αναφερθούμε στη συγκεκριμένη κάθε φορά ClassB επειδή υπάρχουν δύο τέτοιες κλάσεις Επιπλέον, επειδή ακριβώς χρησιμοποιούμε το <πακέτο><κλάση>, δεν είναι απαραίτητο να κάνουμε import τα πακέτα pack1 και pack2! Δηλαδή, στις κλάσεις που χρησιμοποιούμε την κλάση Scanner για είσοδο από το πληκτρολόγιο και κάνουμε import το πακέτο javautil: import javautil*; public class InputExample Scanner input = new Scanner(Systemin); θα μπορούσαμε ισοδύναμα να γράφαμε: public class InputExample javautilscanner input = new javautilscanner(systemin); Σε μια κλάση μπορεί να έχουμε και δήλωση πακέτου και import κάποιου πακέτου πχ package pack3test; // η κλάση ανήκει στο πακέτο pack3test import javaxswing*; // η κλάση χρησιμοποιεί το πακέτο javaxswing public class AskForData Η δήλωση πακέτου (package <packagename>;) είναι υποχρεωτικά η πρώτη εντολή της κλάσης 6

Επικοινωνία με το χρήστη - JOptionPane Παραθυρική διασύνδεση (μέσω διαλόγων (dialog boxes)) import javaxswing*; (πακέτο javaxswing) Χρήση της κλάσης JOptionPane του πακέτου Μέθοδοι: 1) showinputdialog εισαγωγή δεδομένων (input) 2) showmessagedialog εμφάνιση αποτελεσμάτων (output) 3) showconfirmdialog επιλογή περιπτώσεων (πχ, Yes/No/Cancel) 1) String s; s = JOptionPaneshowInputDialog(<μήνυμα>) πχ, String s = JOptionPaneshowInpurDialog( Δώσε την ηλικία σου ); (επιστρέφει την είσοδο σαν String Άρα, αν η είσοδος είναι νούμερο, πρέπει να το μετατρέψουμε: Πώς μετατρέπουμε String σε int και double? - Σε int: int age; age = IntegerparseInt(s); // s είναι το string που πήρε ο showinputdialog - Σε double: double age; age = DoubleparseDouble(s); 2) JOptionPaneshowMessageDialog(null,<μήνυμα>); 3) int i; i = JOptionPaneshowConfirmDialog(null,<μήνυμα>) επιστρέφει τιμή στο i ανάλογα με την επιλογή(yes/no/cancel): YES 0, NO 1, CANCEL 2 ή i=joptionpaneshowconfirmdialog(null,<μήνυμα>,<box_title>, x) όπου το x επιλέγει τον τύπο του παραθύρου και μπορεί να είναι 0, 1 ή 2, ως εξής: 0 YES/NO 1 YES/NO/CANCEL 2 OK/CANCEL 7