You are on page 1of 58

Ngn ng lp trnh Java

(Java Programming Language)


Mn hc: Ngn ng lp trnh Java
Khoa: CNPM, Trng i hc CNTT HQG TpHCM
GV: Th.S. Hunh Ngc Tn
Email: tinhn@uit.edu.vn

Mc tiu mn hc
Nm vng cc khi nim, c im c bn ca ngn ng lp trnh java.
Hiu r t tng hng i tng ca java
C kh nng c hiu ti liu ting Anh v java.
C kh nng vn dng cc k thut lp trnh c bn v nng cao trong
Java xy dng chng trnh ng dng.
Hiu v c kh nng lm vic nhm trong lp trnh
Hnh thnh c t duy t chc kin trc chng trnh mt cch c h
thng v tc phong lp trnh chuyn nghip thng qua ngn ng Java.
C kh nng t hc v s dng thnh tho mt s cng c ph bin h

tr lp trnh java.

Ni dung mn hc
Chng 1: Gii thiu v NNLT Java
Chng 2: Hng i tng trong Java
Chng 3: Cc lp tin ch trong Java
Chng 4: Nhp xut v qun l Exception
Chng 5: X l a lung
Chng 6: Kt ni v thao tc CSDL vi JDBC
Chng 7: Lp trnh GUI vi AWT & Swing
Qui c vit m trong java

Hnh thc nh gi
L thuyt cui k: 50%
Thc hnh: 30%
Seminar/Bi tp: 20%

TI LIU THAM KHO


1. Herbert Schildt, Java, A Beginner's Guide, 5th Edition, McGraw-Hill,
2011
2. Herbert Schildt, Java The Complete Reference, 8th Edition, McGrawHill, 2011.
3. Stuart Reges, Marty Stepp, Building Java Programs: A Back to Basics
Approach, Addison Wesley, 2010.
4. Barry Burd, Beginning Programming with Java For Dummies, For
Dummies, 2012.
5. Madhusudhan Konda, What's New in Java 7, O'Reilly Media, 2011

TI LIU THAM KHO


MIT Opencourseware
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-092-introduction-toprogramming-in-java-january-iap-2010/lecture-notes/

Oracle - Java
http://www.oracle.com/us/technologies/java/overview/index.html

CHNG 1

TNG QUAN V NNLT JAVA

NI DUNG
Lch s pht trin
Cng ngh Java

Cc dng chng trnh Java


c im ca Java
My o Java (Java Virtual Machine)
Vit, dch, thc thi chng trnh HelloWorld
Mi trng, cng c: gii thiu mt s IDE ph bin

Lch s pht trin


1991: Sun Microsystems pht trin OAK nhm mc ch vit phn mm
iu khin (phn mm nhng) cho cc sn phm gia dng.

1995: internet bng n, pht trin mnh. Sun pht trin OAK v gii
thiu ngn ng lp trnh mi tn Java

Java l ngn ng hng i tng ta C, C++

Lch s pht trin


Java Development Kit (JDK)
Mi trng pht trin v thc thi do Sun
Microsystems cung cp (http://java.sun.com)
Bao gm phn mm v cng c gip compile,
debug and execute ng dng.
JDK 1.0

- 1996

JDK 1.1

- 1997

JDK 1.2 (Java 2)

- 1998

JDK 1.3

- 2000

Java 1.4

- 2002

Java 5 (1.5)

- 2004

Java 6

- 2006

http://en.wikipedia.org/wiki/James_Gosling

Cc nn tng Java
Cng ngh:
Ngn ng lp trnh
Mi trng thc thi v trin khai
Mi trng pht trin
Cng ngh J2SE (Java 2 Standard Edition)
Cng ngh J2EE (Java 2 Enterprise Edition)
Cng ngh J2ME(Java 2 Micro Edition)

Mt s thng k tham kho

Mt s thng k tham kho

Mt s thng k tham kho

Cc dng chng trnh java


Applets:

Cc dng chng trnh java


Console Applications

Cc dng chng trnh java


ng dng Desktop

Cc dng chng trnh java


ng dng Web

Cc dng chng trnh java


Mt dng phn mm trn thit b di ng

http://www.tiobe.com/index.php/content/pa
perinfo/tpci/index.html

c im java
Ta C++, hng i tng hon ton.
Kh chuyn, c lp nn.
Thng dch (va bin dch va thng dch).
C ch gii phng b nh t ng.
An ton, bo mt.

C LP VI NN

Java Virtual Machine

L phn mm da trn c s my tnh o.


C th xem nh 1 h iu hnh thu nh.
Cung cp mi trng thc thi cho chng trnh java (c lp nn)
Hnh thnh 1 lp tru tng:
Phn cng my tnh bn di
H iu hnh

M bin dch
Chng trnh java ch chy khi c JVM
JVM c v thc thi tng cu lnh java

KiN TRC J2SE

c im java
Ta C++, hng i tng hon ton.
Kh chuyn, c lp nn.
Thng dch (va bin dch va thng dch).
C ch gii phng b nh t ng.
An ton, bo mt.

Chng trnh truyn thng

MI TRNG LP TRNH JAVA

Dch v thc thi chng trnh java

Vit v thc thi chng trnh Hello World

Dng Notepad son tho on lnh bn di v lu li vi tn


HelloWorld.java
import java.io.*;

Khai bo th vin java.io

nh ngha lp tn HelloWorld

class HelloWorld
{

Bt u on lnh

public static void main(String args[])

Phng thc
main

{
System.out.print(Hello Class);
}

Xut ra Console
thng bo

Kt thc on lnh

Vit v thc thi chng trnh Hello World (tt)

Bin dch: dng chng trnh javac


C:\> javac HelloWorld.java

Bin dch thnh cng to ra tp tin c ui .class (HelloWorld.class)


Thng dch (thc thi): dng chng trnh java
C:\> java HelloWorld

Lu : Phi khai bo ng dn ch n th mc ci t java, v th mc


cha cc class cn thc thi
V d:

C:\> set path=C:\jdk1.5\bin\

C:\> set classpath = D:\ThucHanhJava\BT1\

Mi trng, cng c
Mi trng pht trin v thc thi ca Sun JDK 1.5
IDE (Integrated Development Enviroment)
Jcreator Pro 3.5
NetBean 5.5
Eclipse 3.2
Jbuilder 9.0

CHNG 2

CN BN V NGN NG JAVA

NI DUNG

Bin & Hng


Kiu d liu (kiu c s, kiu tham chiu)

Ton t, biu thc


Cc cu trc iu khin (chn, r nhnh, lp)
Lp bao kiu c s
Phng thc v cch s dng
Mt s v d minh ha

Bin
Bin l mt vng nh lu cc gi tr ca chng trnh
Mi bin gn vi 1 kiu d liu v 1 nh danh duy nht l tn bin
Tn bin phn bit ch hoa v ch thng. Tn bin bt u bng 1 du _,
$, hay 1 k t, khng c bt u bng 1 k s.

Khai bo
<kiu d liu> <tn bin>;
<kiu d liu> <tn bin> = <gi tr>;
Gn gi tr
<tn bin> = <gi tr>;

Phn loi bin


Bin trong Java c 2 loi: instance varible v local variable.

i vi instance variable, c th c s dng m khng cn

khi to gi tr (c t ng gn gi tr mc nh).
i vi local varible, Java bt buc phi khi to gi tr trc khi

s dng. Nu khng s to ra li khi bin dch.

Hng
L mt gi tr bt bin trong chng trnh
Tn t theo qui c nh tn bin
c khai bo dng t kha final, v thng dng tip v ng
i vi cc hng s (l, L, d, D, f, F)
V d:
final int x = 10; // khai bo hng s nguyn x = 10
final long y = 20L; // khai bo hng s long y = 20
Hng k t: t gia cp nhy n
Hng chui: l mt dy k t t gia cp nhy i

Hng k t c bit
K t

ngha

\b

Xa li (BackSpace)

\t

Tab

\n

Xung hng

\r

Du enter

Nhy kp

Nhy n

\\

\f

y trang

\uxxxx

K t unicode

Kiu d liu
Kiu d liu c s (primitive data type)
Kiu d liu tham chiu (reference data type)

Kiu d liu c s
Kiu c s

Kiu lun l

Kiu k t

Kiu s

kiu nguyn
boolean

kiu thc

char

byte

short

int

long

float

double

Kiu d liu c s (tt)


Kiu
boolean

Kch thc (bits)


Gi tr
[Note: The representation true v false
of a boolean is specific to
the Java Virtual Machine on
each computer platform.]

char

16

byte

short

16

int

32

long

64

float

32

double

64

Gi tr mc nh
false

'\u0000' to '\uFFFF'
(0 to 65535)
128 to +127
(27 to 27 1)
32,768 to +32,767
(215 to 215 1)
2,147,483,648 to +2,147,483,647
(231 to 231 1)

null

9,223,372,036,854,775,808 to
+9,223,372,036,854,775,807
(263 to 263 1)
1.40129846432481707e45 to
3.4028234663852886E+38
4.94065645841246544e324 to
1.7976931348623157E+308

0l

0
0
0

0.0f
0.0d

Kiu d liu c s (tt)


Chuyn i kiu d liu: khi c s khng tng thch v kiu
d liu (gn, tnh ton biu thc, truyn i s gi phng thc)
Chuyn kiu hp (ln nh): cn p kip

<tn bin 2> = (kiu d liu) <tn bin 1>;


Chuyn kiu rng (nh ln): t ng chuyn

Kiu d liu c s (tt)


Lu
1. Khng th chuyn i gia kiu boolean vi int v ngc li.

2. Nu 1 ton hng kiu double th


Ton hng kia chuyn thnh double
Nu 1 ton hng kiu float th
Ton hng kia chuyn thnh float

Nu 1 ton hng kiu long th


Ton hng kia chuyn thnh long
Ngc li Tt c chuyn thnh int tnh ton

Kiu d liu c s (tt)


V d minh ha
1. byte x = 5;
2. byte y = 10;
3. byte z = x + y;
// Dng lnh th 3 bo li chuyn kiu cn sa li
// byte z = (byte) (x + y);

Kiu d liu tham chiu


Kiu mng
Mng l tp hp cc phn t c cng tn v cng kiu d liu.
Mi phn t c truy xut thng qua ch s
Khai bo mng

<kiu d liu>[] <tn mng>; // mng 1 chiu


<kiu d liu> <tn mng>[]; // mng 1 chiu
<kiu d liu>[][]

<tn mng>; // mng 2 chiu

<kiu d liu> <tn mng>[][]; // mng 2 chiu

Kiu d liu tham chiu (tt)


Khi to

int

arrInt[] = {1, 2, 3};

char

arrChar[]

String arrString[]

= {a, b, c};
= {ABC, EFG, GHI};

Cp pht & truy cp mng

int [] arrInt = new int[100];


int arrInt[100]; // Khai bo ny trong Java s b bo li.
Ch s mng n phn t: t 0 n n-1

Kiu d liu tham chiu (tt)


Kiu i tng
Khai bo i tng

<Kiu i tng> <bin T>;


Khi to i tng

<Kiu i tng> <bin T> = new <Kiu i tng>;


Truy xut thnh phn i tng

<bin T>.<thuc tnh>


<bin T>.<phng thc>

Ton t, biu thc


Ton t s hc

Ton t
+
*
/
%
++
--

ngha
Cng
Tr
Nhn
Chia nguyn
Chia d
Tng 1
Gim 1

Ton t, biu thc (tt)


Php ton trn bit

Ton t
&
|
^
<<
>>
~

ngha
AND
OR
XOR
Dch tri
Dch phi
B bit

Ton t, biu thc (tt)


Ton t quan h & logic

Ton t
==
!=
>
<
>=
<=
||
&&
!

ngha
So snh bng
So snh khc
So snh ln hn
So snh nh hn
So snh ln hn hay bng
So snh nh hn hay bng
OR (biu thc logic)
AND (biu thc logic)
NOT (biu thc logic)

Ton t, biu thc (tt)


Ton t gn

Ton t
=
+=
-=
*=
/=
%=

V d
a=b
a += 5
b -= 10
c *= 3
d /= 2
e %= 4

ngha
gn a = b
a=a+5
b = b 10
c=c*3
d = d/2
e=e%4

Ton t, biu thc (tt)


Ton t iu kin

C php: <iu kin> ? <biu thc 1> : < biu thc 2>

V d:
int x = 10;
int y = 20;

int Z = (x<y) ? 30 : 40;


// Kt qu z = 30 do biu thc (x < y) l ng.

Cu trc iu khin
Cu trc if else
Dng 1: if (<iu_kin>) {

<khi_lnh>;

Dng 2:

}
if (<iu_kin>) {
<khi _lnh1>;
}
else {
<khi _lnh2>;
}

Cu trc iu khin
Cu trc switch case

switch (<bin>) {
case <gitr_1>:
<khi_lnh_1>;
break;
.
case <gitr_n>:
<khi_lnh_n>;
break;
default:
<khi lnh default>;
}

Cu trc iu khin
Cu trc lp
Dng 1: while (<iu_kin_lp>) {

<khi _lnh>;
}
Dng 2: do {

<khi_lnh>;

} while (iu_kin);
Dng 3: for (khi_to_bin_m;k_lp;tng_bin)

<khi _lnh>;

Cu trc iu khin
Cu trc lnh nhy jump: dng kt hp nhn (label) vi t kha
break v continue thay th cho lnh goto (trong C).

V d:
label:
for () {
for () {
if (<biu thc iu kin>)
break label;
else
continue label;
}
}

NHP D LiU T CONSOLE

Lp java.util.Scanner
public boolean

nextBoolean() Details

public byte

nextByte() Details

public byte

nextByte(int radix) Details

public double

nextDouble() Details

public float

nextFloat() Details

public int

nextInt() Details

public int

nextInt(int radix) Details

public String

nextLine() Details

public long

nextLong() Details

public long

nextLong(int radix) Details

public short

nextShort() Details

public short

nextShort(int radix) Details

Lp bao kiu d liu


Data type

Wrapper Class
(java.lang.*)

boolean

Boolean

byte

Byte

short

Short

char

Character

int

Integer

long

Long

float

Float

double

Double

Ghi ch
- Gi (package): cha
nhm nhiu class.
- Ngoi cc Wrapper
Class, gi java.lang cn
cung cp cc lp nn tng
cho vic thit k ngn ng
java nh: String, Math,

You might also like