import java.io.*; public class Εrg1 {// 1 st ergastirio public static void main (String args[]) { System.out.println("My first lab"); }

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

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

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

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

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

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

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

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

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

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

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

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

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

Κατασκευαστές. Μέθοδοι Κατασκευής (Constructors).

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

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

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

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

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

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

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

32-bit signed υποδιαστολής) Double διπλής ακρίβειας 64-bit signed Char unicode character 16-bit Boolean Boolean true or false

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

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Περισσότερα για τις Κλάσεις, τα Αντικείμενα και τις Μεθόδους

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

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

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

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

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

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

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

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

Προγραµµατισµός JAVA. ρ Γεώργιος Μαυροµµάτης Πειραιάς 2004

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

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

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

Ν!=1*2*3* *(N-1) * N => N! = (Ν-1)! * N έτσι 55! = 54! * 55

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

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

Μέθοδοι. Μέθοδοι ηµιουργοί, Υπερφόρτωση και Υπέρβαση Μεθόδων

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

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

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

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

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

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

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

Κλάσεις και αντικείμενα #include <iostream.h<

Υπερφόρτωση (Overloading) Υπέρβαση (Overriding) - Upcasting Downcasting Final classes, methods

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

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

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές

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

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

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

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

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

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

Μονοδιάστατοι πίνακες Πολυδιάστατοι πίνακες Μέθοδοι Μέθοδοι Recursive Overloading

Δομές ελέγχου ροής προγράμματος

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

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

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

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

Πρόγραµµα 9.1 Πέρασµα δεδοµένων στην µνήµη

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

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

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

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

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

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

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

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

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

Wrapper Classes, Abstract Classes and Interfaces

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος

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

Εισαγωγή στη γλώσσα προγραμματισμού C++

Δομημένος Προγραμματισμός (ΤΛ1006)

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )

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

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Συλλογές, Στοίβες και Ουρές

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

Transcript:

οµή προγράµµατος <Εισαγωγή έτοιµων κλάσεων από βιβλιοθήκη> <Νέας κλάση> <Νέας κλάση>. π.χ. import java.io.*; αρχείο Εrg1.java Στο παράδειγμα οι δυο κλάσεις βρίσκονται σε ένα αρχείο (Εrg1.java) αλλά είναι καλύτερα κάθε κλάση να μπαίνει σε ξεχωριστό αρχείο : (UserInput.java, Εrg1.java) class UserInput { //Class gia eisagogi dedomenwn apo to pliktrologio public static String getstring() { //Methodos gia eisagogi String return "bye"; public static int getinteger() { //Methodos gia eisagogi Integer return 1; public class Εrg1 {// 1 st ergastirio public static void main (String args[]) { System.out.println("My first lab"); Κλάσεις με παρόμοια λειτουργικότητα, μέσα στο ίδιο directory,ομαδοποιούνται σε πακέτα π.χ. package erg01nbeans; Το πακέτο θα έχει το ίδιο όνομα με το directory που είναι οι κλάσεις του. Προσάρτηση άλλης κλάσης με: import <package>.<class> Σε κάθε πρόγραμμα θα πρέπει να υπάρχει το πολύ μια κλάση δηλωμένη σαν public (π.χ. Erg1) και η κλάση αυτή πρέπει να περιέχει την μέθοδο main όπου γράφεται το κύριο σώμα του προγράμματος public static int factorial (int num) { return 1; public static int fibonacci (int num) { return 1; static int create_num = 0; public static int mirror(int num) { return create_num; [1] ΕΑΡ 2015 Η κλάση που περιέχει την μέθοδο main είναι και η αφετηρία του προγράμματός μας, και το όνομα του προγράμματος θα είναι <το_όνομα_ της _κλάσης>.java δηλ. Εrg1.java Προσβασιμότητα public ορατή από παντού protected ορατή σε κλάση/υποκλάση private ορατή σε κλάση μόνο <τιποτα> ορατή στο τρέχον πακέτο Static context static μέθοδος δεν απαιτεί αντικείμενο της κλάσης static μεταβλητή: την μοιράζονται όλα τα αντικείμενα (δηλ. όλα έχουν την ίδια τιμή π.χ. το πλήθος αντικειμένων ).

Εκτέλεση προγράµµατος JAVA Μπορούµε να γράψουµε και να εκτελέσουµε το πρόγραµµα µε διάφορους τρόπους: Με ένα text editor και να το τρέξουµε σε παράθυρο DOS javac Εrg1.java //δηµιουργούνται οι κλάσεις UserInput.class, Εrg1.class java Εrg1 //εκτελείται το πρόγραµµα Mε το JCreator, compile και F5 Με το ΝetBeans, oπου δηµιουργείται project (Java Application) µε αρχικό αρχείο Main.java (περιέχει την κλάση Main µε public µέθοδο main άδεια). Εκτέλεση µε F6. ( ηµιουργούνται υποφάκελοι build, nbproject, test, src και κάτω από το src (source package) o υποφάκελος µε τα java αρχεία µας.) κ.α. Σε ένα αρχείο ορίζω ΜΙΑ ΝΕΑ ΚΛΑΣΗ (με τα πεδία/μεταβλητές της και τις μεθόδουςτης ) Κλάσεις/Αντικείµενα Mπορούµε να δηλώνουµε τις µεθόδους και τα πεδία µιας κλάσης µε όποια σειρά θέλουµε. Mπορούµε να τα χρησιµοποιήσουµε πριν τα δηλώσουµε. Συνιστάται όµως τα πεδία να τα βάζουµε στην αρχή της κλάσης για ευανάγνωστο κώδικα πχ. η κλάση βιβλίο: class Book { private String title ; public String gettitle() { return title; public void settitle(string title) { this.title=title; Σε γενικές γραµµές, Οι γνωστοί (access & mutator) μέθοδοι get και set οι µεταβλητές εντός µιας κλάσης πρέπει να δηλώνονται σαν private και οι µέθοδοι που θα καλούνται εκτός της κλάσης public. Ακόµα και εάν χρειάζεται να υπάρχει πρόσβαση στις µεταβλητές εκτός της κλάσης τους, καλό είναι αυτές να παραµένουν private και ο έλεγχος να γίνεται µέσω µιας µεθόδου που θα δηλώνεται public. [2] ΕΑΡ 2015

Oι κλάσεις 1 χρησιµοποιούνται σαν µήτρα για την κατασκευή πανοµοιότυπων αντιγράφων/ αντικειµένων που λέγονται και στιγµιότυπα (instances) της κλάσης αυτής. Τα αντικείµενα χρησιµοποιούν τα δεδοµένα/χαρακτηριστικά και τις µεθόδους για την επεξεργασία τους αλλά και την επικοινωνία τους µε άλλα αντικείµενα. Όταν θέλει κάποιος να ζητήσει κάτι από ένα αντικείµενο θα εκτελέσει την αντίστοιχη µέθοδο του αντικειµένου ως εξής. : <Αντικείµενο>.<Μέθοδος(λίστα_παραµέτρων)> π.χ. mycar.start(); οµή κλάσεων: class <όνοµα_κλάσης> { <data_type> <Μεταβλητές> < όνοµα_κλάσης> <Αντικείµενα> < όνοµα δοµητή (λίστα _παραµέτρων) > < Επιστρεφόµενος_τύπος> <Μέθοδος (λίστα _παραµέτρων) > < Επιστρεφόµενος_τύπος> <Μέθοδος (λίστα _παραµέτρων) > Δήλωση Μεταβλητών - μεταβλητές βασικών τύπων ή -μεταβλητές κάποιας κλάσης Δομητές Μέθοδοι Μεταβλητές : Μπορούν να περιέχουν τιµές των βασικών τύπων της Java, ή και αναφορές σε άλλα αντικείµενα. Οι µεταβλητές ανάλογα µε τον τρόπο δήλωσής τους χαρακτηρίζονται είτε σαν µεταβλητές αντικειµένου (instance variables), που δηλώνονται µόνο µε τον τύπο και το όνοµά τους (χωρίς τιµές), γιατί κάθε αντικείµενο της κλάσης έχει τις δικές του. είτε σαν µεταβλητές κλάσης 2 (class variables) που δηλώνονται µε τιµές και µε τον χαρακτηρισµό static, που σηµαίνει ότι όλα τα αντικείµενα της κλάσης θα έχουν ίδιες τιµές. Όταν η τιµή µιας µεταβλητής κλάσης αλλάξει, τότε η νέα τιµή θα ισχύει για όλα τα αντικείµενα. Constructors- οµητές: κάθε κλάση διαθέτει τουλάχιστον µια µέθοδο, που εκτελείται κατά την δηµιουργία ενός αντικειµένου της ώστε να γίνουν οι κατάλληλες αρχικοποιήσεις. Οι δοµητές ορίζονται όπως και οι απλές µέθοδοι αλλά έχουν ίδιο όνοµα µε την κλάση και δεν έχουν επιστρεφόµενο τύπο (ούτε void). class Book { private String title; // Book( ) { //default ή null constructor Book (String title, String auth, String isbn, String publish, short pno, short EE, float timi) { this.title=title; this.auth=auth //.. // 1 Περιεχόµενα: http://docs.oracle.com/javase/6/docs/api/index.html 2 Μεταβλητές: http://docs.oracle.com/javase/tutorial/java/javaoo/classvars.html [3] ΕΑΡ 2015

public String gettitle() { return title; Mπορούν να οριστούν πολλοί δοµητές που ξεχωρίζουν από τις παραµέτρους τους (αν δεν οριστεί, ή καλείται ο constructor της υπερκλάσης 3 ή δίνει µήνυµα λάθους). Η κατασκευή νέου αντικειµένου καλεί έναν από αυτούς π.χ. ως εξής: Book b; b= new Book("Titlos", "Author", "9605122839", "Publ", (short)151, (short)2012, 10.3f); ή κατευθείαν µε µια εντολή Book b = new Book(.); Υπερφόρτωση: όταν µια συνάρτηση χρησιµοποιείται πολλές φορές αλλά κάθε φορά µε διαφορετική λίστα παραµέτρων (παράδειγµα και οι δοµητές) : public static int seqsearch (Book[] f, String key) public static int seqsearch (Book[] f, int key) Mέθοδοι: ύο είναι οι τύποι των µεθόδων: Μέθοδοι κλάσης που δηλώνονται µε τη λέξη κλειδί static, πριν από τον τύπο και αυτό σηµαίνει ότι µπορούν να εκτελέσουν τις λειτουργίες τους χωρίς να έχει δηµιουργηθεί αντικείµενο της κλάσης. Μέθοδοι στιγµιότυπου όπου θα πρέπει πρώτα να δηµιουργηθεί ένα αντικείµενο της κλάσης για να την εκτελέσει. Μια µέθοδος µπορεί να επιστρέφει µια τιµή (που την υπολογίζει και είναι ίδιου τύπου, µε την της δήλωσης) χρησιµοποιώντας τη λέξη κλειδί return. Αν απλώς εκτελεί λειτουργίες και πράξεις χωρίς να επιστρέφει τιµή (αλλά τη ροή του προγράµµατος) τότε συντάσσεται µε τη λέξη κλειδί void πριν από τον τύπο. Tύποι δεδοµένων byte, short, int, long, float, double, char, boolean Τελεστές Αριθµητικοί: +, -, *, /, %, ^ Συσχετιστικοί: <=, <, >=, > Ισότητας:!=, == Λογικοί: &&,,! Aύξησης/Μείωσης ++, -- Αντικατάστασης +=, -=, *=, /=, %= 3 Όλες οι κλάσεις έχουν ένα default δοµητή, που δίνει µηδενικές τιµές στα πεδία µεταβλητές των αντικειµένων. [4] ΕΑΡ 2015

Συµβολοσειρές(String) Χαρακτήρες char c= A Οι συµβολοσειρές είναι ακολουθίες χαρακτήρων και είναι αντικείµενα της κλάσης String πχ String s = "Title" ; //ή String s =new String("Title") String s = "Title: "+" "+title; Η εµφάνιση των συµβολοσειρών γίνεται µε την µέθοδο println πχ System.out.println(s); Απλοί µέθοδοι στις συµβολοσειρές 4 s.length(); s2=s1.touppercase(); s2=s1.tolowercase(); s2.equals(s1); int a=s2.indexof(s1); s.charat(0) ; s.substring(1,3); Εντολές και οµές ελέγχου while (!correctisbn(isbn) ) { System.out.print("Lathos ISBN. Dwste neo ISBN: "); sbn=userinput.getstring(); do { displaysearchfieldmenu(); searchmethod = UserInput.getInteger(); while (searchmethod!=3); while ( ) { do { while ( ) if ( MyUtils.bookNo!= 0 ) if ( ) displaybook (b); { else { else System.out.println ("\MESSAGE") { System.out.println ("\nden yparxoyn kataxorimena stoixeia"); switch (searchmethod) { case 1: // case 2: // case 3: default: System.out.print("\n\tLathos epilogi methodou "); switch ( ) { case τιµη1 : <εντολές>.. case τιµην : <εντολές> default: <εντολές> 4 https://docs.oracle.com/javase/6/docs/api/java/lang/string.html for (..;..;..) { [5] ΕΑΡ 2015

for (int i=1; i<=10; i++) System.out.println(i); ΠΙΝΑΚΕΣ Παραδείγµατα δήλωσης Πίνακα int [ ] nums; Bοοk[] b; byte buff[ ]; float matrix[ ][ ]; // ισδιάστατος πίνακας A a [ ]; Στα παραπάνω παραδείγµατα βλέπουµε ότι ο πίνακας δεν δηµιουργείται κατά την δήλωσή του (αφού δεν προσδιορίσαµε τι µέγεθος θα έχει ). Παραδείγµατα δηµιουργίας Πίνακα int[ ] Κ; Κ = new int[200]; Bοοk[ ] b = new Book[10]; byte buff[ ] = new byte[1024]; float matrix[ ][ ] = new float[29][40]; A a[ ] = new A[4]; Αναφορά σε στοιχείο του πίνακα: a[2] = 5; matrix[0][8] = (float) (buff[19] + buff[25]); for (int i=0; i<myutils.bookno; i++){ System.out.println( b[i] ); Όταν ένας πίνακας είναι µεγέθους Ν τότε τα έγκυρα indexes θα είναι από 0 έως Ν-1. Κάθε άλλη τιµή θα προκαλέσει compile-time ή run-time error. Random Tιµές: Μath.random(); ίνει δεκαδικούς από το [0..1) returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. Παραδείγµατα (int)μath.random(); ίνει µόνο τo 0 (int)(μath.random()*3); ίνει 0,1,2 50+(int)(Μath.random()*10); ίνει ακεραίους [50..59] 50+(Μath.random()*10); ίνει δεκαδικούς [50..60) 2 δεκαδικά ψηφία double x =57.278945; System.out.println ( String.format("%.2f", x) ); //φορµάρισµα ή µε double d = (double)math.round(x* 100) / 100 ; //στρογγυλοποίηση ή µε [6] ΕΑΡ 2015

import java.text.decimalformat; DecimalFormat df = new DecimalFormat("#0.##"); //µε pattern= "#0.##" String format = df.format(x); System.out.println("x:"+format); [7] ΕΑΡ 2015