Lectures 1 6

150
-1

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
150
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lectures 1 6

  1. 1. 1 α π ά ε η1 π Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 1
  2. 2. α    π π π α. α α υ π π π ά ε η1 φα α α χ α π α α αφ α φα α υα α α υα α υ, α α α . α υ π αφ α α α α α φ α α α α α ( χ π.χ. J2εE, Android) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α
  3. 3. απ  υ π απ α α υ α α α αυ π π υπ α cloud υπ . χ υ α α χ π α α υπ α π φ . υ α α απ α απ 3 π υ υπ υ α α:    ά ε η1 π π υ απ υ , πα υ α φ α αφ χ (Points of Interest - POI). πα υ α α α υπ . πα υ α α α υ Android. Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α αχ αφ α υ
  4. 4. χ υ α Data storage Web server R1 R3 R2 AP2 AP3 UE1 L1 UE2 ά ε η1 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 D1 D2
  5. 5.   χ χ π α α π υ α υφ  Java SDK  Web Services  Android SDK απα  IP Addressing  Linux ά ε η1 α α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α
  6. 6. α     α  α πα α ( – π ). πα αυ (1/3) π απ α α α 3 α 20-01-2014, 10-02-2014, 10-03-2014 α π πα π υ α χ α ο α υ αφ Θα π π α π α α υ π α α α υ π απο υχ Η α ο ο α α π ου α χ α . ά ε η1 α , αα α α απ α υ α υ οπο α α α π π α π π ω ω α α α ο π ο απ φα ο ο α απ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α α α . αφ α
  7. 7. α  α – π α α α α α υ υπ υ α υ  Γα π υ απ π α α α α α . ά ε η1 α πα (2/3) α α α πα α . α υ α αφ . π υ απ α απ α α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α υ α
  8. 8. α  2   α – α α α: 11:00-14:00 – 17:00-20:00 – 1 φ  αφ α α α α  Η πα υ α α α ( υ χ 1 απ  3 απ υ ά ε η1 (3/3) = απ α υχ α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α) α eclass α απα α
  9. 9. α      α Η α α α :  0.3*1 πα α + 0.2*2 πα α + 0.35*3 πα α + 0.15* υ υ π υχ α π α (α π α, α π) α αυ α α α απ υχ α α. πα α αυ χ απ υ α φ υ α π . Θα απ , α π . υ χ αυ α χ υ π χ υ . Η απ α α α pass/fail. π υχ α α υ υ α α α υ α α . ά ε η1 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 αφ
  10. 10. α    α α (1/2) 17/12 π ωΐ:   Introduction, assignment presentation etc Java Programming – Basic classes  JDBC, Swing, π   JDBC, Swing, π α Brainstorming & Questions on Exercise 1  17/12 απ υ α: Java Programming – Inheritance - Threads 07/01: Web Services, SOAP Web Services ( ), J2SE Web Services, πα α 14/01 π ωΐ:  14/01 απ   20/01: Exercise 1 delivery 21/01: Examination of 1st Exercise ά ε η1 α α πα α α πα α υ α: Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014
  11. 11. α          α α (2/2) 28/01: Android 04/02: Brainstorming & Questions on Exercise 2 10/02: Exercise 2 Delivery 11/02: Examination of 2nd Exercise 18/02: Android 25/02: Android 04/03: Brainstorming & Questions on Exercise 3 10/03: Exercise 3 Delivery 11/03: Examination of 3rd Exercise ά ε η1 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014
  12. 12. π    α e-class mailing list υ α α  info-k23b[at]di.uoa.gr  αφ MONO @di.uoa.gr email α υ  α    Γ ά ε η1 : π α Χα α α π υ (roiar@di.uoa.gr) (kchatzi@di.uoa.gr) α (kdimtsa@di.uoa.gr) (gbeinas@di.uoa.gr) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014
  13. 13. 2 υ Χ α α Java αφ π α α α α α παφ , φ α α α α αυ π ά ε η2 α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 1
  14. 14.   α Java αφ π α υ α Χ  α  παφ , φ  α α α α  α αυ π ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 2
  15. 15. Η     α Java (1/2) Η Java απ αυ ππ υ π α α . απ π υ α φ , α α ,α ... απ α α Java α α α. α α α α α υ απ   ά ε η2 α : α .java α α α java compiler α π υ bytecodes. : Java Virtual Machine (JVM) π α α α . Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α υ : υ , .java α java α α α .class απ α bytecodes α 3
  16. 16. Η   α Java (2/2) Η Java VM:   α π π α απ π π Η Java υ (Java API)) υ π υ .class α . απ υ α π α π . α, π α α απ Java VM, α πα α α (Java Application Programming Interface α π υ πα α φα α . MyClass.java Java API Java Virtual Machine Java Platform Operating System ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 4
  17. 17.   α Java αφ π α υ α Χ  α  παφ , φ  α α α α  α αυ π ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 5
  18. 18. π  α α α α      ά ε η2 α φ π υ α αα υ . π α Ό α α ο ο π α  α α υ απ α α α ο υ ο φ υ π α υ φ .  α α π α (inheritance): α α α α υ. α υ ά ω α παφ . α υ α αα υ α : υ υ α υ (polymorphism): Η αφ π απ (encapsulation): Η απ υ α π π α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α π υ υ υ α α απ α 6
  19. 19. Java     α α αφ π α α αα α : Η              ά ε η2 public MyClass{} α public απ α MyClass.java α π α α public α /π α: υ : π α α α private/protected α (inner class). π α α α public: π α απ υ . protected: π α απ α package-private: π α απ private: π α απ α static: α α αα α α final: α π α αφ α α : π υφ α α α υπ υ . . , π α α . υ πα υ. υ . . υ α α απ α MyClass myObject = new MyClass(); new  α υ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υπ α α . myObject. 7
  20. 20. α α Η    Η α α α α Constructors:     α υ numberOfBicycles? this? υ φ <Access Modifier> class <Class Name> { // field, constructor, and // method declarations }   υ static π α α Η π π υ α α α π υ α υ α αφ π υ υ υ α α α . α υ υ υ α α υ. αυ π υ υ α α α φ υ α υ . α α, α α π υ constructors α α , α πα α . α α, Java α πα default no-argument constructor. α α  Η   α α απ α α . Method overloading υ α υ φ : <Access Modifier> <field type> <field name> α α υ φ <Access Modifier> <return type> <method name> (<argument list>) <exception list>{ //body } ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 8
  21. 21. υπ υ     Η Java VM . Η Bicycle π αυ απ π α . Γα υ α α      απ π α α αυ , Ω α α Φ υ π υ π υ . ά ε η2   α υ π + υ α π απ α φα απ ω α α ε ω α Α χ οπο ή ω α α α α ? System.out.println()? φα ε π α απ π α : objectName.fieldName π απ π α α π υ ...Bicycle αυ αυ ( απ υ υ ,α main. Γ απ α α π main α υ constructor ( α: new) ) υ α α public π α private π α : α α α υ υ α objectName.fieldGetter() / objectName.fieldSetter() α Η Java α α απ απ π . υ π π α υ φα α α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α υ. υ αα α υ α , απ π α . Java runtime environment αα α π α α garbage collection. 9 α
  22. 22. public static void main(String[] args)  Η main π α         ά ε η2 α α . απα public: static: void: π φ String[] args: α υ . α φα α υ π α . α α α πα α α αα αυ α α α π α α απ α απ α υ Integer.parseInt() Double.parseDouble() Γα π α java.lang πα Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α . . υ υ Java API 10
  23. 23. static  Ω static π   static π     υ π α α υ α α α π απ υα υ α αα α α α π αα π α αφ α α π υ π α α . π α α π υ α α αα Ηπ π α static π υ α υ α π υα υ: <class name>.<static field name>. . α α. α static       ά ε η2 α π π α π υα απ π υ υ α static π α α αα α α . π . π Η α π H main α α α static π υα υ static α υ . υ υ α υ: <class name>.<static method name>. α α αφ α this & super keywords. α static α α π α α π α α υ α π υα Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 απ υ. π 11
  24. 24. this  Η α υ this α αφ α  this.<field name>  α this.<constructor>    ά ε η2 α π υ υ(  α , constructor) απ π υ α α απ α constructor α α π υ α α α obj.itIsMe(this); Γα α π υ α MyClass getInstance() {return this;} Γα α π  απ constructor π α α (explicit constructor invocation). Γα α   π π α πα α π υ α α α υ υ υ α Class className = this.getClass(); Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 12
  25. 25. π   α Η Java υπ         8 primitive data types byte: 8-bit α α short: 16-bit α α int: 32-bit α α long: 64-bit α α float: 32-bit α double: 64-bit α char: 16-bit α α α (υπ boolean: (true/false) Η Java πα    ά ε η2 α α α  =  +, -, *. /, %  α α ++, --, ! υ υ Unicode) α        α α υ == , != , >, >=, <,<= α υ &&, || πoυ objectName instanceof MyClass υ α α object α υ υ π υ( π φ true/false) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 13
  26. 26. υ      Η Java  α πα α υ: If-then-else, switch, for, while, break, continue, return; if (condition) { … } / if (condition) { … } else { … }  !! condition υ απ C, α α α α α π υ boolean α πα α α 0 α υ true false. if α απ α αυ α π υ α α , switch (expression){ case value1: …; break; …. default: …; }  expression π α α α α , String enumerated type while(condition){}   υ α while(true){…} υ α infinite loop χ while(1){…} πως χ ε ην C for(initialization; termination; increment){}  ά ε η2 π π π υ α υ arrays Collections, α α υ int[] numbers = {1,2,3,4,5,6,7,8,9,10}; for (int item : numbers) { System.out.println("Count is: " + item); } Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α υ α α υ for loop 14
  27. 27. α        π α α α απ α Ηα Η α    αα υ π α π α α π υ αφ α υ α α π π υ α υ π υ [] α απ υ α 0. υ υ int[] myArray π α α α new π α α α υ int[] myArray = new int[10] α α int[] myArray= {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000} α   ά ε η2 (1/2) π π π π α α π α π υ π α απ υ primitive types υπ α α α α Java, υ . π α α απ π α MyObject[] myArray = new MyObject[10]; myArray[0] = new MyObject(); Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 15
  28. 28. α  π (2/2) υ α π α 2π α α π α Java αφ υ απ υ α υ C.     απ  Η υ απ  ά ε η2 Java α π α π υφ υ α α . α φ π α α names π α α newNames. String[][] newNames = names; α (references).    α  α String[][] names = {{Οεr.Π, Οεrs.Π, Οεs.Π}, {ΟSmithΠ, ΟJonesΠ}}; names[0][0] = Οεr.Π; Η πα α   . α απ names, arraycopy α π α α α υ newNames System α α . π π αα υ System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) !Η αυ deep-copy α υ α α α α α απ α υ π υ υπ α α α υ α Collections. α π α α α απ built-in property length. myArray.length, names[0].length Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 16
  29. 29. α ά ε η2 α υπ α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 π α α α ? System.gc()? 17
  30. 30.   α Java αφ π α υ α Χ  α  παφ , φ  α α α α  α αυ π ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 18
  31. 31. Number    H Java α Number π α αυ value αα π π π υ α α primitive:     . π α α α υπ primitive type. υ wrap α π α primitive data Number object α α α υ π υπ υ π object Γα α π υ maximum α minimum values π Integer.MAX_VALUE, Integer.MIN_VALUE. Γα α π υ απ α π string ( υ υ π υ απ ά ε η2 α α α α data types atoi()!!) α υ : java.lang.Math Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 19
  32. 32. String      H Java α πα υ α α υ α String α    Η α Χ        ά ε η2 String α. α α String greeting = ΟHello world!Π; String greeting = new String(ΟHello world!Π); .. α α 11 constructor α α υ String υ α α immutable, αυ υ π ... αα α α αα π . α π υ String α String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); String name = "εy name is Ο.concat("Rumplestiltskin"); υ string π υ α υ α +( υ υ α πα α System.out.println) char character = ΟhelloΠ.charAt(0); ΟhelloΠ.equals(Οhello Π); α π α string α α Number α String String to Number  <NumberSubclass>.parseXXXX π Float.parsefFoat(myString) Number to String  String str = 1+ΠΠ; String str = String.valueOf(1); String str = Integer.toString(1) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 20
  33. 33. Java.lang.System     α α Χ        ά ε η2 υπ α α π υ α α α πα Java API απ static υ π υ αφ α α α π System. α. α in:"standard" input stream out:"standard" output stream err :"standard" error output stream. currentTimeMillis(): π φ α υ π α π υ π α α απ 1/1/1970. gc(): α π garbage collector. exit(int code): α υπ α α π φ α α run time π . arraycopy(Object src, int srcPos, Object dest, int destPos, int length): α αφ π . Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α 21
  34. 34.   α Java αφ π α υ α Χ  α  παφ , φ  α α α α  α αυ π ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 22
  35. 35. α  Java υ α α π α α α π . SuperClass/ParentClass/BaseClass απ α α extends SubClass/ChildClass/ExtendedClass      H Object (java.lang.Object) α super class . α π α Α . π υυ π α π α α υπ Object. π α α α π υπ α απ υ ππ α α α α α υ α. extends: SubClass extends SuperClass ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 , υ α α 23
  36. 36. α ά ε η2 α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 24
  37. 37. Χα α           α α υπ φ υ constructors α π υπ π υπ π π υπ π α α ), α , π απ α α π α υπ direct access α α απ α π . α υ ππ π α α υπ π υ α . α α υπ υ π α α απ α υ α π υ υπ (hiding) . α υ α υπ α απ αυ υπ π υ . φα α . α υ υ υπ (method overriding). π α α super. π α υ α static υπ static υπ α α απ constructor α υπ π α α α super. ά ε η2 (π α, υ , α public α protected . α π α υπ . α π π π Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α υπ υ αυ αφ αυ υπ α υπ αφ υ (hiding). constructor υπ α 25
  38. 38. α α π α υπ υα α α π α α α α ? αφ ? Method hiding Method overriding Η Η The class method in Animal. The instance method in Cat. The instance method in Dog. ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 26
  39. 39. super    π υ π Χ π super π υ α π υ υ override, α α υ α α constructor. Class ParentClass { void methodA() {…} } Class ChildClass extends ParentCLass { void methodA(){ super.methodA(); ….} } Χ     ά ε η2 super α constructors Η super(<argument list>); α π απ . π α α απ π α α α super. To run time π α α non-argument constructor (default constructor). π αα υ constructors απ πα αφ υ υ Object constructor (constructor chaining). α α α α α απ Object π α . Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 27
  40. 40. Type casting   α Ω type casting α α π    α πα υ α π π υ α . υ απ . Type casting reference υ υ π υα υ. Upcasting: α υ αα α Child α reference π υ Parent, π υ Child extends Parent. π π αυ , π α α υ ππ υ α π απ υ α Child α Parent. π α α υ overridden methods Child!! Downcasting: α υ αα Parent α reference π υ Child. αυ π π α α υπ compile-time error α α α α. Η α Parent obj = new Child(); Child child = (Child) obj; ά ε η2 α υ Parent obj = new Child(); if(obj instanceof Child) Child child = (Child) obj Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014
  41. 41. Object    α Η π απ αυ    ά ε η2 π υ Java. αυ π α α απ α: equals(): π α υ . α π φ υφ υ π α φ π υ α α α α αα υ override α . α Object π υ α α α π false α αα υ α α α υ α α override αυ π α α α α α α υ α α α. getClass(): α α runtime representation α α αα α υ π φ π . myObject.getClass().getName() toString(): α πα α string α α απα υ υ override α α πα υ υ π α α π . α true Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υ π α α ( α υ ). π υα object. α π α. α αυ , α
  42. 42. toString() α α υπ υ π φ α υ Constructors α private π getters α setters α α equals() α α υ υ υ α α Is std1 equal with std2: false Student id: 123 Student name: Maria Student surname: Papadopoulou Student id: 456 Student name: Dimitris Student surname: Nikolaou
  43. 43.   α Java αφ π α υ α Χ  α  παφ , φ  α α α α  α αυ π ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 31
  44. 44. παφ         π (Interfaces) π υ υ α υ φ υ α α α α π α π α α α α υ υ π ! α interfaces α πα υ αυ υ α α. Java α interface απ α reference type, πα α , α π α (static & final α ) α . υ π α Α Α . π α υ υ α α απ interfaces. Έ α interface π α implement απ α extend απ α interface. α π α implement πα απ απ α interfaces ( α α, π υ π α extend α ). Ό α υ implement α interface, π π α υ α α υ π υ α. : interface, implements ά ε η2 υ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 32
  45. 45. υ implements extends ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 33
  46. 46. φ  π (Abstract) υ υ π α ). π abstract υ (π υ public abstract class MyAbstractClass { // declare fields // declare non-abstract methods abstract void abstractMethod();     } α abstract π α extend α αυ π υ . α interfaces, abstract classes π υ π α non static α final, α πα υ υ π α π απ υ υ . π υ υπ υ α α α αφ υ π α α π υ extend υ α α υ π υ . α abstract π υπ abstract υ α α α interface. ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 34
  47. 47.   α Java αφ π α υ α Χ  α  παφ , φ  α α α α  α αυ π ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 35
  48. 48. α       α (Packages) package υ α π υ αφ α interfaces α α . Java API πα α α π πα α (java.lang, java.util...) α α απ πα  υ φ α α π .  Modularity..  υπ υ Δ υ Ε α α , α package υ namespace.  π π υ α απ α α package α π υ π α απ αυ . :package α α α :  α package α  α π υ α α package α φ υ α υ Internet domain υ π. package gr.uoa.di υ α α αφ α α π υ πα υ φ υ import gr.uoa.di.* ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 36
  49. 49.    α (Scope) Η Java α πα α απ access modifiers υ α απ υ α α α α π / α α . Η α πα π α α . α        ά ε η2 α ,α υπ private) απ π α α απ υ π α (Φ public α πα π υ modifier, α α α υπ α. αυ υ α απ default (packageπα . υ α αυ private: package-private: α πα υ π α π protected:π α αυ πα α π υ public: ,α α αυ . π α α α) α α . υ π α , (α υ π πα Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υ, π π υα αυ . υ π υα υ πα υ) α π 37
  50. 50.   α Java αφ π α υ α Χ  α  παφ , φ  α α α α  α αυ π ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 38
  51. 51. π  υ  αφ , α πα α        ά ε η2 α α α: Java Development Kit (JDK): http://www.oracle.com/technetwork/java/javase/downloads Έ α φ α IDE:  Notepad, Textpad, WordPad  Eclipse, Netbeans α  JAVA_HOME: C:jdk1.7.0_21bin  PATH: C:jdk1.7.0_21bin  CLASSPATH: C:jdk1.7.0_21jrelib α π α υ CLASSPATH π α α . α α απ α javac Νcp path_to_libraries;path_to_classes Νsourcepath path_to_sources java Νcp path_to_libraries;path_to_classes MainClass arg1 arg2 … argn π Linux α α α α :α α; Windows. Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 39
  52. 52. α      α α javac.exe srcgruoaPrinterClass.java -d classes javac.exe -cp classes srcgruoadiFirstClass.java -d classes  java -cp classes/ gr.uoa.di.FirstClass "Hello World"  Hello World π ά ε η2 α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 40
  53. 53. Αναφο έ  Javadoc  Oracle tutorial   ά ε η2 http://download.oracle.com/javase/7/docs/api/ http://docs.oracle.com/javase/tutorial/index.html Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 41
  54. 54. 3 Ν α α (Threads) η Java Συγχ ό ω γα Collections & Generics αχ η φα ω η Java ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 1
  55. 55.    υ α α (Threads) α  Collections & Generics  α φα ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 Java Java 2
  56. 56. α     α υπ α α α φα απ υ υ α απ α (concurrent programming). υ υ α (processes) α α α α (threads). α       ά ε η3 π α α αφ απ αυ φα Δα α α υ π υ α υ υ α υπ πα π α (Inter Process Communication- PC resources) υπ (π pipes, socketsΖ). αΕ α CPU , α υ memory space. α π α α α α π α α α α lightweight processes. α υ α αυ α π υ υ α thread απα υ π υ α υ απ υ α. α α α α α α α α. υ α, α α α π α υ α π α α α α π tasks Δ αυ αΕ. α α α α π υ α α π υ α υ π ,α α π α α υ α υ address space. α α π π α CPU α threads α α (context switching) α . Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 3
  57. 57.   α α α H Java α πα   α α Java (1/2) υ υ υ π υ extend implement α υ α Thread (java.lang.Thread) Runnable interface (java.lang.Runnable) Extends Thread    ά ε η3 α π α extend π α α α α implement Runnable Interface) O constructor αυ π super(). α απ αα π Τ Thread α α thread. ( α α α start() π υ α αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 override υ π constructor α run() Thread Thread Thread α υ α thread. 4
  58. 58.  α α α Java (2/2) Implements Runnable    α π α implement interface Runnable α α αφ run() π υ α thread. Α , αα π υ Thread υ α α υπ α constructor υ α α απ π υ υ α α implement Runnable. start() υ α υ π υ Thread α α α π φ thread υ α α implement ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α threads π υ υ Runnable interface α α Thread Class: 1. Α oυ extend Thread, π α υ extend α α 2. To Runnable interface α υπα α υ implement α ( run) α απ φ υ α 5 υ extra overhead Thread.
  59. 59. thread      Start: α α α π α υ αα π υ Thread α π α υ start() Runnable (Ready-to-run): α π υ α α start() α απ thread. αυ α α π π α CPU. Α , αυ α α π α απ υ απ non-runnable α running Running: αυ α α thread α. scheduler π α απ runnable pool. Dead: thread αυ α α πα α α α join απ α απ υ . Non-runnable state: • K static: void sleep(long millisecond) throws InterruptedException • notification απ thread: final void wait() throws InterruptedException • To thread π α I/O π υ • α υ thread α α α (joint completion) • α lock π π . ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 6
  60. 60. Static α α π υ υπ υ thread π υ α υ απ υ α πα υ run thread To α π π π υ interrupt απ π thread thread H main απ α α απ α thread α π α α threadMessage ά ε η4 υ t α α π υ Thread α πα thread π υ α
  61. 61.    υ α α (Threads) α  Collections & Generics  α φα ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 Java Java 8
  62. 62. υ  α αα υ threads α α υ π α π α α. α π υ π α α α απ αυ start() thread1 thread2 Shared object  Java π  π ά ε η3 α πα α π α υ. π π π α π α deadlocks α starvation. Τ υ ,α α απ υ α α απ φυ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υ υ α α 9
  63. 63. υ α υ synchronized υ φ α α α π α synchronized υα π α π α π α υπ π synchronized υ α υ synchronized α α intrinsic lock π υ α α υ π ά ε η3 Τ π α απα α υ α π υ π αΠ η φ α Τη επ α ω Α άπ υ η Λ γ αά2η 2013-2014 α α Χε ε π υ α α π φα α π α α α α α π α π υ, υ . πα α α π t υ υ α απ υ α απ υ. απ αυ starvation, α α α synchronized BLOCKED α . α π α υ. α α
  64. 64. υ α block π π statements π π π α π Fine-grained υ α α π υ α α υ ά ε η3 Τ α αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 . π α α π α synchronized υ π υ lock . α υ 11
  65. 65. υ α α α π ά ε η4 Τ απ αφ υ αυ α αΠ η φ α Τη επ ω ω Α άπ υ η Λ γ Χε ε ά η 2ί12-2013 απ π π π α απ υ υ 12
  66. 66. Α   (Atomic execution) Α π α επ υχώ  π Α απ    α α απ υ α    α   α α α α α π π υ ( π ά ε η3 υ π α ο ό . α π υ α ό ου. α α α α α α α υ ). α: double d; d++; Retrieve the current value of d. Increment the retrieved value by 1. Store the incremented value back in d. α αυ πα α π Γ α primitive variables ( α . Γα α π υ long, double). α α π υ υ α α α. α volatile  (Atomic action) ε α. α α : long, double) α references, α volatile (π volatile variables α Τ α φα αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 π )( read/write υ π α α α α α υ υ !!! 13
  67. 67.    υ α α (Threads) α  Collections & Generics  α φα ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 Java Java 14
  68. 68. α     Java π α πα φα α α α απ π . Ό , υπ υ π π π υ υ α υ α φα π υ α α υ απ υ α . απ υα υ α α υ α α α α α φα φ α π υ α platform dependent . Runtime απ α παφ π π υ φα α    α π υ ά ε η3 getRuntime(): α π φ αα π υ Runtime exec(String[] cmdAndΑrgs): υ α α απ υ π υ π α α Process p = Runtime.getRuntime().exec("/bin/ls"); α α α φα πα α υ !! java α α α υ α stdin, stdout, stderr. Γ α α π υ α απ π α π υ υ getInputStream(), getOutputStream() α getErrorStream() α πα α π υ Process. Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 15
  69. 69. α α α π απ α υ ά ε η3 Τ π α αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 ls π υ /bin α getInputStream α πα α output stream α α πα . α α αυ input stream α main υ υ buffered α - input stream α α α α !! 16
  70. 70.    υ α α (Threads) α  Collections & Generics  α φα ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 Java Java 17
  71. 71. Collections   Ω Collections α α απ υ α α. α Collections α πα α α απ υ α α α Έ α collection framework π α :     ά ε η3 π ππ αα αα α α framework α αυ . Interfaces: παφ α α /π π α υ collections π υ α υ αφ π υ π Κ ά ε :π α υ υ π Interfaces. υ α φα α . Α γο ί ου : α π α α , α α υ π α αφ π αφ α αυ α π υ φ α α α αφ α α collection interface. απ α α α collection framework:    α υ Έ α Data structures α API α α π υ ,α Τ α π απ α . α α απ φα α απ π α υ π αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α π υ π α π 18
  72. 72. Collection interfaces  αφ αφ        ά ε η3 collection interfaces υ π υ απ υ α Collection: α .Χ π Set: α υ List: υ α π π υ Queue: collection Map: collection π SortedSet: α . SortedMap: α α α. α α α υ α α π α απ α υ αα π υ υα φα π α α α α . α collections α υ π α απ π α collections π α υπ υ π υπα α α π υ φα υ α . π π υ index. υ . α α . Set, π υ α αα Map, α Τ α αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 π α υ π α π . α. α α α 19
  73. 73. Collection implementation  υ         Collection interfaces π υ α υ υπ α α πα α αφ : General-purpose implementations αυ α α υ π υ π α collections. Special-purpose implementations α π φα α α α αυ π υ πα υ υ π φ απ υ π φ . Concurrent implementations υ π π υ πα α α φα αυ π π α α αυ α α απ π υ α π α (java.util.concurrent package). Wrapper implementations π α υ υα general-purpose υ π α α πα υ ππ υ α. Convenience implementations collections π υ α α α static υ π φ (π singleton sets). Abstract implementations πα υ abstract α custom υ π απ .   π π υ . υ ά ε η3 υ α α general-purpose implementations α Set  HashSet, TreeSet, LinkedHashSet List  ArrayList, LinkedList Map  HashMap, TreeMap, LinkedHashMap Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α απ α υπ πα υ π π υ υ υ φ interface. Δε α thread-safe. υ iterators α π π α . α Serializable α υ clone(). 20
  74. 74. π    π α α υ    υ , α α απ π α Collection α απ π υ π α α π υ π π απ collection , Iterator. υ for-each α π π απ collection ( π υ υ π α α array). π α for (Object o : collection) System.out.println(o); υ α α interface π υ α collection α Collection υ π υ Iterator. π Τ α α α υ α iterator() α public interface Iterator<E> { boolean hasNext(); E next(); void remove(); //optional } ά ε η3 α απ υ : υ for-each Iterator π π  α π υ α α φ α υ. αα static void filter(Collection<?> c) { for (Iterator<?> it = c.iterator(); it.hasNext(); ) if (!cond(it.next())) it.remove(); } αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 21
  75. 75. Ά  α  ... Bulk operations     α α α   υ containsAll(): υ. addAll(): Δ υ removeAll(): ( αφ υ retainAll(): α Clear(): α υ α α collection π α α Ε υ collections. α α απ α collection π υ ). φ α α α απ removeAll. α collection απ α α υ. α φα α α size()  α π φ π π υ α collection toArray()  π υ α π α α απ α π α π α α υ α α collection Collection<String> c Object[] a = c.toArray(); α String[] a = (String[]) c.toArray(new String[c.size()]); ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 22
  76. 76. Generics    Χα α π υ φα Java SE 5. α πα Οtype-safety at compile timeΠ α α υ π α α απ φ υ υ α ΟClassCastExceptionΠ α α generics α α υ α Collections. List myIntList = new LinkedList(); myIntList.add(new Integer(0)); Integer x = (Integer) myIntList.iterator().next();   υ  α generics α α ArrayList. type casting α α  α generics α α α ά ε η3 α πα π υ φ . Τ List<Integer> myIntList = new LinkedList<Integer>(); myIntList.add(new Integer(0)); Integer x = myIntList.iterator().next(); πα compiler generics (Type Erasure) α υ α α α α πα α ArrayList<String>  α υ raw types, α . α. α υ π α αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α 23
  77. 77. πα α Generics α α α απ Set setOfRawType = new HashSet<String>(); setOfRawType = new HashSet<Integer>(); Set<Object> setOfAnyType = new HashSet<Object>(); setOfAnyType.add("abc"); setOfAnyType.add(new Float(3.0f)); Set<?> setOfUnknownType = new LinkedHashSet<String>(); setOfUnknownType = new LinkedHashSet<Integer>(); Set<String> setOfString = new HashSet<String>(); setOfString = new LinkedHashSet<String>(); Set<Object> SetOfObject = new HashSet<String>(); //compiler error ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 24
  78. 78.    υ α α (Threads) α  Collections & Generics  α φα ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 Java Java 25
  79. 79. Σφ  α φ π       αα   ά ε η3 α α (Bugs) α α Α η Java (1/2) α π υπ π α α α αυ , π α C: perror υπ Java: Χ πα α π υ π α α υ π α φ απ υ υ . α (exceptions). (checked) α α Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α πα π : α υ , (unchecked). 26
  80. 80. Σφ αα η Java (2/2)  α π α α υ φ α π α υ π υ α , αυ υ αα (exception object) α πα α runtime system ( throw α exception).  Έ α exception α π π φ α υ φ α π υ υ , α α υπ α α υ exception .α...  To runtime system α π handler απ π α α π υ α α αυ φ α( catch exception). α α α απ υ α υ π υ υ φ α α φ main. method3() Throws exception Forwards exception method2() Catch exception Call stack trace method1() main() ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 27
  81. 81. Κα ηγ    Java   υ exceptions. υπ java.lang.Throwable υ exceptional conditions π υ α φα απ π α π α ΟCatch or Specify RequirementΠ, α α π α α handlers α α α catch α α π υ α. Ό α α exceptions α checked, απ π υ α υ RunTimeException α α υπ υ recover. α α απ π α π α Error, Error:     α πα Checked exceptions:   Ό α exceptions υ exceptional conditions π υ φ α α φα υ π απ α α α hardware. υπ α ΟCatch or Specify RequirementΠ α stack trace π υ υ exception α α . απ α πα υ π π α π α α φα recover. α α υπ α α α Runtime exceptions/Unchecked exceptions:    ά ε η3 υ exceptional conditions π υ φ α π φ exception αυ α α α υπ α ΟCatch or Specify RequirementΠ α α RunTimeException Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υπ α α . NullPointerException!! υ 28
  82. 82. Exception handler  Java α πα α finally blocks handler. α exception handler components. α try, catch, α π π υ α υ α exception try { code } catch (ExceptionType name) { System.err.println(.....); .... } catch (ExceptionType name) { System.err.println(.....); .... } finally { ..... } ά ε η3 υ α α π /α ΟExceptionTypeΠ, υ header υ Ζ throw ExceptionType Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υπ α φα try block υπ υ π α α α throw α exception. catch block α exception handler, α α π exception. υ υπ υ α υ απ . finally block α π α, υ exception . υ φ υ Σ αυ clean up α. 29
  83. 83. α α φ φ α α α α α α α. α α α2π α α . Γα α υ π α ; Χ 2 α exceptions α α α υ π π απ α υα υ α φ α αφ . ά ε η3 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 30
  84. 84. απ φα α . 1. Α α α π α π α . α φ ά ε η3 α α α απ α 38. φ π 2. Α α α α α exception α α α 3. Α 53! φα π υ stack trace π υ α exception π π υπ α α α α α : π ώ π υ α (απ π π α ). υ α υ α . αυ π α. α π α υ . . 58! Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 31
  85. 85. Απ - φα         ά ε η3 α α exceptions π π υ α   υπ φ α. Ν ΝΑ φ υ α υ printStackTrace(); α α Α Η α φα α π π ( απ Α Τ απ α φα α Exceptions π α υ Η: α απ υ απ υ α π υ α α α α Exception). α throws υ α . φ α α α main. α πα exceptions: exception handling απ α exception υ α call stack, απ throws. α π α exceptions πα α α (π α exceptions FileNotFoundException α InterruptedIOException π αα α α α απ IOException) Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 32
  86. 86. 4 Web Services α XML ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 1
  87. 87. Περ εχό ε α  XML  Web Services ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 2
  88. 88. XML ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 3
  89. 89. α XML  Η XML (eXtensible Markup Language) α α markup metaα (υπ SGML) π υ π α απ αφ , α απα α α α α α .  α α παφ π α α α α α α φα αφ υ α . φα π α XML Parser α α α α υ α α υ XML φ υ. ππ    ά ε η4 α α : π α απ built-in data validation υπ Unicode Τ α αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 4
  90. 90. Έ α xml α <Employee_Info> <Employee Employee_σumber=Ο1Π> <Name> George Kakavoulis</Name> <Department> HR Dept </Department> <Telephone> (+30) 210 - 3453432</Telephone> <Email> g.kakavoulis@some_company.com</Email> </Employee> <Employee Employee_σumber=Ο2Π> <Name> Maria Kokkinou</Name> <Department> Logistics Dept </Department> <Telephone> (+30) 210 - 3453458</Telephone> <Email> m.kokkinou@some_company.com</Email> </Employee> . . . </Employee_Info> ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 5
  91. 91. α φ υ xml  Elements: tags <aTag>, <aTag/> π υ π α π υ data. Απ α απ "start tag," "content tag," α "end tagΠ, π. . Element χω  Attributes: π υ π π. . <aTag id=“123”> content: <element_name/> (χω start α end tag) φ α α elements, α elements π α υ attributes, content α α child elements. content: predefined entity references α υ υ α α : [<  &lt;] [>  &gt;] .α. ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 6
  92. 92. XML Schema H XML Schema α α schema definition απ υπ απ α W3C π απ φ υ. Κα α αυ π α α α  Έ α .xsd αφ απ α απ elements α attributes. Π     . XML α α: α XML α Object-oriented π υ π (built-in, απ ) π Namespaces Έ α element υ π υ π child elements α attributes, απ π υ π απ ά ε η4 απ α element text. Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 7
  93. 93. employee.xsd XML Schema πα α <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > <xs:element name="Employee_Info" type="EmployeeInfoType" /> <xs:complexType name="EmployeeInfoType"> <xs:sequence> <xs:element ref="Employee" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:element name="Employee" type="EmployeeType" /> <xs:complexType name="EmployeeType"> <xs:sequence > <xs:element ref="Name" /> <xs:element ref="Department" /> <xs:element ref="Telephone" /> <xs:element ref="Email" /> </xs:sequence> <xs:attribute name="Employee_Number" type="xs:int" use="required"/> </xs:complexType> <xs:element name="Name" type="xs:string" /> <xs:element name="Department" type="xs:string" /> <xs:element name="Telephone" type="xs:string" /> <xs:element name="Email" type="xs:string" /> </xs:schema> ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 8
  94. 94. XML Schema Complex Type Elements: Simple Type Elements: Attributes: Reference Elements: ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 9
  95. 95. XML Schema Γ ο built-in πο ο π (1/2) ω : ππ : π α α απα α DTD-compatible, .α. ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί12-2013 ,
  96. 96. π XML Schema Ο απ πω απ ο χ : (2/2) Ο ω πω απ ο χ : <xs:simpleType name="belongType"> <xs:restriction base="xs:string"> <xs:enumeration value="Sales"/> <xs:enumeration value="Development"/> <xs:enumeration value="Service"/> </xs:restriction> </xs:simpleType> Απ π χ απ Α user-defined π υ element : <xs:element name=“Emp" type=“EmpType"/> Μ χ extension υ α α ά ε η4 α απ π π attribute Τ υ α ω ω .xs ω α χ υ: <xs:include schemaLocation=“EmpType.xs”> αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 11
  97. 97. XML Schema Namespaces (1/2)    Αφ απ α (abstract containers) π υπ υ α α xs elements α attributes α α α α υ α . Χ π α prefix α α α elements/ attributes, π π α elements/ attributes απ π α υ Namespaces conflicts α α. Χα α α απ α α α, υ URI. <emp:employee xmlns:emp="urn:corp:emp"> <emp:personInfo> … other emp:tags … </emp:personInfo> </emp:employee> ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 12
  98. 98. XML Schema Namespaces (2/2) <employeeList xmlns="urn:corp:list" xmlns:emp="urn:corp:emp" xmlns:sec="urn:corp:sec"> <personList> <emp:empID>AB272654</emp:empID> <sec:name sec:ID=ΟAB121Π>Sales</sec:name> <emp:name>John Smith</emp:name> </list:personList> <personList> <emp:empID>E231290</emp:empID> <sec:name sec:ID=ΟAB125Π>Development</sec:name> <emp:name>Ichiro Tanaka</emp:name> </list:personList> … </list:employeeList> ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 Default Namespace (χω prefix) υπ πω Namespaces Attribute Namespace 13
  99. 99. .xml .xs  Ω α root element : υ .xml α π : <Employee_Info xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance" xsi:noNamespaceSchemaLocation="employee.xs">  α : <?xml version="1.0"?> <class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" root element xsi:noNamespaceSchemaLocation="#mySchema"> <xs:schema id="mySchema" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="class" type="xs:any"/> xs tags <xs:element name="student" type="xs:string"/> </xs:schema> <student>Miltos Karras</student> <student>John Smith</student> </class> ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 14
  100. 100. XML Binding (JAXB) Η Java™Α χ ο γα XML Binding (JAXB) πα α π XML schemas Java α απα α α XML data φα Java. Η JAXB πα υ α αυ α πα α (unmarshal) Java content trees απ XML instance αφα α α φα (marshal). Η JAXB χ π α υ υα Java API for XML (JAX-WS) α υ α Web Services ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 15
  101. 101. Web Services ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 16
  102. 102. α  α Web Services α α α α α α α υπ υ α α( π : CORBA, RMI, EJB, .α.) αφ υπ request/response.  α α υ α software components π υ πα υ απ α π α α υ α φα αφ , α π standard XML .  Γα υ α Web Services π υ HTTP.  α α:   ά ε η4 α υ α, XML υ α α fixed port 80 π υ α firewalls π Τ firewalls, π υ απ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 Http ( ) 17
  103. 103. Publish, find, bind paradigm ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 18
  104. 104. …απ α π Η υ υ services Web URI: α π. . http://webservices.mysite.com/ weather/us/WeatherService π ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 WS π α α ( υ α α απ π υ ) 19
  105. 105. υπ Web Service α SOAP reqs-responses UDDI (WSDL) ά ε η4 WSDL (UDDI) Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 20
  106. 106. Web Services Network Stack UDDI (Universal Description Discovery Integration) πα α Services, α α υ υ clients α α α α υ α WS π υ WS π αφ υ WS (WSDL) α υ UDDI. client π UDDI α α ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 α π i απ Web υ . αα α α WS. 21
  107. 107. WSDL   Η Web Service Description Language (WSDL) α α W3C standard XML-based απ υπ π φ α interface, α α α υ α Web service. Η WSDL α Web services α α υ απ ports α operations (abstract interface). α π αφ α π αφ υ α π φ π υ υ Web service. Αφ υ α Web service, π αφ υ α α π αυ UDDI. Γα α χ π π WS WSDL α χ υ α π α υ WS, υ α π α π π . υ χ αχ π π φ αυ α α υ α SOAP α απ . ά ε η4 Τ υ WSDL <definitions>: Root element <types>: <message>: π υ α α α ; α α α α α ; υ <portType>: <binding>: specific π α <service>: π α αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 α υπ π ( υ ; α ) υπ α α α; α α; SOAP- WS; 22
  108. 108. Element Defines <types> The data types used by the web service <message> The messages used by the web service WSDL - <portType> The operations performed by the web service <binding> The communication protocols used by the web service <definitions> <service> The name and location of the web Service <types> definition of types........ </types> <message> definition of a message.... </message> <portType> definition of a port....... </portType> <binding> definition of a binding.... </binding> </definitions> <message name="getTermRequest"> <part name="term" type="xs:string"/> </message> <message name="getTermResponse"> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation> </portType> http://www.w3schools.com/wsdl/default.asp ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 23
  109. 109. WSDL Ports One-way Request-Response <message name="newTermValues"> <part name="term" type="xs:string"/> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="setTerm"> <input name="newTerm" message="newTermValues"/> </operation> </portType > <message name="getTermRequest"> <part name="term" type="xs:string"/> </message> <message name="getTermResponse"> <part name="value" type="xs:string"/> </message> <portType name="glossaryTerms"> <operation name="getTerm"> <input message="getTermRequest"/> <output message="getTermResponse"/> </operation> </portType> Type Definition One-way The operation can receive a message but will not return a response Request-response The operation can receive a request and will return a response ά ε η7 Solicit-response Τ αΠ η φ α Τη επ ω ω The operation can send a request and will wait for a response Notification The operation can send a message but will not wait for a response Α άπ υ η Λ γ Χε ε ά η 2ί1ί-2011
  110. 110. WSDL Binding    binding element   name attribute: defines the name of the binding type attribute: points to the port for the binding soap:binding element   style attribute: can be "rpc" or "documentΠ transport attribute: defines the SOAP protocol to use operation element   a SOAP action for each operation definition of the encoding for the input and output <binding type="glossaryTerms" name="b1"> <soap:binding style="documentΠ transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapAction="http://example.com/getTerm"/> <input><soap:body use="literal"/></input> <output><soap:body use="literal"/></output> </operation> </binding> ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014
  111. 111. WSDL Ν α α (1/3) namespace υ web service complex types π υ α π απ wsdl Έ ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 α
  112. 112. WSDL Ν α α (2/3) Namespaces π υ α π Request α π XML Schema α WSDL Response π ά ε ηι ά ε η8 6 φ α υ, 27 π υ
  113. 113. WSDL Ν α α (3/3) π soap υ α π SOAP π α WSDL. α υ web service α π υ α ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014
  114. 114. SOAP  Simple Object Access Protocol (SOAP) α π α απ υ α υ π α α α π . π α α α α φ υπ ( υ HTTP). SOAP απ α π π α π π αα υ α α αφ υ π α α data.  α W3C standard XML-based απ α υ υ SOAP α α π αφ α π υ π αφ SOAP Schema namespace <SOAP-ENV: Envelope SOAP encodings xmlns: SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV: encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Header> π – φ α Header α π χ υ processing nodes (π.χ. authentication or authorization server π φ α χ body .α.) </SOAP-ENV:Header> Get Last Trade Price for symbol DEF ά <!-- Request --> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="some-URI"> <symbol>DEF</Symbol> </m: GetLastTradePrice> ε η6 Τ </SOAP-ENV:Body> </SOAP-Envelope> <!-- Response --> <SOAP-ENV:Body> <m:GetLastTradePriceResponse xmlns:m="some-URI"> <price>22.50</price> </m: GetLastTradePriceResponse> α Τη επ ω ω </SOAP-ENV:Body> ηΛ γ αΠ η φ Α άπ υ Χε ε ά η 2ί11-2012 Respond with price 22.50 29
  115. 115. Stubs α WS υ α client α α ά ε η4 φα , α α αφ φα απ α α Τ α SOAP π α α αυ α α. Ό α π α Web Service, α α software π υ α stub. αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 α 31 α
  116. 116. Έ α Web Service π ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 32
  117. 117. AddNumbers.wsdl α αυ π WS (1/4) Web application code: 1.1. υ α WDSL Server-side ά ε η6 Τ αΠ η φ α Τη επ ω ω Α άπ υ η Λ γ Χε ε ά η 2ί11-2012 α WS
  118. 118. AddNumbers.wsdl α αυ π WS (2/4) 1.2. υ α WDSL Server-side ά ε η6 ά ε η8 6 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 α WS
  119. 119. AddNumbersImpl.java α αυ π WS (3/4) 2.Αυ α πα α WS α απ WSDL (π. . Axis with ADB (Axis Databinding)) Server-side ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014
  120. 120. AddNumbersCall.java α αυ π WS (4/4) 3. υ α client code Client-side ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014
  121. 121. Quick ΣnΣ Dirty (1/3)  Η Java απ 6 (javax.xml.ws.Endpoint)  Αυ α π α α α  Server Side: ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 Endpoint WebService
  122. 122. Quick ΣnΣ Dirty (2/3)       : main Endpoint.publish("http://127.0.0.1:8081/ChannelSelection", new WebChannelSelectionInterface()); Η ndpoint υ αα WebChannelSelectionInterface α πα απ URL α υ WSDL:  http://127.0.0.1:8081/ChannelSelection/?wsdl XSD:  http://127.0.0.1:8081/ChannelSelection/?xsd=1 α πα α υ ά ε η4 α WSDL α XSD α π υ αυ α α o client. Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 π υ α
  123. 123. Quick ΣnΣ Dirty (3/3)     α project: ew  Web Service Client υ α wsdl α α π α α  Invocation: ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 υ client
  124. 124. Web Services α 2 ..... Θα  WSDL  π α α : XSD  SOAP  XML Web Services Learning Trail http://netbeans.org/kb/trails/web.html http://netbeans.org/kb/docs/websvc/jax-ws.html ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 40
  125. 125. 5 Java DataBase Connectivity 5 Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 1
  126. 126. α   α   π π α α π α παφ Τ 5 π αΠ Χ -Κ φ π υ α Τ π 2013-2014 ω 2
  127. 127.  α π  Κ π  π φ π  Χα α    5 α π υπ απ υπ . π α π α α υ α α π α υ . π απ π α υ απ απ α α α αα Τ αΠ Χ φ π υ α Τ υ π 2013-2014 υ υπ ω 3
  128. 128.  α α     α απ α π υπ  α υ απ α α α α αφ α α 1. α: α π α α  α α  π α υ π α α α α α α υ υ α α π υ α απα υ π α π α. απ υ π α υ υ π α απ  Oracle, MySQL, Access  Excel 5 Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 4
  129. 129. α α :Έ απ Ε) (Δ π Φο α ώ έ υ Ό α Πα α 1 Κ α α α αφ π α α. :Έ απ α ο α αφ . π υ π υ α Φ α α 1 Μα 1 α α ω Ό α Π α ω ω 1 ω 5 Τ αΠ Χ φ π υ α Τ π 2013-2014 αφ ω α υ ω α α 5
  130. 130.     π α απ  α α α α υ 1; α α α α       5 α φ αφ φ φ π π υ φ π φ αυ α α α ; π υ α πα απ α απ απ υ υπ Τ αΠ Χ α φ π υ υ 1 απ φ υ α α α Τ π 2013-2014 ω α 6
  131. 131. π  α απ υ π π α π π α , π α παφ π υ π α υ υ α α υπ π α / π φα π 5 Τ αΠ Χ φ π υ α Τ α π 2013-2014 ω 7
  132. 132. π  π παφ α JDBC JDBC (Java DataBase Connectivity) π φ π α φα α Java φα φα π JDBC παφ JDBC παφ ( π παφ υπ α π απ α π υυ π α π πα Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 1 π υ πα JDBC αφ ) Ν Γ φυ α 5 παφ α α υ π απ υ παφ α α αφ φυ α α απ π ( α π α α α υ ) 2 α υ 3 α 8
  133. 133. α SQL  H SQL (Structured Query Language) α α απ απ υ α π π α α α /α α υ α α απ υ α απ /π /π .    5 υπ α π απ α α φ π α α απ φ α :SELECT Υ FROM X WHERE Z υ α απ Ε Τ αΠ Χ φ π υ :Δ π υπ α αΧ α α Τ π 2013-2014 ω π 9
  134. 134. α SQL α Φο έ υ Ό α Πα α 1 π α 1. υ π π 3. π α2 2. α ώ Φ α 1 α α α α απ : υπ α απ υπ α FROM α υπ α α α υ υ WHERE α π υ π α α π υ SELECT 1 Μα α α ω Ό α Π αφ α ω ω 1 ω α υ ω α α : α φ α SQL: SELECT Ό ο α, Επώ υ ο FROM Φο τ τ : α α SQL: SELECT Ό ο α FROM Μα 5 Τ αΠ Χ υ 1; WHERE Α .Μ τ ώου=1 1; ατα WHERE Κωδ ό =1 φ π υ α Τ π 2013-2014 ω 10
  135. 135. α      παφ π παφ JDBC, π υ πα π π π υ . υ π (driver) π υ π π α π υ π α. java.lang.Class  ΝΚ π παφ α Java, π α α π α απ α αΠ java.sql.DriverManager  υπ π υ getConnection(String url) α α Οα . υ :π URL = jdbc: αυ υ π υ createStatement() π Statement π υ α α α παφ π . java.sql.Statement  5 π αυ α αυ α αΠ Χ π φ αα π υ execureQuery(String sql) α. Τ Π driver α α π. . jdbc:odbc:test java.sql.Connection  π υ forName(String className) Οφ .  α φ π υ α Τ π 2013-2014 ω . ππ α 11
  136. 136. α παφ  java.sql.ResultSet  απ απ  υ π π α π α ΝΚ π α α υ φ π α α. π απ υ α (π. . getInt(i)) π υα υ . α α α π υπ )  (α Connection con = DriverManager.getConnection(connectionURL); Statement st = con.createStatement(); ResultSet rs = st.executeQuery(query); while(rs.next()){ String s = rs.getString(ΟσameτfRow1Π); int i = rs.getInt(ΟNameOfRow2Π); } π 5 javadoc Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 12
  137. 137. π π Απ 5 1 ώ : α α αα απ υ υ πα α ; : SELECT Element FROM elements; Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 13
  138. 138. π π π Απ 5 2 ώ α : α α α αα υ 2; απ υ υ πα α : SELECT Element FROM elements WHERE Quantity>2; Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 14
  139. 139. π π Απ 5 3 α ώ : α α υ2 α αα απ υ υ πα α 50 Euro; π α : SELECT Element FROM elements WHERE Quantity>2 AND Prize<50; Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 15
  140. 140. π π α Απ 4 ώ : α υ2 α α α α α π υ υ 50 Euro; πα α υ ; π α : SELECT Element, Prize FROM elements WHERE Quantity>2 AND Prize<50; 5 Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 16
  141. 141. JDBC α υ π ..... Θα π MySQL (free & open source) http://www.mysql.com http://www.mysql.com/downloads/mysql/ MySQL 5.0 Reference Manual & Tutorial http://dev.mysql.com/doc/refman/5.5/en/preface.html http://dev.mysql.com/doc/refman/5.5/en/tutorial.html JDBC Driver for MySQL http://www.mysql.com/products/connector 5 Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 17
  142. 142. 6 Γ αφ ά ε Java ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 1
  143. 143.  Γ αφ    α  awt, swing ά ε η6 α α α παφ Χ Ν Θ υ α α α α (listeners) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 2
  144. 144. Γ αφ ά ε η6 Java Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 3
  145. 145. Γ αφ     Γ αφ  Η  α παφ παφ Χ α α απ , π υ α υπ αφ παφ . α υ π π α α α υ α υ  υπ υ Ό α α πα απ π Η φα π α α π π π π π π υ υπ :   ά ε η6 α MacOS, δinux, Windows…. GUI αφα π α αφ α  (Graphical User Interface - GUI) υπ α π α α α α α π α απ υπ : παφ α αυ π π α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α α π α α Δ α πα α αΔ α υ Ε υ Ε α 4
  146. 146. α   υ π απ υπ υ α  α α απ α α α π α α α α φα φα α … 1 φα α n α α α υ Δ α Ε - ΔΌ Ε  α α α π απ α αφ απ α π π ά ε η6 α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α υ π υ (π υ, α ….) 5
  147. 147. Abstract Window Toolkit - AWT  To AWT α α    π Core Java API, α απ α α (java.awt.*). α Η φ υ α α, α π φ παφ α α α φα α υ α α java φα αφ υ πα α α α υυ π α απ α α απ υ α υ αφ α
  148. 148. javax.swing  Η α π awt.  α υ      ά ε η6 swing π υ Σ Java Cross platform compatibility Ί α φ ( φ απα απ π α α ) αφ υ α π α α α ! (Γ α ;;) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 7
  149. 149. πα   α swing / π υ AWT π φα π α πα α α α υ απ : http://dn.codegear.com/el/article/26970 ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 8
  150. 150. α α α παφ πα υ αυ π παφ JFrame: π αφ JPanel: α •Γ α •Η α α π α ά ε η6 JFrame υ, α α JPanel α Frame π Frame π α α α πα υ π υπ JFrame ( Panel απ π α Panel α . φα α α . υ JFrame α φα υ παφ α . π , παφ ( Frame α α α α υ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 JPanel υ π , …) α) α N-1, Panel. Σ 9
  151. 151. α α α ά ε η6 α α - Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 10
  152. 152. JComponent   α απ υ  απ α π υ πα . container α α α get/setName() : / π get/setSize() : / π get/setMaximumSize() : get/setMinimumSize() : getWidth() : π φ π getHeight() : π φ getX() : π φ getY() : π φ πα Ό υ α α ά ε η6 α απ γ αφ υ swing α α α π υ JFrame, JDialog α JApplet υ πα υ • α φ φ / π / π : α υ component υ component φ π π φ π π υ component υ component υ Χ (π α υ component) υ Y (π α υ component) χ υ α α ω .Ε υπ υ .Γαπ π ίω http://docs.oracle.com/javase/6/docs/api/ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 11
  153. 153. JFrame  Η JFrame Frame  • α α swing υ α πα υ απ JComponent π υ Frame. . φα Component υ π : •JFrame(String name): α α υ α πα υ π •getContentPane: π φ Panel, α , α π α α α αφ α υ Frame •setDefaultCloseOperation(int i): υ π φ υ Frame α πα X •setVisible(boolean s): α Frame α φα •setResizable(boolean s): υ π φ υ Frame α πα υ Frame π π υ α υ υ π α . φ υ α υ setDefaultCloseOperation: DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, DISPOSE_ON_CLOSE EXIT_ON_CLOSE ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 12
  154. 154. JPanel   To JPanel α υ α φα   φα ά ε η6 Η α π π α φα υ υα α πα α υ π α αα π απ παφ α . α α α α α α (α π α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α αα απ υ add (Component c) α απ Layout α αυ π α α α) : 13
  155. 155. JButton   To JButton α υ πα υ.    α α       ά ε η6 απ π υ απ α π π π υ π ! : JButton(String s): υ α υ π π υ α α απ JComponent addActionListener(ActionListener l): υ υ π. α π α α φα π α υ φ υα α φ α πα α π αυ υ υ Frame. υ πα υ υ π υ υ s α υ π α . : υ π . υ (getContentPane()) . Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 π υ Frame 14
  156. 156.  α υ JButton. α1 α JFrame α π υ αυ α Imports: JButton, JFrame, Dimensions, Panel Η α α π constructor υ π φ υ α JFrame JFrame α υX π α υ υ ,α υα π α φ ά ε η6 panel , υ α υ υ TestFrame α π υ υ Frame αυ υ υ Frame Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 15 υ π
  157. 157. Menus (I)   α π π υ πα α υ          π υ α υ α α . JMenuBar JMenu JMenuItem JSeparator υ α υπ α π JMenu α menus: JMenuItem υ α αα α menus (JMenuItem) υ α (JMenu) π υ JMenu α α JMenuBar Έ α JMenu π απ α α JMenu (pop up υπ ) JSeparator α α ά ε η6 JMenuBar JSeparator setEnabled(false) setEnabled(true) setText(ΟReplaceΠ) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 16
  158. 158. Menus (II)  Η    ά ε η6 α JMenuBar ν π α υ JFrame α απ α πα α υ α φα α υ, JFrame: setJMenuBar(JMenuBar bar) H setEnabled π υ φα α α α α α π υ υπ υ α JMenuBar π π π απ π υ α α α φα H add υ JMenu π π π JMenuItem JMenu. Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 17
  159. 159.   α α2 Θα υ υ menu υ PowerPoint. Θα α απ υ π π π File α α υ υ π υ. π π π Save As α View ά ε η7 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 18
  160. 160. JTextField JLabel  To JTextField α αφ     set/getColumns: / π α JTextField. set/getText: / π φ JTextField. π υ α π . To JLabel (π αφ    ά ε η6 π υ π παφ : α φ / π π α α . φα π υ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υ παφ . υ) π υ α α α π φ φ π υ π υ π υ φ / π α α π υ π π π α π α set/getText: JLabel. set/getIcon: JLabel. υ π φα α π α π 19
  161. 161.  α α3 π π π πα α α α α α α π JFrame φα α υα αφ α . α α. α α υ JLabel α φ φ υ JTextField α πα ά ε η6 π υ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 Η υ α Ί α α α α y α 20
  162. 162. JTextArea  To JTextArea α π α αφ παφ   JTextField. φ      ά ε η6 α α α π υ π υ( α πα π φ υ ) υ α α α α append(String s): υ s υ υπ υ setLineWrap(boolean): υ α αα α π α υ getLineWrap(): α π πα απ υ α α getLineCount(): α α π υπ JTextField setEditable(boolean): π αα π υ JTextArea Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υ α 21
  163. 163. α  α α υ πα φα α4 υ α α φα υ α πα υ π α α φα α α JLabel, α JTextField α α JButton. απ π α υ π α α π α α υ π. α α JTextArea π υ α α α απ φ α . π α απ π α π αα α . Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 22
  164. 164. α α ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 23
  165. 165. α  α α απ υ υ α Java υ α α π πα υ α α α αυ α α π (Layout Manager)    ά ε η6 π υ α α π , α υ α , FlowLayout   α π  αα Σ αα π α α α απ α π π α π α υ υ α α πα α . .π. υ. α. GridLayout   α Η π α α π υ πα α α α π α . .π. υ υ .Ό α απ απ α nxn π α υ α π υπ α α BorderLayout   α π α α α α α α ,α υ ,π α! α α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 αυ . α α υπ πα 24
  166. 166. α α FlowLayout α α πα α υ υ π φα υ Panel ( Χ υ π default) υ Layout π υ υ α υ . Η πα π π υ α α αα α (α ) υ Layout π υ υ α π Panel α . υα Panel. π απ υ Σ πα α υ. π (Container) α αυ ά ε η6 υ πα α α α υ α π π π υ . α υ υ υ α Panel JFrame Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 25
  167. 167. α α GridLayout α α πα α υ α υ π απ υ πα α υ Panel ( Χ π default) υ Layout π υ υ υ . πα υπ α α α α α α α υ Layout π υ υ π Panel α . υα Panel. π απ υ Σ πα α υ. π (Container) α αυ ά ε η6 α α υ υ α π π π υ . υ α α υ υ υ α Panel JFrame Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 26
  168. 168. α α BorderLayout α α α π υ υ π πα α υ υ πα α υ Layout π υ π υ . υ α υ Layout π υ υ π Panel α . υα Panel. π α απ υ α π α π π α α υ Σ πα α υ. π (Container) α αυ ά ε η6 π υ υ α . α υ υ υ α Panel JFrame 27
  169. 169. υ       υα Layout Managers π π α υ π FlowLayout: π απ α α α πα υ α GridLayout: απ ! BorderLayout: υ α α . π α υ υ υα π π α panel π π α α . α υ πα α π π α υ α ! GridLayout (2x4) FlowLayout BorderLayout ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 28
  170. 170. υ ά ε η6 υα Layout Managers Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 29
  171. 171. Listeners ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 30
  172. 172. Listeners = Interfaces  Actions:       π υ π menu item Enter α text field α π υ π  Event ά ε η6 α α α Action… α Listeners α Events? Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 31
  173. 173. Listeners  α listeners?  Interfaces  M αυ π π α α π α πα π abstract υ .  π α π υ Listeners (= interface) α α αφ υ . π π α υπ α box π υ α α , π α α υ α. ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 32
  174. 174. α ά ε η6 α ActionListener (1/2) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 33
  175. 175. α ά ε η6 α ActionListener (2/2) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 34
  176. 176. Listeners  Interface KeyListener  Interface MouseListener  Interface MouseMotionListener  Interface WindowListener                  keyPressed(KeyEvent e) keyReleased(KeyEvent e) keyTyped(KeyEvent e) mouseClicked(MouseEvent e) mouseEntered(MouseEvent e) mouseExited(MouseEvent e) mousePressed(MouseEvent e) mouseReleased(MouseEvent e) mouseDragged(MouseEvent e) mouseMoved(MouseEvent e) windowActivated(WindowEvent e) windowClosed(WindowEvent e) windowClosing(WindowEvent e) windowDeactivated(WindowEvent e) windowDeiconified(WindowEvent e) windowIconified(WindowEvent e) windowOpened(WindowEvent e) ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 35
  177. 177. α α Calculator (1/5) Graphical User Interface Frame Functionalities Ν Actions Action Listeners ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 36
  178. 178. α α Calculator (2/5)  Frame Creation ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 37
  179. 179. α α Calculator (1/X)  Frame Creation ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 38
  180. 180. α α Calculator (1/X)  Action Listeners ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 39
  181. 181. α α Calculator (5/5)  Action Listeners ά ε η7 40
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×