SlideShare uma empresa Scribd logo
1 de 181
Baixar para ler offline
1
α
π

ά ε η1

π

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

1
α





π
π π α.
α
α
υ
π
π
π

ά ε η1

φα

α

α

χ
α
π

α α
αφ
α
φα

α

υα
α

α

υα α
υ,
α α
α
.
α
υ π
αφ
α
α α α α
φ
α
α
α α
α
( χ
π.χ. J2εE, Android)
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α
απ


υ

π

απ α α υ α
α
α
αυ π
π
υπ
α cloud υπ
.
χ
υ
α
α χ π
α
α υπ
α
π φ .
υ
α α απ
α απ 3
π
υ υπ υ
α α:




ά ε η1

π
π

υ

απ
υ
, πα υ α
φ
α
αφ
χ (Points of Interest - POI).
πα υ α
α
α
υπ
.
πα υ α
α
α
υ Android.

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

α

αχ

αφ

α
υ
χ

υ

α
Data storage

Web server

R1
R3

R2

AP2
AP3

UE1

L1
UE2

ά ε η1

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

D1

D2




χ
χ
π α

α

π υ α
υφ

 Java SDK
 Web Services
 Android SDK

απα

 IP Addressing
 Linux

ά ε η1

α

α

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

α
α






α


α
πα α
(

–
π
).
πα

αυ

(1/3)

π

απ

α α

α

3

α

20-01-2014, 10-02-2014, 10-03-2014

α π
πα
π υ α
χ α
ο
α
υ
αφ
Θα π π
α
π
α α
υ
π α
α
α υ π
απο υχ
Η α ο ο α α π
ου
α
χ
α
.

ά ε η1

α

, αα

α
α απ
α

υ

α
υ οπο
α α

α
π

π
α
π
π ω
ω
α α
α
ο π
ο απ
φα ο
ο α απ

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

α
α

α
α .

αφ

α
α


α

–

π
α α
α α α υ
υπ υ α υ
 Γα
π υ
απ
π α α
α
α
α
.

ά ε η1

α
πα

(2/3)
α

α α

πα α
.
α
υ
α
αφ
. π υ
απ
α
απ α α

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

υ

α
α
 2



α

–

α

α α:
11:00-14:00 –
17:00-20:00 –

1
φ


αφ
α
α α α
 Η πα υ α α
α
( υ χ
1 απ
 3 απ υ

ά ε η1

(3/3)

= απ

α

υχ α

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α)
α

eclass
α απα α
α







α

Η α
α
α
:
 0.3*1 πα α
+ 0.2*2 πα α
+ 0.35*3
πα α
+ 0.15* υ
υ
π υχ α
π
α
(α π
α, α
π)
α
αυ
α α α απ υχ α
α.
πα
α αυ
χ
απ
υ α
φ υ α
π
.
Θα
απ
,
α
π
. υ
χ
αυ
α χ υ
π χ υ
.
Η
απ
α
α
α pass/fail.
π υχ
α
α
υ
υ
α
α
α
υ α
α
.

ά ε η1

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

αφ
α




α

α

(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
α










α

α

(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
π




α
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
2
υ
Χ

α

α Java
αφ

π

α

α

α

α

α
παφ , φ
α
α α
α αυ π
ά ε η2

α

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

1



α Java
αφ

π

α υ α
Χ

α

παφ , φ
 α
α α
α

α αυ π
ά ε η2

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

α

α

2
Η






α Java (1/2)
Η Java απ
αυ
ππ
υ
π
α α
.
απ
π υ
α
φ , α α
,α
...
απ
α α
Java
α
α
α.
α
α α α α
υ
απ



ά ε η2

α
: α .java α
α
α
java compiler α π
υ bytecodes.
: Java Virtual Machine (JVM)
π
α α α .

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α
α α

υ :
υ

,

.java
α

java

α
α

α

.class απ
α bytecodes α

3
Η




α 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



α Java
αφ

π

α υ α
Χ

α

παφ , φ
 α
α α
α

α αυ π
ά ε η2

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

α

α

5
π


α

α
α

α










ά ε η2

α

φ
π υ α

αα
υ .

π

α

Ό

α

α

ο ο

π
α


α

α
υ

απ

α

α

α

ο υ ο φ
υ π
α

υ

φ

.



α

α

π

α (inheritance):
α α α
α
υ.

α

υ ά ω
α
παφ .

α
υ

α

αα

υ

α

:

υ

υ

α

υ

(polymorphism): Η
αφ
π απ
(encapsulation): Η απ
υ α
π
π α

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

α
π υ

υ
υ

α α
απ
α

6
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
α α

Η





Η

α

α

α
α
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
υπ
υ







Η 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

α
public static void main(String[] args)
 Η main
π
α











ά ε η2

α α .

απα

public:
static:
void:
π
φ
String[] args: α
υ
. α

φα

α
υ π
α
.
α
α α

πα

α
α
αα

αυ
α

α α π α α απ
α απ
α

υ

Integer.parseInt()
Double.parseDouble()
Γα π
α
java.lang πα

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

.

.

υ

υ Java API

10
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
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
π




α

Η 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
υ







Η 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
α









π α α
α
απ α
Ηα
Η
α




αα

υ π α
π α α
π υ αφ

α

υ
α
α

π

π υ α
υ π υ
[]

α απ
υ

α
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
α


π

(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
α

ά ε η2

α

υπ

α

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

π

α α α ?
System.gc()?

17



α Java
αφ

π

α υ α
Χ

α

παφ , φ
 α
α α
α

α αυ π
ά ε η2

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

α

α

18
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
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
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



α Java
αφ

π

α υ α
Χ

α

παφ , φ
 α
α α
α

α αυ π
ά ε η2

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

α

α

22
α


Java

υ

α

α

π

α

α

α π

.
SuperClass/ParentClass/BaseClass

απ

α α

extends
SubClass/ChildClass/ExtendedClass






H Object (java.lang.Object)
α
super class
.
α
π
α
Α
.
π υυ π
α
π α
α υπ
Object.
π
α
α α
π
υπ
α απ
υ
ππ
α α
α
α α
υ
α.
extends: SubClass extends SuperClass
ά ε η2

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

,
υ

α

α

23
α

ά ε η2

α

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

24
Χα α












α

α υπ
φ
υ
constructors
α
π
υπ
π
υπ
π

π
υπ

π

α α

), α
, π
απ

α

α π

α υπ
direct access
α
α
απ
α
π

.
α

υ

ππ

π

α

α υπ

π υ

α

.
α
α
υπ

υ π
α α απ

α

υ

α
π

υ

υπ
(hiding) .
α
υ
α υπ

α
απ

αυ

υπ
π υ

.
φα

α

.

α
υ
υ
υπ
(method overriding). π
α α
super.
π
α
υ
α static
υπ
static
υπ
α
α
απ
constructor α υπ
π
α α
α
super.

ά ε η2

(π α,
υ ,
α public α protected
.
α
π
α
υπ
.
α π
π
π

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α υπ
υ αυ

αφ

αυ
υπ

α υπ
αφ
υ (hiding).
constructor
υπ

α

25
α

α

π

α

υπ

υα
α

α

π

α
α

α α ?
αφ
?

Method hiding
Method overriding

Η Η
The class method in Animal.
The instance method in Cat.
The instance method in Dog.
ά ε η2

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

26
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
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
Object




α
Η
π
απ
αυ





ά ε η2

π υ

Java.
αυ
π
α α
απ
α:
equals(): π

α

υ .
α
π
φ

υφ
υ π
α

φ

π υ

α
α α
α αα

υ
override

α
.
α

Object π υ α
α α
π

false α
αα
υ α
α
α
υ
α
α override
αυ
π
α
α
α α α
α υ α
α
α.
getClass(): α
α runtime representation
α
α αα α
υ π
φ
π . myObject.getClass().getName()
toString(): α πα
α string α
α απα
υ
υ override α α πα υ
υ
π α
α
π
.

α

true

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

υ

π
α

α

(

α
υ

).

π υα

object.
α
π

α.
α

αυ

,
α
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



α Java
αφ

π

α υ α
Χ

α

παφ , φ
 α
α α
α

α αυ π
ά ε η2

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

α

α

31
παφ









π

(Interfaces)

π υ
υ
α υ φ
υ
α
α
α
α
π
α π
α
α α α
υ
υ π
!
α interfaces α πα
υ αυ
υ α
α.
Java α interface απ
α reference type, πα
α
, α π
α
(static & final
α
) α
.
υ π
α Α Α
.
π
α
υ
υ
α
α απ interfaces.
Έ α interface π
α
implement απ
α
extend απ
α
interface.
α
π
α
implement πα απ
απ
α interfaces (
α
α, π υ π
α
extend α
).
Ό α
υ
implement α interface, π π
α
υ
α
α
υ π υ
α.
: interface, implements
ά ε η2

υ

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

32
υ
implements
extends

ά ε η2

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

33
φ


π

(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



α Java
αφ

π

α υ α
Χ

α

παφ , φ
 α
α α
α

α αυ π
ά ε η2

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

α

α

35
α









α (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




α (Scope)
Η Java α πα
α
απ access modifiers
υ
α
απ υ
α
α
α
α
π
/
α
α
.
Η
α
πα
π α
α .
α









ά ε η2

α

,α
υπ
private)

απ

π

α
α απ
υ
π

α

(Φ

public α
πα
π υ
modifier,
α
α

α υπ
α.

αυ
υ

α

απ

default (packageπα
.

υ α αυ

private:
package-private:
α
πα
υ π
α
π
protected:π
α
αυ
πα
α
π υ
public:
,α
α
αυ .

π

α α

α)
α

α

.

υ π
α

,
(α
υ π

πα

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

υ,

π

π υα

αυ

.

υ
π υα
υ
πα
υ)
α
π

37



α Java
αφ

π

α υ α
Χ

α

παφ , φ
 α
α α
α

α αυ π
ά ε η2

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

α

α

38
π


υ


αφ ,
α
πα α












ά ε η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
α








α

α
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
Αναφο έ


Javadoc



Oracle tutorial




ά ε η2

http://download.oracle.com/javase/7/docs/api/
http://docs.oracle.com/javase/tutorial/index.html

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

41
3
Ν α α (Threads) η Java
Συγχ
ό
ω
γα
Collections & Generics
αχ
η φα
ω
η Java

ά ε η3

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

1




υ

α α (Threads)

α
 Collections & Generics
 α
φα

ά ε η3

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

Java

Java

2
α






α

υπ

α α

α φα
απ
υ
υ α
απ
α
(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



α

α α

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


α

α α

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.
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
Static

α
α

π υ υπ
υ thread π υ
α
υ απ υ
α
πα

υ

run
thread
To α
π π
π υ
interrupt απ
π

thread
thread

H main
απ
α α
απ
α thread α π
α α
threadMessage

ά ε η4

υ

t
α α

π υ Thread α πα
thread π υ
α




υ

α α (Threads)

α
 Collections & Generics
 α
φα

ά ε η3

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

Java

Java

8
υ


α αα υ
threads α
α υ

π α

π

α
α.

α

π

υ
π

α
α

α

απ

αυ

start()
thread1

thread2
Shared
object



Java
π



π
ά ε η3

α πα
α
π

α
υ.

π
π

π

α

π
α
deadlocks α starvation.
Τ

υ

,α

α απ

υ

α

α
απ φυ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

υ
υ
α α

9
υ

α
υ
synchronized
υ
φ
α
α α
π
α
synchronized
υα
π
α π α π
α
υπ
π synchronized
υ α υ synchronized α
α
intrinsic lock π υ α
α

υ

π

ά ε η3

Τ

π
α
απα

α

υ

α π υ
π

αΠ η φ
α Τη επ α ω
Α άπ υ η Λ γ
αά2η 2013-2014 α
α
Χε ε

π

υ
α

α π
φα
α

π
α

α

α

α

α

π α

π
υ,

υ .
πα

α

α

π
t

υ

υ

α απ υ
α απ
υ.

απ αυ
starvation,
α
α
α synchronized
BLOCKED
α

.

α
π

α
υ.

α
α
υ

α block

π π
statements π π
π
α
π
Fine-grained υ
α
α
π
υ α
α
υ
ά ε η3

Τ

α

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

.

π

α

α

π
α

synchronized
υ
π
υ
lock .
α
υ

11
υ

α
α

α

π

ά ε η4

Τ

απ
αφ

υ

αυ

α

αΠ η φ
α Τη επ
ω ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί12-2013

απ
π
π

π

α

απ
υ

υ

12
Α



(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




υ

α α (Threads)

α
 Collections & Generics
 α
φα

ά ε η3

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

Java

Java

14
α





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
α

α
α
π
απ

α

υ

ά ε η3

Τ

π

α

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

ls π υ

/bin

α

getInputStream α πα
α
output stream
α α πα
. α
α αυ
input stream α
main

υ
υ

buffered
α
-

input stream α
α
α
α

!!

16




υ

α α (Threads)

α
 Collections & Generics
 α
φα

ά ε η3

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

Java

Java

17
Collections



Ω Collections
α α
απ υ
α
α. α Collections α πα
α α απ
υ
α α α
Έ α collection framework π
α
:







ά ε η3

π
ππ
αα

αα
α
α framework
α αυ .

Interfaces:
παφ
α α
/π
π α
υ
collections π υ α
υ
αφ
π
υ π
Κ ά ε :π
α
υ υ π
Interfaces. υ
α
φα
α .
Α γο ί ου : α
π
α α
, α
α
υ π
α
αφ
π
αφ
α
αυ
α π υ
φ
α α
α
αφ
α
α
collection interface.

απ α α α
collection framework:




α
υ

Έ
α
Data structures
α API α

α
π

υ
,α
Τ

α π
απ
α

.

α α απ

φα
α
απ

π

α
υ
π

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

π
υ

π

α

π
18
Collection interfaces


αφ
αφ










ά ε η3

collection interfaces υ
π υ απ
υ
α

Collection:
α
.Χ
π
Set:
α υ
List: υ
α
π
π
υ
Queue: collection
Map: collection π
SortedSet: α
.
SortedMap: α
α
α.

α
α

α

υ

α
α

π α
απ α

υ
αα
π υ
υα

φα
π

α
α

α α
.

α

collections α
υ π
α απ
π
α collections
π
α υπ
υ
π
υπα α
α π υ φα
υ
α
. π
π υ index.
υ
.
α
α
.
Set,
π υ
α αα
Map, α

Τ

α

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

π

α

υ

π α
π .
α.
α

α
α

19
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
π





π
α
α

υ





υ
, α
α απ

π
α

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
Ά


α



...

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
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
πα α

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




υ

α α (Threads)

α
 Collections & Generics
 α
φα

ά ε η3

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

Java

Java

25
Σφ


α φ
π









αα




ά ε η3

α α (Bugs)
α
α

Α

η Java (1/2)
α

π

υπ π

α

α
α

αυ
,

π

α

C:
perror υπ
Java: Χ

πα

α

π
υ

π

α

α

υ
π α
φ
απ υ υ
.
α
(exceptions).
(checked) α

α

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

α α
πα

π

:
α

υ

,
(unchecked).

26
Σφ

αα

η 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
Κα ηγ






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
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
α
α
φ

φ
α

α α
α

α
α α.

α
α

α2π α

α
.
Γα

α

υ

π

α

;

Χ
2 α
exceptions α α
α
υ
π π
απ
α
υα
υ α
φ
α
αφ .
ά ε η3

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

30
απ φα
α .
1. Α α
α
π

α
π

α
.

α

φ

ά ε η3

α

α

α απ
α
38.

φ
π

2. Α α
α
α

α

exception

α

α
α

3. Α

53!
φα
π

υ stack trace π υ α
exception π
π
υπ
α
α α α
α
:
π ώ
π υ
α (απ π
π
α
).
υ
α
υ
α .
αυ
π
α.
α
π
α
υ
.

.

58!

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

31
Απ
-

φα













ά ε η3

α α

exceptions π
π υ
α




υπ
φ

α.

Ν

ΝΑ

φ

υ α

υ

printStackTrace();
α
α

Α Η

α
φα
α π

π
(

απ

Α Τ

απ

α
φα
α

Exceptions
π

α

υ

Η:

α απ υ
απ υ

α

π υ

α
α
α
α
Exception).
α throws

υ
α .

φ

α

α

α

main.

α πα

exceptions:

exception handling απ

α

exception υ
α
call stack, απ
throws.
α
π
α
exceptions
πα
α α
(π α exceptions FileNotFoundException α
InterruptedIOException π
αα
α α α
απ
IOException)
Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

32
4
Web Services α XML

ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

1
Περ εχό ε α
 XML
 Web Services

ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

2
XML

ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

3
α

XML

 Η XML (eXtensible Markup Language)
α
α markup
metaα (υπ
SGML) π υ
π
α
απ
αφ , α απα
α
α α α α
.

α
α
παφ π
α α α α α
α
φα
αφ
υ
α
.
φα
π
α XML
Parser α α α α
υ α
α υ XML
φ υ.
ππ





ά ε η4

α α

:

π
α απ
built-in data validation
υπ
Unicode

Τ

α

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

4
Έ α 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
α

φ υ

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
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
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
XML Schema
Complex Type Elements:
Simple Type Elements:

Attributes:

Reference Elements:

ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

9
XML Schema
Γ

ο built-in

πο

ο

π

(1/2)

ω :

ππ
:
π
α
α απα
α
DTD-compatible, .α.

ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί12-2013

,
π

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
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
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
.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
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
Web Services

ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

16
α


α 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
Publish, find, bind paradigm

ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

18
…απ

α

π
Η
υ υ
services

Web
URI:

α
π. .
http://webservices.mysite.com/
weather/us/WeatherService

π

ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

WS
π α
α
(

υ
α

α

απ
π υ )

19
υπ

Web Service

α

SOAP reqs-responses

UDDI (WSDL)

ά ε η4

WSDL (UDDI)

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

20
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
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
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
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
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
WSDL Ν

α

α (1/3)
namespace
υ
web service

complex types π υ
α
π
απ
wsdl

Έ

ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

α
WSDL Ν

α

α (2/3)
Namespaces π υ α
π

Request

α

π

XML Schema
α
WSDL

Response
π

ά ε ηι
ά ε η8
6

φ

α

υ,

27

π υ
WSDL Ν

α

α (3/3)

π soap
υ

α
π
SOAP

π

α

WSDL.

α υ web
service α π υ
α
ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014
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
Stubs

α WS
υ
α client
α α

ά ε η4

φα
,
α α
αφ
φα
απ
α
α

Τ

α
SOAP
π
α
α αυ
α α. Ό α
π
α Web Service, α α
software π υ
α stub.

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

α

31

α
Έ α Web Service π

ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

32
AddNumbers.wsdl

α

αυ

π

WS (1/4)

Web application code:

1.1.

υ

α

WDSL

Server-side

ά ε η6

Τ

αΠ η φ
α Τη επ
ω ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί11-2012

α

WS
AddNumbers.wsdl

α

αυ

π

WS (2/4)

1.2.

υ

α

WDSL

Server-side

ά ε η6
ά ε η8
6

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

α

WS
AddNumbersImpl.java

α

αυ

π

WS (3/4)

2.Αυ

α

πα α
WS
α απ
WSDL (π. .
Axis
with ADB (Axis Databinding))
Server-side

ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014
AddNumbersCall.java

α

αυ

π

WS (4/4)

3.

υ

α client code

Client-side

ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014
Quick ΣnΣ Dirty (1/3)
 Η Java απ
6
(javax.xml.ws.Endpoint)
 Αυ
α π
α α α
 Server Side:

ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

Endpoint
WebService
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

π υ

α
Quick ΣnΣ Dirty (3/3)






α

project:

ew  Web Service Client
υ
α
wsdl
α
α
π α
α

 Invocation:

ά ε η4

Τ

αΠ η φ
α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2ί13-2014

υ client
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
5
Java DataBase Connectivity

5

Τ

αΠ
Χ

φ
π υ

α Τ

π

2013-2014

ω

1
α




α




π

π
α

α

π

α
παφ

Τ
5

π

αΠ
Χ

-Κ

φ
π υ

α Τ

π

2013-2014

ω

2


α π
 Κ π



π

φ

π

 Χα α



5

α

π

υπ
απ υπ
.

π α

π

α

α

υ

α

α

π

α

υ .

π
απ
π α

υ
απ απ α
α α αα
Τ

αΠ
Χ

φ
π υ

α Τ

υ

π

2013-2014

υ υπ

ω

3


α α







α απ
α

π
υπ


α υ

απ

α
α α α αφ
α α 1.
α:

α
π α α

α
α
 π
α

υ

π

α α

α α

α α

υ

υ

α
α π υ

α απα

υ
π α π

α.
απ υ
π α
υ

υ

π

α απ

 Oracle, MySQL, Access
 Excel
5

Τ

αΠ
Χ

φ
π υ

α Τ

π

2013-2014

ω

4
α

α
:Έ απ
Ε)

(Δ

π

Φο

α

ώ

έ

υ

Ό

α

Πα α

1

Κ
α α

α αφ
π α α.

:Έ απ
α

ο α
αφ .

π υ

π

υ

α

Φ

α

α

1

Μα

1

α α

ω

Ό

α

Π
α ω
ω

1

ω

5

Τ

αΠ
Χ

φ
π υ

α Τ

π

2013-2014

αφ

ω

α υ
ω

α α

5






π

α
απ



α α
α α
υ 1;
α α
α α









5

α

φ

αφ

φ
φ

π

π

υ

φ

π

φ

αυ

α

α

α

;

π υ
α

πα απ

α απ
απ
υ
υπ
Τ

αΠ
Χ

α

φ
π υ

υ 1 απ φ
υ

α α

α Τ

π

2013-2014

ω

α

6
π



α

απ

υ
π
π

α

π

π

α

,
π
α
παφ π υ π
α υ υ
α
α
υπ
π
α

/

π

φα
π

5

Τ

αΠ
Χ

φ
π υ

α Τ

α

π

2013-2014

ω

7
π


π

παφ
α

JDBC
JDBC (Java DataBase Connectivity) π
φ
π
α
φα

α
Java

φα

φα
π

JDBC
παφ

JDBC

παφ

(

π

παφ

υπ

α

π

απ
α
π υυ π

α

π
πα

Τ

αΠ
Χ

φ
π υ

α Τ

π

2013-2014

ω

1

π υ πα
JDBC
αφ

)

Ν Γ φυ α

5

παφ

α

α
υ π

απ υ

παφ
α

α
αφ

φυ α
α απ
π
( α
π
α
α α
υ
)

2

α
υ

3

α

8
α SQL

 H SQL (Structured Query Language)
α
α απ
απ υ α π
π
α
α α
/α α
υ
α α
απ
υ
α απ /π
/π
.





5

υπ

α

π
απ

α
α
φ π α α

απ

φ

α

:SELECT Υ FROM X WHERE Z

υ

α

απ

Ε
Τ

αΠ
Χ

φ
π υ

:Δ π
υπ α αΧ α

α Τ

π

2013-2014

ω

π

9
α 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
α







παφ
π
παφ

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
α

παφ

 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
π
π
Απ

5

1
ώ

:

α

α

αα

απ υ

υ

πα α

;

: SELECT Element FROM elements;

Τ

αΠ
Χ

φ
π υ

α Τ

π

2013-2014

ω

13
π
π

π

Απ

5

2
ώ

α

:

α

α

α

αα
υ 2;

απ υ

υ

πα α

: SELECT Element FROM elements WHERE Quantity>2;

Τ

αΠ
Χ

φ
π υ

α Τ

π

2013-2014

ω

14
π
π
Απ

5

3
α

ώ

:

α
α
υ2 α

αα

απ υ

υ πα α
50 Euro;

π

α

: SELECT Element FROM elements WHERE Quantity>2 AND Prize<50;

Τ

αΠ
Χ

φ
π υ

α Τ

π

2013-2014

ω

15
π
π

α

Απ

4
ώ

:

α
υ2 α

α

α α

α π υ
υ
50 Euro;

πα α

υ ;

π

α

: SELECT Element, Prize FROM elements WHERE Quantity>2 AND Prize<50;

5

Τ

αΠ
Χ

φ
π υ

α Τ

π

2013-2014

ω

16
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
6
Γ αφ ά ε Java

ά ε η6

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

1
 Γ αφ




α

 awt, swing

ά ε η6

α
α
α

παφ Χ
Ν

Θ
υ

α α

α α
(listeners)

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

2
Γ αφ

ά ε η6

Java

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

3
Γ αφ







Γ αφ


Η


α

παφ
παφ Χ

α

α απ
,
π υ α υπ

αφ

παφ

.

α

υ

π

π

α
α

α υ
α υ



υπ

υ

Ό α α πα απ
π
Η φα
π

α
α

π

π

π

π
π

π

υ υπ

:




ά ε η6

α

MacOS, δinux, Windows….

GUI αφα
π
α
αφ
α



(Graphical User Interface - GUI)

υπ
α

π
α

α

α

α

α π

α απ
υπ
:

παφ
α

αυ

π

π
α

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α α α
π α
α

Δ

α

πα

α αΔ

α
υ

Ε

υ

Ε α

4
α



υ
π
απ
υπ
υ
α


α

α απ
α α
α

π

α

α

α
α
φα

φα

α

…

1

φα

α
n

α

α
α
υ
Δ α Ε - ΔΌ Ε

α
α
α π
απ
α
αφ
απ
α
π π

ά ε η6

α

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α
υ

π

υ

(π
υ,

α
….)
5
Abstract Window Toolkit - AWT


To AWT α
α





π

Core Java API,
α
απ
α
α (java.awt.*).

α

Η φ
υ
α α, α
π
φ

παφ α
α

α

φα

α

υ

α

α java φα

αφ
υ πα

α

α

α
υυ π

α απ
α
α

απ
υ

α

υ

αφ

α
javax.swing


Η
α π
awt.

α υ







ά ε η6

swing
π
υ

Σ
Java

Cross platform
compatibility
Ί α φ
( φ
απα
απ
π
α α
)

αφ
υ
α

π
α

α
α

! (Γ α ;;)

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

7
πα



α

swing

/ π
υ AWT
π
φα
π
α
πα
α

α

α

υ
απ
:
http://dn.codegear.com/el/article/26970

ά ε η6

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

8
α

α α

παφ
πα
υ
αυ π
παφ

JFrame:
π
αφ
JPanel:
α

•Γ

α

•Η α
α
π

α
ά ε η6

JFrame
υ,
α
α JPanel
α Frame π
Frame π
α
α

α

πα
υ
π υπ
JFrame ( Panel
απ
π
α Panel α
.

φα

α

α .

υ JFrame
α
φα
υ
παφ
α .

π

,

παφ (

Frame
α
α α

α

υ

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

JPanel
υ π ,

…)

α)
α N-1,
Panel. Σ

9
α
α α

ά ε η6

α α

-

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

10
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
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
JPanel




To JPanel
α
υ
α
φα



φα

ά ε η6

Η α
π

π

α

φα

υ

υα
α πα α

υ
π
α αα

π απ
παφ

α .

α

α
α

α

α α (α

π

α

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

α

αα

απ υ

add (Component c)
α απ
Layout

α αυ π
α
α

α) :

13
JButton



To JButton
α
υ πα
υ.





α

α









ά ε η6

απ

π
υ

απ

α π

π

π

υ π

!

:

JButton(String s):
υ
α
υ π
π
υ α
α απ
JComponent
addActionListener(ActionListener l):
υ
υ π.
α
π
α
α
φα
π
α υ

φ

υα
α
φ

α

πα α
π
αυ
υ
υ Frame.

υ

πα
υ

υ π

υ

υ

s
α

υ π

α
.

:

υ π
.
υ (getContentPane())
.

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

π

υ Frame

14


α
υ
JButton.

α1
α JFrame α π

υ

αυ

α

Imports: JButton, JFrame, Dimensions, Panel
Η

α

α

π

constructor

υ π

φ

υ

α

JFrame

JFrame

α

υX
π

α

υ
υ ,α
υα

π
α

φ
ά ε η6

panel

,

υ α
υ

υ TestFrame α π

υ
υ Frame
αυ

υ

υ Frame

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

15

υ π
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
Menus (II)
 Η





ά ε η6

α

JMenuBar
ν π
α
υ JFrame α
απ
α
πα α υ

α
φα

α

υ,

JFrame: setJMenuBar(JMenuBar bar)
H
setEnabled π υ
φα
α
α α
α
α π υ υπ
υ
α JMenuBar π
π
π
απ
π
υ α
α
α
φα
H
add υ JMenu π
π
π
JMenuItem JMenu.

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

17




α

α2

Θα
υ
υ
menu υ
PowerPoint. Θα α απ
υ
π
π π
File
α
α
υ
υ
π
υ.
π
π
π
Save As α View

ά ε η7

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

18
JTextField
JLabel


To JTextField
α
αφ






set/getColumns:
/ π
α JTextField.
set/getText:
/ π
φ
JTextField.
π
υ
α
π .

To JLabel
(π
αφ



ά ε η6

π υ π
παφ :

α

φ

/ π

π
α

α

.

φα

π υ

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

υ
παφ .

υ)

π υ

α

α

α π

φ

φ

π

υ
π υ

π υ

φ

/ π

α
α

π υ π
π
π α
π α

set/getText:
JLabel.
set/getIcon:
JLabel.
υ

π

φα

α
π

α π
19


α

α3

π
π π
πα α

α

α

α
α

α

π

JFrame
φα
α

υα

αφ

α .
α

α.

α

α

υ JLabel α

φ

φ

υ JTextField α
πα

ά ε η6

π

υ

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

Η υ
α
Ί α α

α α

y

α
20
JTextArea
 To JTextArea
α
π
α
αφ
παφ



JTextField.
φ







ά ε η6

α

α

α

π υ π
υ(
α
πα

π

φ

υ )

υ

α

α
α

α

append(String s):
υ
s
υ
υπ
υ
setLineWrap(boolean): υ α
αα α π
α
υ
getLineWrap():
α
π
πα απ
υ α
α
getLineCount():
α
α
π υπ
JTextField
setEditable(boolean):
π
αα
π
υ JTextArea

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

υ

α

21
α


α
α υ
πα
φα

α4
υ α α φα
υ
α πα
υ
π
α α
φα
α
α JLabel, α JTextField α
α JButton.
απ π
α υ π
α
α
π
α α
υ π.
α
α
JTextArea π υ α
α α
απ
φ
α .
π
α
απ π
α π
αα α
.

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

22
α

α

ά ε η6

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

23
α


α

α
απ υ
υ
α
Java
υ α
α
π
πα
υ α α
α αυ
α α
π
(Layout Manager)






ά ε η6

π υ
α

α

π

,

α

υ
α

,

FlowLayout



α
π



αα

Σ

αα
π
α

α
α απ

α

π

π
α π α
υ υ

α
α

πα α

. .π.

υ.

α.

GridLayout



α

Η π
α α
π

υ πα α
α
α π
α
. .π.

υ

υ
.Ό α

απ
απ

α nxn
π
α
υ α

π

υπ
α

α

BorderLayout



α
π

α
α

α
α α α
,α

υ
,π

α!
α

α

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

αυ

.

α α υπ

πα

24
α

α FlowLayout

α

α

πα α

υ

υ

π
φα

υ Panel
( Χ

υ

π
default)

υ Layout π υ
υ
α
υ . Η πα
π
π
υ
α
α αα
α (α
)
υ Layout π υ
υ
α
π
Panel α .

υα
Panel.
π
απ
υ Σ
πα α
υ.
π
(Container) α
αυ
ά ε η6

υ πα α

α

α

υ α π
π

π υ

.

α

υ

υ υ
α Panel
JFrame
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

25
α

α GridLayout

α

α

πα α

υ

α

υ

π
απ

υ πα α

υ Panel
( Χ

π
default)

υ Layout π υ
υ
υ .
πα
υπ
α
α
α
α α

α
α

υ Layout π υ
υ
π
Panel α .

υα
Panel.
π
απ
υ Σ
πα α
υ.
π
(Container) α
αυ
ά ε η6

α

α

υ

υ α π
π

π υ

.

υ

α

α

υ

υ υ
α Panel
JFrame
Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

26
α

α BorderLayout
α

α

α

π υ
υ

π

πα α

υ

υ πα α

υ Layout π υ
π
υ

.

υ

α

υ Layout π υ
υ
π
Panel α .
υα
Panel.
π
α απ

υ α π
α π
π
α α

υ Σ
πα α
υ.
π
(Container) α
αυ
ά ε η6

π υ

υ

α

.

α

υ

υ υ
α Panel
JFrame
27
υ









υα

Layout Managers

π
π

α
υ

π

FlowLayout: π
απ
α
α
α
πα
υ
α
GridLayout:
απ !
BorderLayout:
υ
α
α
.

π

α υ

υ

υα

π

π

α panel

π

π

α

α
.

α

υ

πα

α

π π

α

υ

α

!

GridLayout (2x4)
FlowLayout
BorderLayout
ά ε η6

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

28
υ

ά ε η6

υα

Layout Managers

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

29
Listeners

ά ε η6

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

30
Listeners = Interfaces
 Actions:









π

υ π
menu item
Enter
α text field
α
π
υ

π

 Event

ά ε η6

α

α

α

Action…
α

Listeners

α Events?

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

31
Listeners



α

listeners?

 Interfaces
 M αυ
π
π
α
α
π
α πα
π
abstract
υ
.

π
α
π
υ Listeners (= interface) α α
αφ
υ
.
π
π
α
υπ
α box π υ α α
,
π
α
α
υ α.
ά ε η6

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

32
α

ά ε η6

α ActionListener (1/2)

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

33
α

ά ε η6

α ActionListener (2/2)

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

34
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
α

α Calculator (1/5)
Graphical User Interface
Frame

Functionalities Ν Actions
Action Listeners

ά ε η6

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

36
α

α Calculator (2/5)

 Frame Creation

ά ε η6

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

37
α

α Calculator (1/X)

 Frame Creation

ά ε η6

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

38
α

α Calculator (1/X)

 Action Listeners

ά ε η6

Τ ή αΠ η φ
ή α Τη επ
ω
Α άπ υ η Λ γ
Χε ε
ά η 2013-2014

39
α

α Calculator (5/5)

 Action Listeners

ά ε η7

40

Mais conteúdo relacionado

Destaque

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Destaque (20)

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 

Lectures 1 6

  • 1. 1 α π ά ε η1 π Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 1
  • 2. α    π π π α. α α υ π π π ά ε η1 φα α α χ α π α α αφ α φα α υα α α υα α υ, α α α . α υ π αφ α α α α α φ α α α α α ( χ π.χ. J2εE, Android) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α
  • 3. απ  υ π απ α α υ α α α αυ π π υπ α cloud υπ . χ υ α α χ π α α υπ α π φ . υ α α απ α απ 3 π υ υπ υ α α:    ά ε η1 π π υ απ υ , πα υ α φ α αφ χ (Points of Interest - POI). πα υ α α α υπ . πα υ α α α υ Android. Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α αχ αφ α υ
  • 4. χ υ α Data storage Web server R1 R3 R2 AP2 AP3 UE1 L1 UE2 ά ε η1 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 D1 D2
  • 5.   χ χ π α α π υ α υφ  Java SDK  Web Services  Android SDK απα  IP Addressing  Linux ά ε η1 α α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α α
  • 6. α     α  α πα α ( – π ). πα αυ (1/3) π απ α α α 3 α 20-01-2014, 10-02-2014, 10-03-2014 α π πα π υ α χ α ο α υ αφ Θα π π α π α α υ π α α α υ π απο υχ Η α ο ο α α π ου α χ α . ά ε η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
  • 13. 2 υ Χ α α Java αφ π α α α α α παφ , φ α α α α αυ π ά ε η2 α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 1
  • 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
  • 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. α ά ε η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
  • 45. υ implements extends ά ε η2 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 33
  • 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
  • 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. Αναφο έ  Javadoc  Oracle tutorial   ά ε η2 http://download.oracle.com/javase/7/docs/api/ http://docs.oracle.com/javase/tutorial/index.html Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 41
  • 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
  • 65. υ α α α π ά ε η4 Τ απ αφ υ αυ α αΠ η φ α Τη επ ω ω Α άπ υ η Λ γ Χε ε ά η 2ί12-2013 απ π π π α απ υ υ 12
  • 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
  • 88. XML ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 3
  • 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 α υ υ α α : [<  &lt;] [>  &gt;] .α. ά ε η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
  • 95. XML Schema Γ ο built-in πο ο π (1/2) ω : ππ : π α α απα α DTD-compatible, .α. ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί12-2013 ,
  • 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
  • 101. Web Services ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 16
  • 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. Publish, find, bind paradigm ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 18
  • 104. …απ α π Η υ υ services Web URI: α π. . http://webservices.mysite.com/ weather/us/WeatherService π ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 WS π α α ( υ α α απ π υ ) 19
  • 105. υπ Web Service α SOAP reqs-responses UDDI (WSDL) ά ε η4 WSDL (UDDI) Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 20
  • 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
  • 111. WSDL Ν α α (1/3) namespace υ web service complex types π υ α π απ wsdl Έ ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 α
  • 112. WSDL Ν α α (2/3) Namespaces π υ α π Request α π XML Schema α WSDL Response π ά ε ηι ά ε η8 6 φ α υ, 27 π υ
  • 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
  • 117. AddNumbers.wsdl α αυ π WS (1/4) Web application code: 1.1. υ α WDSL Server-side ά ε η6 Τ αΠ η φ α Τη επ ω ω Α άπ υ η Λ γ Χε ε ά η 2ί11-2012 α WS
  • 118. AddNumbers.wsdl α αυ π WS (2/4) 1.2. υ α WDSL Server-side ά ε η6 ά ε η8 6 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014 α WS
  • 119. AddNumbersImpl.java α αυ π WS (3/4) 2.Αυ α πα α WS α απ WSDL (π. . Axis with ADB (Axis Databinding)) Server-side ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014
  • 120. AddNumbersCall.java α αυ π WS (4/4) 3. υ α client code Client-side ά ε η4 Τ αΠ η φ α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2ί13-2014
  • 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
  • 125. 5 Java DataBase Connectivity 5 Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 1
  • 127.  α π  Κ π  π φ π  Χα α    5 α π υπ απ υπ . π α π α α υ α α π α υ . π απ π α υ απ απ α α α αα Τ αΠ Χ φ π υ α Τ υ π 2013-2014 υ υπ ω 3
  • 128.  α α     α απ α π υπ  α υ απ α α α α αφ α α 1. α: α π α α  α α  π α υ π α α α α α α υ υ α α π υ α απα υ π α π α. απ υ π α υ υ π α απ  Oracle, MySQL, Access  Excel 5 Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 4
  • 129. α α :Έ απ Ε) (Δ π Φο α ώ έ υ Ό α Πα α 1 Κ α α α αφ π α α. :Έ απ α ο α αφ . π υ π υ α Φ α α 1 Μα 1 α α ω Ό α Π α ω ω 1 ω 5 Τ αΠ Χ φ π υ α Τ π 2013-2014 αφ ω α υ ω α α 5
  • 130.     π α απ  α α α α υ 1; α α α α       5 α φ αφ φ φ π π υ φ π φ αυ α α α ; π υ α πα απ α απ απ υ υπ Τ αΠ Χ α φ π υ υ 1 απ φ υ α α α Τ π 2013-2014 ω α 6
  • 131. π  α απ υ π π α π π α , π α παφ π υ π α υ υ α α υπ π α / π φα π 5 Τ αΠ Χ φ π υ α Τ α π 2013-2014 ω 7
  • 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
  • 137. π π Απ 5 1 ώ : α α αα απ υ υ πα α ; : SELECT Element FROM elements; Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 13
  • 138. π π π Απ 5 2 ώ α : α α α αα υ 2; απ υ υ πα α : SELECT Element FROM elements WHERE Quantity>2; Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 14
  • 139. π π Απ 5 3 α ώ : α α υ2 α αα απ υ υ πα α 50 Euro; π α : SELECT Element FROM elements WHERE Quantity>2 AND Prize<50; Τ αΠ Χ φ π υ α Τ π 2013-2014 ω 15
  • 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
  • 146. α   υ π απ υπ υ α  α α απ α α α π α α α α φα φα α … 1 φα α n α α α υ Δ α Ε - ΔΌ Ε  α α α π απ α αφ απ α π π ά ε η6 α Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 α υ π υ (π υ, α ….) 5
  • 147. Abstract Window Toolkit - AWT  To AWT α α    π Core Java API, α απ α α (java.awt.*). α Η φ υ α α, α π φ παφ α α α φα α υ α α java φα αφ υ πα α α α υυ π α απ α α απ υ α υ αφ α
  • 148. javax.swing  Η α π awt.  α υ      ά ε η6 swing π υ Σ Java Cross platform compatibility Ί α φ ( φ απα απ π α α ) αφ υ α π α α α ! (Γ α ;;) Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 7
  • 149. πα   α swing / π υ AWT π φα π α πα α α α υ απ : http://dn.codegear.com/el/article/26970 ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 8
  • 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
  • 159.   α α2 Θα υ υ menu υ PowerPoint. Θα α απ υ π π π File α α υ υ π υ. π π π Save As α View ά ε η7 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 18
  • 160. JTextField JLabel  To JTextField α αφ     set/getColumns: / π α JTextField. set/getText: / π φ JTextField. π υ α π . To JLabel (π αφ    ά ε η6 π υ π παφ : α φ / π π α α . φα π υ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 υ παφ . υ) π υ α α α π φ φ π υ π υ π υ φ / π α α π υ π π π α π α set/getText: JLabel. set/getIcon: JLabel. υ π φα α π α π 19
  • 161.  α α3 π π π πα α α α α α α π JFrame φα α υα αφ α . α α. α α υ JLabel α φ φ υ JTextField α πα ά ε η6 π υ Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 Η υ α Ί α α α α y α 20
  • 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
  • 169. υ       υα Layout Managers π π α υ π FlowLayout: π απ α α α πα υ α GridLayout: απ ! BorderLayout: υ α α . π α υ υ υα π π α panel π π α α . α υ πα α π π α υ α ! GridLayout (2x4) FlowLayout BorderLayout ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 28
  • 170. υ ά ε η6 υα Layout Managers Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 29
  • 171. Listeners ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 30
  • 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
  • 178. α α Calculator (2/5)  Frame Creation ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 37
  • 179. α α Calculator (1/X)  Frame Creation ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 38
  • 180. α α Calculator (1/X)  Action Listeners ά ε η6 Τ ή αΠ η φ ή α Τη επ ω Α άπ υ η Λ γ Χε ε ά η 2013-2014 39
  • 181. α α Calculator (5/5)  Action Listeners ά ε η7 40