Java Lecture1 OVR

13
1 Προγραμματισμός ΙΙ Java 2 Εισαγωγή στη Java 2 ∆ρ. . Ιακωβίδης Τι Θα Μελετήσουμε Ιστορικά στοιχεία Πλεονεκτήματα / μειονεκτήματα Παραδείγματα εφαρμογών ∆ημιουργία κι εκτέλεση μιας εφαρμογής και μιας μικροεφαρμογής Τα εργαλεία που μας προσφέρονται για τον προγραμματισμό σε Java

description

java

Transcript of Java Lecture1 OVR

Page 1: Java Lecture1 OVR

1

Προγραµµατισµός ΙΙJava 2

Εισαγωγή στη Java 2

∆ρ. ∆. Ιακωβίδης

Τι Θα Μελετήσουµε

Ιστορικά στοιχεία

Πλεονεκτήµατα / µειονεκτήµατα

Παραδείγµατα εφαρµογών

∆ηµιουργία κι εκτέλεση µιας εφαρµογής και µιας µικροεφαρµογής

Τα εργαλεία που µας προσφέρονται για τον προγραµµατισµό σε Java

Page 2: Java Lecture1 OVR

2

∆ρ. ∆. Ιακωβίδης

Ιστορικά Στοιχεία

Sun Microsystems Έργο Green: Λογισµικό για έλεγχο ηλεκτρικών συσκευώνΤηλεκοντρόλ Star7O James Gosling τα πήρε µε τη C++ κι ανέπτυξε τη Java !!!Την ονόµασε Oak αρχικά αλλά υπήρχε ήδη αυτό το όνοµα και την ονόµασαν Java

∆ρ. ∆. Ιακωβίδης

Πλεονεκτήµατα

ΑντικειµενοστραφήςΚατάλληλη για τον Παγκόσµιο ΙστόΜικρή: γρήγορο φόρτωµα στη σελίδαΑσφαλής: Hacking Μεταφερτή: εκτελείται απ’ όλες τις πλατφόρµες υπολογιστών χωρίς τροποποίηση

Μαθαίνεται εύκολαΣαν απλούστερη C αλλά χωρίς δείκτες κτλ !

Γρήγορη ανάπτυξη προγραµµάτωνΠολύ εύκολη η ανάπτυξη δικτυακών εφαρµογών

∆ιανέµεται δωρεάν

Page 3: Java Lecture1 OVR

3

∆ρ. ∆. Ιακωβίδης

Μειονεκτήµατα

Όχι πολύ γρήγορη (βλ. εργασία Java vs C++)

Χρειάζεται εγκατάσταση µεταφραστή Java (runtime) πριν τρέξει οτιδήποτε !

∆ρ. ∆. Ιακωβίδης

Παραδείγµατα Εφαρµογών

Έλεγχος και παρακολούθηση του Hubble

Star Οffice 5.2

Προσοµοιωτής αποστολής του Mars Pathfidner µέσω παγκόσµιου ιστού

Page 4: Java Lecture1 OVR

4

∆ρ. ∆. Ιακωβίδης

Στα Βαθιά

Πακέτα (packets)

∆ηµιουργία εφαρµογής (application)

∆ηµιουργία µικροεφαρµογής(applet)

∆ρ. ∆. Ιακωβίδης

Πακέτα

Βιβλιοθήκες κλάσεωνΑναφορά: java.πακέτο.ΚλάσηΑν θέλουµε να χρησιµοποιήσουµε µια κλάση γράφουµε:π.χ. import java.awt.graphicsόπως και στη C γράφουµε include <graphics.h>

Αυτόµατα (χωρίς να γράψουµε import) εννοείται πως χρησιµοποιούµε το πακέτο java.lang

Page 5: Java Lecture1 OVR

5

∆ρ. ∆. Ιακωβίδης

∆ηµιουργία Εφαρµογής

class Jabberwock String color;String sex;boolean hungry;

void feedJabberwock() if (hungry == true)

System.out.println("Yum -- a peasant!");hungry = false;

elseSystem.out.println("No, thanks -- already

ate.");

∆ρ. ∆. Ιακωβίδης

∆ηµιουργία Εφαρµογής

void showAttributes() System.out.println("This is a " + sex + " " + color + "

jabberwock.");if (hungry == true)

System.out.println("The jabberwock is hungry.");else

System.out.println("The jabberwock is full.");

Page 6: Java Lecture1 OVR

6

∆ρ. ∆. Ιακωβίδης

∆ηµιουργία Εφαρµογήςpublic static void main (String arguments[])

Jabberwock j = new Jabberwock();j.color = "orange"; j.sex = "male"; j.hungry =

true;System.out.println("Calling showAttributes ...");j.showAttributes();System.out.println("-----");System.out.println("Feeding the jabberwock ...");j.feedJabberwock();System.out.println("-----");System.out.println("Calling showAttributes ...");j.showAttributes();System.out.println("-----");System.out.println("Feeding the jabberwock ...");j.feedJabberwock();

∆ρ. ∆. Ιακωβίδης

Εκτέλεση Εφαρµογής

Πηγαίος κώδικας σε ASCII (απλό κείµενο)Μεταγλώττιση (compilation)του πηγαίου κώδικα

Κώδικας byte (Bytecode)Ενδιάµεση µορφή κώδικαπ.χ. ΑΑ 5Β 23 FF

Μετάφραση (interpretation)από Java runtime engineτου Bytecode από µεταφραστή εγκατεστηµένο στον ίδιο ή άλλο υπολογιστή

Page 7: Java Lecture1 OVR

7

∆ρ. ∆. Ιακωβίδης

Εκτέλεση Εφαρµογής

Γράφω τον πηγαίο κώδικα σε έναν κειµενογράφο π.χ. στο NOTEPADαποθηκεύω ως “my.java”

Μεταγλωττίζω “javac my.java”

Κώδικας byte “my.class”

Μεταφράζω “java my”

∆ρ. ∆. Ιακωβίδης

Η Πρώτη Μας Φορά !JDK 1.2 Sun MicrosystemsΠρόβληµα 1:

class not found !!!Exception in thread "main" java.lang.NoClassDefFoundError: HelloDanΣτο C:\autoexec.bat προσθέτω µε το NOTEPAD... SET PATH C:\JDK1.2\BinSET CLASSPATH=.;C:\JDK1.2\Lib\tools.jar

Πρόβληµα 2:∆εν τρέχει το my.class αν και γράφω java MyΕυαισθησία στα µικρά-κεφαλαία γράµµατα άρα java my

Πρόβληµα 3:To .class αρχείο ονοµάζεται από τη µόνη ή την κλάση public που περιέχει

Page 8: Java Lecture1 OVR

8

∆ρ. ∆. Ιακωβίδης

∆ηµιουργία Μικροεφαρµογής

import java.awt.Graphics;import java.awt.Font;import java.awt.Color;

public class Palindrome extends java.applet.Applet Font f = new Font("TimesRoman", Font.BOLD, 36);

public void paint(Graphics screen) screen.setFont(f);screen.setColor(Color.red);screen.drawString("Go hang a salami, I'm a lasagna hog.", 5,

40);

∆ρ. ∆. Ιακωβίδης

Εκτέλεση Μικροεφαρµογής

Σε ένα απλό αρχείο κειµένου ASCII γράφουµε ή συµπληρώνουµε τον παρακάτω κώδικα HTML και αποθηκεύουµε µε κατάληξη .html

<APPLET CODE="Palindrome.class" WIDTH=600 HEIGHT=100></APPLET>

Τρόπος 1: Το ανοίγουµε από τον Web BrowserΤρόπος 2: Γράφουµε appletviewer Palindrome.html

Page 9: Java Lecture1 OVR

9

∆ρ. ∆. Ιακωβίδης

Τα Εργαλεία του JDK

Μεταγλωττιστής javac (compiler)Μεταγλωττίζει τα .java αρχεία πηγαίου κώδικα JavaΈνα .java αρχείο µπορεί να έχει πολλές κλάσεις. Μία όµως είναι public (ή απλά διαθέτει public main).Το .java αρχείο πρέπει να ονοµατίζεται πάντα µε το ίδιο όνοµα που έχει η public κλάση∆έχεται javac *.java∆έχεται javac prog1.java prog2.javaΑναλυτική µεταγλώττιση javac -verbose prog.javaΒελτιστοποίηση ταχύτητας javac -Ο prog.javaΓια άλλες παραµέτρους εκτελέστε javac (σκέτο)

∆ρ. ∆. Ιακωβίδης

Τα Εργαλεία του JDK

Εξεταστής appletviewerΕκτέλεση: appletviewer prog.javaΤο µέγεθος του παραθύρου καθορίζεται από τον κώδικα HTMLΣτο µενού Applet υπάρχουν επιλογές

για την εκτέλεση της µικροεφαρµογής (π.χ. Restart, Stop), πληροφορίες σχετικά µε τις µεταβλητές που περνιούνται σε αυτή (Info)πληροφορίες σχετικά µε το πως κλήθηκε η µικροεφαρµογή(Tag)εκτύπωση

Page 10: Java Lecture1 OVR

10

∆ρ. ∆. Ιακωβίδης

Τα Εργαλεία του JDK

Η Αρχειοθήκη της Java: jar∆ηµιουργεί αρχειοθήκες όπου µπορεί να στοιβάξει κανείς πολλά αρχεία σε ένα ή και να τα συµπιέσειΛειτουργεί όπως και το tar στο Unix∆ηµιουργία

π.χ. jar cvf myfile.jar *.class my.gif

Εξαγωγή όλων των αρχείωνπ.χ. jar xvf myfile.jar

Είναι σαν το zipΗ Java µπορεί να χρησιµοποιήσει και zip και jar αρχεία προσδιορίζοντας τι θέλουµε µέσα από εκεί

∆ρ. ∆. Ιακωβίδης

Άλλα Εργαλεία του JDK

Αποσφαλµατωτής jdb (debugger)javadoc για δηµιουργία βοήθειας από σχόλιαJavabeans IDEΓραφικό περιβάλλον αλα Visual C++

Άλλα µικροεργαλεία

Απαραίτητο το Java 2 Help (downloading)

Page 11: Java Lecture1 OVR

11

∆ρ. ∆. Ιακωβίδης

Java 2 Help

∆ρ. ∆. Ιακωβίδης

Οργάνωση της Πλατφόρµας Java 2

Page 12: Java Lecture1 OVR

12

∆ρ. ∆. Ιακωβίδης

Java Beans IDE

∆ρ. ∆. Ιακωβίδης

Υλικό

Ότι έχει σχέση µε Javahttp://java.sun.com

Το πακέτο του JDKhttp://java.sun.com/j2se/1.4.2/download.html

To API της Javahttp://java.sun.com/j2se/1.4.2/docs/api/

Page 13: Java Lecture1 OVR

13

∆ρ. ∆. Ιακωβίδης

Συµπεράσµατα

Η Java είναι η τελευταία εξέλιξη στο χώρο των γλωσσών προγραµµατισµούΤην επιλέγουµε για τη µεταφερσιµότητα που προσφέρει∆εν την επιλέγουµε για την ταχύτητα εκτέλεσης που προσφέρειΜας επιτρέπει εύκολα να αναπτύσσουµε εύκολα γραφικές και δικτυακές εφαρµογέςΜας προσφέρει πολλά προγραµµατιστικά εργαλεία και µάλιστα ∆ΩΡΕΑΝ !