Lectures 1 62. α
π
π π α.
α
α
υ
π
π
π
ά ε η1
φα
α
α
χ
α
π
α α
αφ
α
φα
α
υα
α
α
υα α
υ,
α α
α
.
α
υ π
αφ
α
α α α α
φ
α
α
α α
α
( χ
π.χ. J2εE, Android)
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
3. απ
υ
π
απ α α υ α
α
α
αυ π
π
υπ
α cloud υπ
.
χ
υ
α
α χ π
α
α υπ
α
π φ .
υ
α α απ
α απ 3
π
υ υπ υ
α α:
ά ε η1
π
π
υ
απ
υ
, πα υ α
φ
α
αφ
χ (Points of Interest - POI).
πα υ α
α
α
υπ
.
πα υ α
α
α
υ Android.
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
α
αχ
αφ
α
υ
5.
χ
χ
π α
α
π υ α
υφ
Java SDK
Web Services
Android SDK
απα
IP Addressing
Linux
ά ε η1
α
α
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
α
7. α
α
–
π
α α
α α α υ
υπ υ α υ
Γα
π υ
απ
π α α
α
α
α
.
ά ε η1
α
πα
(2/3)
α
α α
πα α
.
α
υ
α
αφ
. π υ
απ
α
απ α α
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
υ
α
8. α
2
α
–
α
α α:
11:00-14:00 –
17:00-20:00 –
1
φ
αφ
α
α α α
Η πα υ α α
α
( υ χ
1 απ
3 απ υ
ά ε η1
(3/3)
= απ
α
υχ α
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α)
α
eclass
α απα α
9. α
α
Η α
α
α
:
0.3*1 πα α
+ 0.2*2 πα α
+ 0.35*3
πα α
+ 0.15* υ
υ
π υχ α
π
α
(α π
α, α
π)
α
αυ
α α α απ υχ α
α.
πα
α αυ
χ
απ
υ α
φ υ α
π
.
Θα
απ
,
α
π
. υ
χ
αυ
α χ υ
π χ υ
.
Η
απ
α
α
α pass/fail.
π υχ
α
α
υ
υ
α
α
α
υ α
α
.
ά ε η1
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
αφ
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. α
α
α
(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. π
α
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
14.
α Java
αφ
π
α υ α
Χ
α
παφ , φ
α
α α
α
α αυ π
ά ε η2
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
α
α
2
15. Η
α Java (1/2)
Η Java απ
αυ
ππ
υ
π
α α
.
απ
π υ
α
φ , α α
,α
...
απ
α α
Java
α
α
α.
α
α α α α
υ
απ
ά ε η2
α
: α .java α
α
α
java compiler α π
υ bytecodes.
: Java Virtual Machine (JVM)
π
α α α .
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
α α
υ :
υ
,
.java
α
java
α
α
α
.class απ
α bytecodes α
3
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.
α Java
αφ
π
α υ α
Χ
α
παφ , φ
α
α α
α
α αυ π
ά ε η2
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
α
α
5
18. π
α
α
α
α
ά ε η2
α
φ
π υ α
αα
υ .
π
α
Ό
α
α
ο ο
π
α
α
α
υ
απ
α
α
α
ο υ ο φ
υ π
α
υ
φ
.
α
α
π
α (inheritance):
α α α
α
υ.
α
υ ά ω
α
παφ .
α
υ
α
αα
υ
α
:
υ
υ
α
υ
(polymorphism): Η
αφ
π απ
(encapsulation): Η απ
υ α
π
π α
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
α
π υ
υ
υ
α α
απ
α
6
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. α α
Η
Η
α
α
α
α
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. υπ
υ
Η 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. 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. 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. 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. π
α
Η 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. υ
Η 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. α
π α α
α
απ α
Ηα
Η
α
αα
υ π α
π α α
π υ αφ
α
υ
α
α
π
π υ α
υ π υ
[]
α απ
υ
α
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. α
π
(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. α
ά ε η2
α
υπ
α
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
π
α α α ?
System.gc()?
17
30.
α Java
αφ
π
α υ α
Χ
α
παφ , φ
α
α α
α
α αυ π
ά ε η2
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
α
α
18
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. 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. 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.
α Java
αφ
π
α υ α
Χ
α
παφ , φ
α
α α
α
α αυ π
ά ε η2
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
α
α
22
36. α
ά ε η2
α
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
24
37. Χα α
α
α υπ
φ
υ
constructors
α
π
υπ
π
υπ
π
π
υπ
π
α α
), α
, π
απ
α
α π
α υπ
direct access
α
α
απ
α
π
.
α
υ
ππ
π
α
α υπ
π υ
α
.
α
α
υπ
υ π
α α απ
α
υ
α
π
υ
υπ
(hiding) .
α
υ
α υπ
α
απ
αυ
υπ
π υ
.
φα
α
.
α
υ
υ
υπ
(method overriding). π
α α
super.
π
α
υ
α static
υπ
static
υπ
α
α
απ
constructor α υπ
π
α α
α
super.
ά ε η2
(π α,
υ ,
α public α protected
.
α
π
α
υπ
.
α π
π
π
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α υπ
υ αυ
αφ
αυ
υπ
α υπ
αφ
υ (hiding).
constructor
υπ
α
25
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. 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. 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. Object
α
Η
π
απ
αυ
ά ε η2
π υ
Java.
αυ
π
α α
απ
α:
equals(): π
α
υ .
α
π
φ
υφ
υ π
α
φ
π υ
α
α α
α αα
υ
override
α
.
α
Object π υ α
α α
π
false α
αα
υ α
α
α
υ
α
α override
αυ
π
α
α
α α α
α υ α
α
α.
getClass(): α
α runtime representation
α
α αα α
υ π
φ
π . myObject.getClass().getName()
toString(): α πα
α string α
α απα
υ
υ override α α πα υ
υ
π α
α
π
.
α
true
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
υ
π
α
α
(
α
υ
).
π υα
object.
α
π
α.
α
αυ
,
α
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.
α Java
αφ
π
α υ α
Χ
α
παφ , φ
α
α α
α
α αυ π
ά ε η2
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
α
α
31
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
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.
α Java
αφ
π
α υ α
Χ
α
παφ , φ
α
α α
α
α αυ π
ά ε η2
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
α
α
35
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.
α (Scope)
Η Java α πα
α
απ access modifiers
υ
α
απ υ
α
α
α
α
π
/
α
α
.
Η
α
πα
π α
α .
α
ά ε η2
α
,α
υπ
private)
απ
π
α
α απ
υ
π
α
(Φ
public α
πα
π υ
modifier,
α
α
α υπ
α.
αυ
υ
α
απ
default (packageπα
.
υ α αυ
private:
package-private:
α
πα
υ π
α
π
protected:π
α
αυ
πα
α
π υ
public:
,α
α
αυ .
π
α α
α)
α
α
.
υ π
α
,
(α
υ π
πα
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
υ,
π
π υα
αυ
.
υ
π υα
υ
πα
υ)
α
π
37
50.
α Java
αφ
π
α υ α
Χ
α
παφ , φ
α
α α
α
α αυ π
ά ε η2
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
α
α
38
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
54. 3
Ν α α (Threads) η Java
Συγχ
ό
ω
γα
Collections & Generics
αχ
η φα
ω
η Java
ά ε η3
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
1
55.
υ
α α (Threads)
α
Collections & Generics
α
φα
ά ε η3
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
Java
Java
2
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.
α
α α
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.
α
α α
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. 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. Static
α
α
π υ υπ
υ thread π υ
α
υ απ υ
α
πα
υ
run
thread
To α
π π
π υ
interrupt απ
π
thread
thread
H main
απ
α α
απ
α thread α π
α α
threadMessage
ά ε η4
υ
t
α α
π υ Thread α πα
thread π υ
α
61.
υ
α α (Threads)
α
Collections & Generics
α
φα
ά ε η3
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
Java
Java
8
62. υ
α αα υ
threads α
α υ
π α
π
α
α.
α
π
υ
π
α
α
α
απ
αυ
start()
thread1
thread2
Shared
object
Java
π
π
ά ε η3
α πα
α
π
α
υ.
π
π
π
α
π
α
deadlocks α starvation.
Τ
υ
,α
α απ
υ
α
α
απ φυ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
υ
υ
α α
9
63. υ
α
υ
synchronized
υ
φ
α
α α
π
α
synchronized
υα
π
α π α π
α
υπ
π synchronized
υ α υ synchronized α
α
intrinsic lock π υ α
α
υ
π
ά ε η3
Τ
π
α
απα
α
υ
α π υ
π
αΠ η φ
α Τη επ α ω
Α άπ υ η Λ γ
αά2η 2013-2014 α
α
Χε ε
π
υ
α
α π
φα
α
π
α
α
α
α
α
π α
π
υ,
υ .
πα
α
α
π
t
υ
υ
α απ υ
α απ
υ.
απ αυ
starvation,
α
α
α synchronized
BLOCKED
α
.
α
π
α
υ.
α
α
64. υ
α block
π π
statements π π
π
α
π
Fine-grained υ
α
α
π
υ α
α
υ
ά ε η3
Τ
α
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
.
π
α
α
π
α
synchronized
υ
π
υ
lock .
α
υ
11
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.
υ
α α (Threads)
α
Collections & Generics
α
φα
ά ε η3
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
Java
Java
14
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. α
α
α
π
απ
α
υ
ά ε η3
Τ
π
α
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
ls π υ
/bin
α
getInputStream α πα
α
output stream
α α πα
. α
α αυ
input stream α
main
υ
υ
buffered
α
-
input stream α
α
α
α
!!
16
70.
υ
α α (Threads)
α
Collections & Generics
α
φα
ά ε η3
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
Java
Java
17
71. Collections
Ω Collections
α α
απ υ
α
α. α Collections α πα
α α απ
υ
α α α
Έ α collection framework π
α
:
ά ε η3
π
ππ
αα
αα
α
α framework
α αυ .
Interfaces:
παφ
α α
/π
π α
υ
collections π υ α
υ
αφ
π
υ π
Κ ά ε :π
α
υ υ π
Interfaces. υ
α
φα
α .
Α γο ί ου : α
π
α α
, α
α
υ π
α
αφ
π
αφ
α
αυ
α π υ
φ
α α
α
αφ
α
α
collection interface.
απ α α α
collection framework:
α
υ
Έ
α
Data structures
α API α
α
π
υ
,α
Τ
α π
απ
α
.
α α απ
φα
α
απ
π
α
υ
π
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
π
υ
π
α
π
18
72. Collection interfaces
αφ
αφ
ά ε η3
collection interfaces υ
π υ απ
υ
α
Collection:
α
.Χ
π
Set:
α υ
List: υ
α
π
π
υ
Queue: collection
Map: collection π
SortedSet: α
.
SortedMap: α
α
α.
α
α
α
υ
α
α
π α
απ α
υ
αα
π υ
υα
φα
π
α
α
α α
.
α
collections α
υ π
α απ
π
α collections
π
α υπ
υ
π
υπα α
α π υ φα
υ
α
. π
π υ index.
υ
.
α
α
.
Set,
π υ
α αα
Map, α
Τ
α
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
π
α
υ
π α
π .
α.
α
α
α
19
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. π
π
α
α
υ
υ
, α
α απ
π
α
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. Ά
α
...
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. 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. πα α
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.
υ
α α (Threads)
α
Collections & Generics
α
φα
ά ε η3
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
Java
Java
25
79. Σφ
α φ
π
αα
ά ε η3
α α (Bugs)
α
α
Α
η Java (1/2)
α
π
υπ π
α
α
α
αυ
,
π
α
C:
perror υπ
Java: Χ
πα
α
π
υ
π
α
α
υ
π α
φ
απ υ υ
.
α
(exceptions).
(checked) α
α
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
α α
πα
π
:
α
υ
,
(unchecked).
26
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. Κα ηγ
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. 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. α
α
φ
φ
α
α α
α
α
α α.
α
α
α2π α
α
.
Γα
α
υ
π
α
;
Χ
2 α
exceptions α α
α
υ
π π
απ
α
υα
υ α
φ
α
αφ .
ά ε η3
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
30
84. απ φα
α .
1. Α α
α
π
α
π
α
.
α
φ
ά ε η3
α
α
α απ
α
38.
φ
π
2. Α α
α
α
α
exception
α
α
α
3. Α
53!
φα
π
υ stack trace π υ α
exception π
π
υπ
α
α α α
α
:
π ώ
π υ
α (απ π
π
α
).
υ
α
υ
α .
αυ
π
α.
α
π
α
υ
.
.
58!
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
31
85. Απ
-
φα
ά ε η3
α α
exceptions π
π υ
α
υπ
φ
α.
Ν
ΝΑ
φ
υ α
υ
printStackTrace();
α
α
Α Η
α
φα
α π
π
(
απ
Α Τ
απ
α
φα
α
Exceptions
π
α
υ
Η:
α απ υ
απ υ
α
π υ
α
α
α
α
Exception).
α throws
υ
α .
φ
α
α
α
main.
α πα
exceptions:
exception handling απ
α
exception υ
α
call stack, απ
throws.
α
π
α
exceptions
πα
α α
(π α exceptions FileNotFoundException α
InterruptedIOException π
αα
α α α
απ
IOException)
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
32
86. 4
Web Services α XML
ά ε η4
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014
1
87. Περ εχό ε α
XML
Web Services
ά ε η4
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014
2
89. α
XML
Η XML (eXtensible Markup Language)
α
α markup
metaα (υπ
SGML) π υ
π
α
απ
αφ , α απα
α
α α α α
.
α
α
παφ π
α α α α α
α
φα
αφ
υ
α
.
φα
π
α XML
Parser α α α α
υ α
α υ XML
φ υ.
ππ
ά ε η4
α α
:
π
α απ
built-in data validation
υπ
Unicode
Τ
α
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014
4
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. α
φ υ
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 α
υ
υ α α
: [< <] [> >] .α.
ά ε η4
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014
6
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. 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. XML Schema
Complex Type Elements:
Simple Type Elements:
Attributes:
Reference Elements:
ά ε η4
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014
9
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. 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. 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. .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. 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
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
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. 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. 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. 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. 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
113. WSDL Ν
α
α (3/3)
π soap
υ
α
π
SOAP
π
α
WSDL.
α υ web
service α π υ
α
ά ε η4
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014
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. Stubs
α WS
υ
α client
α α
ά ε η4
φα
,
α α
αφ
φα
απ
α
α
Τ
α
SOAP
π
α
α αυ
α α. Ό α
π
α Web Service, α α
software π υ
α stub.
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014
α
31
α
116. Έ α Web Service π
ά ε η4
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014
32
121. Quick ΣnΣ Dirty (1/3)
Η Java απ
6
(javax.xml.ws.Endpoint)
Αυ
α π
α α α
Server Side:
ά ε η4
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014
Endpoint
WebService
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. Quick ΣnΣ Dirty (3/3)
α
project:
ew Web Service Client
υ
α
wsdl
α
α
π α
α
Invocation:
ά ε η4
Τ
αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014
υ client
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
127.
α π
Κ π
π
φ
π
Χα α
5
α
π
υπ
απ υπ
.
π α
π
α
α
υ
α
α
π
α
υ .
π
απ
π α
υ
απ απ α
α α αα
Τ
αΠ
Χ
φ
π υ
α Τ
υ
π
2013-2014
υ υπ
ω
3
128.
α α
α απ
α
π
υπ
α υ
απ
α
α α α αφ
α α 1.
α:
α
π α α
α
α
π
α
υ
π
α α
α α
α α
υ
υ
α
α π υ
α απα
υ
π α π
α.
απ υ
π α
υ
υ
π
α απ
Oracle, MySQL, Access
Excel
5
Τ
αΠ
Χ
φ
π υ
α Τ
π
2013-2014
ω
4
130.
π
α
απ
α α
α α
υ 1;
α α
α α
5
α
φ
αφ
φ
φ
π
π
υ
φ
π
φ
αυ
α
α
α
;
π υ
α
πα απ
α απ
απ
υ
υπ
Τ
αΠ
Χ
α
φ
π υ
υ 1 απ φ
υ
α α
α Τ
π
2013-2014
ω
α
6
132. π
π
παφ
α
JDBC
JDBC (Java DataBase Connectivity) π
φ
π
α
φα
α
Java
φα
φα
π
JDBC
παφ
JDBC
παφ
(
π
παφ
υπ
α
π
απ
α
π υυ π
α
π
πα
Τ
αΠ
Χ
φ
π υ
α Τ
π
2013-2014
ω
1
π υ πα
JDBC
αφ
)
Ν Γ φυ α
5
παφ
α
α
υ π
απ υ
παφ
α
α
αφ
φυ α
α απ
π
( α
π
α
α α
υ
)
2
α
υ
3
α
8
133. α SQL
H SQL (Structured Query Language)
α
α απ
απ υ α π
π
α
α α
/α α
υ
α α
απ
υ
α απ /π
/π
.
5
υπ
α
π
απ
α
α
φ π α α
απ
φ
α
:SELECT Υ FROM X WHERE Z
υ
α
απ
Ε
Τ
αΠ
Χ
φ
π υ
:Δ π
υπ α αΧ α
α Τ
π
2013-2014
ω
π
9
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. α
παφ
π
παφ
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. α
παφ
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
140. π
π
α
Απ
4
ώ
:
α
υ2 α
α
α α
α π υ
υ
50 Euro;
πα α
υ ;
π
α
: SELECT Element, Prize FROM elements WHERE Quantity>2 AND Prize<50;
5
Τ
αΠ
Χ
φ
π υ
α Τ
π
2013-2014
ω
16
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. 6
Γ αφ ά ε Java
ά ε η6
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
1
143. Γ αφ
α
awt, swing
ά ε η6
α
α
α
παφ Χ
Ν
Θ
υ
α α
α α
(listeners)
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
2
144. Γ αφ
ά ε η6
Java
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
3
145. Γ αφ
Γ αφ
Η
α
παφ
παφ Χ
α
α απ
,
π υ α υπ
αφ
παφ
.
α
υ
π
π
α
α
α υ
α υ
υπ
υ
Ό α α πα απ
π
Η φα
π
α
α
π
π
π
π
π
π
υ υπ
:
ά ε η6
α
MacOS, δinux, Windows….
GUI αφα
π
α
αφ
α
(Graphical User Interface - GUI)
υπ
α
π
α
α
α
α
α π
α απ
υπ
:
παφ
α
αυ
π
π
α
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α α α
π α
α
Δ
α
πα
α αΔ
α
υ
Ε
υ
Ε α
4
147. Abstract Window Toolkit - AWT
To AWT α
α
π
Core Java API,
α
απ
α
α (java.awt.*).
α
Η φ
υ
α α, α
π
φ
παφ α
α
α
φα
α
υ
α
α java φα
αφ
υ πα
α
α
α
υυ π
α απ
α
α
απ
υ
α
υ
αφ
α
150. α
α α
παφ
πα
υ
αυ π
παφ
JFrame:
π
αφ
JPanel:
α
•Γ
α
•Η α
α
π
α
ά ε η6
JFrame
υ,
α
α JPanel
α Frame π
Frame π
α
α
α
πα
υ
π υπ
JFrame ( Panel
απ
π
α Panel α
.
φα
α
α .
υ JFrame
α
φα
υ
παφ
α .
π
,
παφ (
Frame
α
α α
α
υ
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
JPanel
υ π ,
…)
α)
α N-1,
Panel. Σ
9
151. α
α α
ά ε η6
α α
-
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
10
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. 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. JPanel
To JPanel
α
υ
α
φα
φα
ά ε η6
Η α
π
π
α
φα
υ
υα
α πα α
υ
π
α αα
π απ
παφ
α .
α
α
α
α
α α (α
π
α
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
α
αα
απ υ
add (Component c)
α απ
Layout
α αυ π
α
α
α) :
13
155. JButton
To JButton
α
υ πα
υ.
α
α
ά ε η6
απ
π
υ
απ
α π
π
π
υ π
!
:
JButton(String s):
υ
α
υ π
π
υ α
α απ
JComponent
addActionListener(ActionListener l):
υ
υ π.
α
π
α
α
φα
π
α υ
φ
υα
α
φ
α
πα α
π
αυ
υ
υ Frame.
υ
πα
υ
υ π
υ
υ
s
α
υ π
α
.
:
υ π
.
υ (getContentPane())
.
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
π
υ Frame
14
156.
α
υ
JButton.
α1
α JFrame α π
υ
αυ
α
Imports: JButton, JFrame, Dimensions, Panel
Η
α
α
π
constructor
υ π
φ
υ
α
JFrame
JFrame
α
υX
π
α
υ
υ ,α
υα
π
α
φ
ά ε η6
panel
,
υ α
υ
υ TestFrame α π
υ
υ Frame
αυ
υ
υ Frame
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
15
υ π
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. Menus (II)
Η
ά ε η6
α
JMenuBar
ν π
α
υ JFrame α
απ
α
πα α υ
α
φα
α
υ,
JFrame: setJMenuBar(JMenuBar bar)
H
setEnabled π υ
φα
α
α α
α
α π υ υπ
υ
α JMenuBar π
π
π
απ
π
υ α
α
α
φα
H
add υ JMenu π
π
π
JMenuItem JMenu.
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
17
160. JTextField
JLabel
To JTextField
α
αφ
set/getColumns:
/ π
α JTextField.
set/getText:
/ π
φ
JTextField.
π
υ
α
π .
To JLabel
(π
αφ
ά ε η6
π υ π
παφ :
α
φ
/ π
π
α
α
.
φα
π υ
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
υ
παφ .
υ)
π υ
α
α
α π
φ
φ
π
υ
π υ
π υ
φ
/ π
α
α
π υ π
π
π α
π α
set/getText:
JLabel.
set/getIcon:
JLabel.
υ
π
φα
α
π
α π
19
162. JTextArea
To JTextArea
α
π
α
αφ
παφ
JTextField.
φ
ά ε η6
α
α
α
π υ π
υ(
α
πα
π
φ
υ )
υ
α
α
α
α
append(String s):
υ
s
υ
υπ
υ
setLineWrap(boolean): υ α
αα α π
α
υ
getLineWrap():
α
π
πα απ
υ α
α
getLineCount():
α
α
π υπ
JTextField
setEditable(boolean):
π
αα
π
υ JTextArea
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
υ
α
21
163. α
α
α υ
πα
φα
α4
υ α α φα
υ
α πα
υ
π
α α
φα
α
α JLabel, α JTextField α
α JButton.
απ π
α υ π
α
α
π
α α
υ π.
α
α
JTextArea π υ α
α α
απ
φ
α .
π
α
απ π
α π
αα α
.
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
22
164. α
α
ά ε η6
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
23
165. α
α
α
απ υ
υ
α
Java
υ α
α
π
πα
υ α α
α αυ
α α
π
(Layout Manager)
ά ε η6
π υ
α
α
π
,
α
υ
α
,
FlowLayout
α
π
αα
Σ
αα
π
α
α
α απ
α
π
π
α π α
υ υ
α
α
πα α
. .π.
υ.
α.
GridLayout
α
Η π
α α
π
υ πα α
α
α π
α
. .π.
υ
υ
.Ό α
απ
απ
α nxn
π
α
υ α
π
υπ
α
α
BorderLayout
α
π
α
α
α
α α α
,α
υ
,π
α!
α
α
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
αυ
.
α α υπ
πα
24
166. α
α FlowLayout
α
α
πα α
υ
υ
π
φα
υ Panel
( Χ
υ
π
default)
υ Layout π υ
υ
α
υ . Η πα
π
π
υ
α
α αα
α (α
)
υ Layout π υ
υ
α
π
Panel α .
υα
Panel.
π
απ
υ Σ
πα α
υ.
π
(Container) α
αυ
ά ε η6
υ πα α
α
α
υ α π
π
π υ
.
α
υ
υ υ
α Panel
JFrame
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
25
167. α
α GridLayout
α
α
πα α
υ
α
υ
π
απ
υ πα α
υ Panel
( Χ
π
default)
υ Layout π υ
υ
υ .
πα
υπ
α
α
α
α α
α
α
υ Layout π υ
υ
π
Panel α .
υα
Panel.
π
απ
υ Σ
πα α
υ.
π
(Container) α
αυ
ά ε η6
α
α
υ
υ α π
π
π υ
.
υ
α
α
υ
υ υ
α Panel
JFrame
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
26
168. α
α BorderLayout
α
α
α
π υ
υ
π
πα α
υ
υ πα α
υ Layout π υ
π
υ
.
υ
α
υ Layout π υ
υ
π
Panel α .
υα
Panel.
π
α απ
υ α π
α π
π
α α
υ Σ
πα α
υ.
π
(Container) α
αυ
ά ε η6
π υ
υ
α
.
α
υ
υ υ
α Panel
JFrame
27
170. υ
ά ε η6
υα
Layout Managers
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
29
172. Listeners = Interfaces
Actions:
π
υ π
menu item
Enter
α text field
α
π
υ
π
Event
ά ε η6
α
α
α
Action…
α
Listeners
α Events?
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
31
173. Listeners
α
listeners?
Interfaces
M αυ
π
π
α
α
π
α πα
π
abstract
υ
.
π
α
π
υ Listeners (= interface) α α
αφ
υ
.
π
π
α
υπ
α box π υ α α
,
π
α
α
υ α.
ά ε η6
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
32
174. α
ά ε η6
α ActionListener (1/2)
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
33
175. α
ά ε η6
α ActionListener (2/2)
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
34
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. α
α Calculator (1/5)
Graphical User Interface
Frame
Functionalities Ν Actions
Action Listeners
ά ε η6
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014
36