You are on page 1of 24

17/08/2014

LP TRNH JAVA
Bi Trng Tng
B mn Truyn thng v Mng my tnh
Vin CNTT TT, i hc BKHN

V mn hc ny
M hc phn: IT3650
Tn hc phn: Lp trnh Java
Khi lng: 3(0-0-6-6) ~ 90 tit thc hnh
Hc phn theo chng trnh hp tc o to gia trng
i hc BKHN v Tp on Samsung
nh gi:
o im qu trnh (0.3): Hon thnh cc bi tp tun
o im thi cui k (0.7): Hon thnh project + 20% im qu trnh

Website: http://soict.hust.edu.vn/~tungbt/it3650
Ti liu tham kho:
http://docs.oracle.com/javase/tutorial/index.html
2

17/08/2014

Hc k 20141
K hoch (d kin):
o Tun 2-9: L thuyt + Bi tp trn lp + Bi tp tun
o Tun 12-17: Thc hin Project
o Tun 18: Trnh by Project trn lp

Thi gian ng k project: 01-08/12/2014


Quy nh chung xem trn website mn hc

Ging vin
Bi Trng Tng,
Email: tungbt@soict.hust.edu.vn
a ch: Phng 801 Nh B1 i hc BKHN
Website: http://soict.hust.edu.vn/~tungbt

17/08/2014

BI 1.
GII THIU V NGN NG LP TRNH JAVA
Gii thiu chung v Java
S dng trnh bin dch Java v my o Java
Cc phn t c bn trong Java
Ton t v biu thc
Mt s lnh vo ra c bn

1. GII THIU CHUNG V JAVA

17/08/2014

Lch s ngn ng lp trnh


Hp ng
o MOV, ADD, JMP, CMP...
o Ngn ng lp trnh tun t
o Gn vi ngn ng my
o Chng trnh cng knh, kh sa li, bo tr

Ngn ng lp trnh hng cu trc/th tc:


o Pascal, C
o Ngn ng bc cao, gn vi ngn ng t nhin
o D vit
o Chng trnh gm cc chng trnh con (hm, th tc)
o D liu v x l ca hm, th tc tch ri nhau
o Chng trnh = Cu trc d liu + Gii thut

Ngn ng lp trnh hng i tng


Chng trnh gm cc i tng v tng tc gia
chng
Chng trnh = i tng + Thng ip
M hnh ha i tng thc thnh cc i tng phn
mm:
o Dng ngn ng lp trnh m t i tng thc
My ATM i tng thc*

M hnh ha Lp (class) ATM

Thuc tnh: Ngn hng, V tr

Thuc tnh: bank, location

Hnh ng: Kim tra m PIN, Rt


tin, Chuyn khon

Hng ng: userAuthenticated(),


withdraw(), tranfer()

(*) Trong ng cnh ny cp n i tng my ATM ni chung.


Mt i tng my ATM c th no phi c thuc tnh c th
8

17/08/2014

Ngn ng lp trnh Java


Java l mt ngn ng lp
trnh HT c pht trin
bi Sun Microsystems.
Java l mt ngn ng lp
trnh kh tr
o Ban u c s dng xy
dng ng dng iu khin cc
b x l bn trong cc thit b
in t dn dng nh my in
thoi cm tay, l vi sng
o Bt u c s dng t nm
1995 (vi tn gi l Oak)

Ngn ng lp trnh Java


n gin
o Loi b con tr
o Khng c goto, file header
o Loi b struct v union

Hng i tng
o Java c thit k xoay quanh m hnh hng i tng.

Mnh
o Cht ch Loi b cc kiu d liu d gy li

c lp phn cng
o Vit mt ln, chy nhiu ni (ch khc nhau trnh thng dch my
o Java)

10

17/08/2014

Ngn ng lp trnh Java

Ngy nay, nhc n Java, khng cn nhc n


nh mt ngn ng m cn l mt cng ngh, mt
nn tng pht trin.
oJava c mt cng ng pht trin mnh m
oMt tp hp cc th vin vi s lng ln (t Sun v
cc ngun khc)

Java l ngn ng va bin dch va thng dch


oBin dch: M ngun c bin dch bng cng c JAVAC
chuyn thnh dng ByteCode

oThng dch: Bytecode thc thi trn tng loi my c th nh


chng trnh thng dch (nm trong my o Java)

oNhm mc ch vit mt ln, chy nhiu ni


11

Ngn ng lp trnh Java

12

17/08/2014

Ngn ng lp trnh Java


J2SE (Java 2 Platform Standard Edition)
o Cung cp cc thnh phn ct li xy dng ng dng desktopbased
o JRE: Java Runtime Environment: mi trng thc thi chy cc
ng dng Java

J2EE (Java 2 Platform Enterprise Edition)


o Xy dng cc ng dng hng dch v (service-oriented)
o Web service
o ng dng doanh nghip

J2ME (Java 2 Platform Mobile Edition): xy dng ng


dng di ng
13

Ci t trnh bin dch v mi trng thc thi

Download J2SE ti
http://www.oracle.com/technetwork/java/javase/download
s/index.html
Ci t
Thit lp bin mi trng
This PCPropertiesAdvanced system settings
Environments Variables:
- To bin JAVA_HOME trong mc System Variables v t
gi tr l th mc ci t Java
- To(hoc thm) bin PATH: gi tr %JAVA_HOME%\bin;.;
- To (hoc thm) bin PATH: %JAVA_HOME%\bin;.;
%JAVA_HOME%\include
14

17/08/2014

Kim tra Java c ci t ng cch


Trn ca s Command Line ln lt g 2 lnh:
> javac version
> Java version
Nu hai lnh c thc hin thnh cng, thng tin phin
bn Java s xut hin Java c ci t ng

15

Chng trnh Java u tin


// The first Java program
public class HelloWorld {
//Phng thc main, c gi u tin khi chy bt c
ng dng Java no
public static void main (String[] args) {
System.out.println(Hello Java!);
} //Kt thc phng thc main
} //Kt thc lp HelloWorld

16

17/08/2014

Khai bo lp
// The first Java program

Khai bo lp c tn l HelloWorld

public class HelloWorld {


//Phng thc main, c gi u tin khi chy bt c
ng dng Java no
public static void main (String[] args) {
System.out.println(Hello Java!);
} //Kt thc phng thc main
Khai bi mt phng thc
} //Kt thc lp HelloWorld

ca lp HelloWorld

Tm thi, chng ta cha phn tch k ngha ca cc


khai bo ny. Hy dnh n cho cc bi sau.
17

Cu lnh
// The first Java program
public class HelloWorld {
//Phng thc main, c gi u tin khi chy bt c
ng dng Java no
public static void main (String[] args) {
System.out.println(Hello Java!);
} //Kt thc phng thc main
} //Kt thc lp HelloWorld

Thc hin cc thao tc ca lp, x l ca phng thc


Kt thc bng du ;
Mt cu lnh C th vit trn 1 hoc nhiu dng
K hiu bao khi lnh { }
18

17/08/2014

Ch thch
// The first Java program
public class HelloWorld {
/*Phng thc main, c gi u tin khi chy bt c
ng dng Java no*/
public static void main (String[] args) {
System.out.println(Hello Java!);
} //Kt thc phng thc main
} //Kt thc lp HelloWorld

Gii thch m ngun, cc cu lnh, cc bc x l phc


tp trong chng trnh:
// ch thch trn mt dng
/* ch thch trn mt on*/
Khng c ngha thc thi
19

Dch chng trnh


S dng chng trnh Notepad g li on lnh trn
o Bt u tp thi quen li dng cho cc khi lnh bao nhau

Lu file m ngun c tn Test.java vo th mc


D:\Java\20141\W1
Dch: m ca s Command Line v g lnh sau dch
>javac D:\Java\20141\W1\Test.java
Li dch: class HelloWorld is public, should be declared in a
file named HelloWorld.java
o Nguyn nhn: Tn file m ngun khc tn lp khai bo
o Sa: t li tn file

Dch thnh cng: du nhc lnh > xut hin tr li. File m
ngun c dch thnh file Byte Code c cng tn v ui
.class, cng th mc vi file m ngun
20

10

17/08/2014

Chy chng trnh


Thc hin lnh:
> java D:\Java\20141\W1\Test
Ch : C th s gp thng bo li Could not find or load main class...
Khc phc: chuyn vo th mc cha file .class
>D:
>cd .\Java\20141\W1
>java Test
Kt qu thc hin

System.out.println(): Hin th thng bo trn ca s Console


21

Sa li phng thc main


public static void main (String[] args) {
myName = Tung;
System.out.println(Hello Java! I am + myName);
} //Kt thc phng thc main
} //Kt thc lp HelloWorld

Li dch:

Nguyn nhn: cha khai bo myName


Chng ta s xem xt cc sa trong phn sau.
22

11

17/08/2014

2. CC PHN T C BN CA JAVA

23

T kha v nh danh
L nhng t c Java quy nh ngha v cch s
dng
nh danh: xu k t, xc nh duy nht mt phn t
trong chng trnh
Quy nh vi nh danh:
o Khng t trng vi t kha
o Khng bt u bng ch s
o K t c php s dng: ch ci, ch s, $, _
o Phn bit ch hoa, ch thng

24

12

17/08/2014

Quy tc con lc
Bin s: bt u bng ch thng, vit hoa ch ci u
tin cc t cn li
Hng s: Ton b bng ch hoa
Lp: vit hoa ch ci u tin cc t
Thuc tnh, phng thc: bt u bng ch thng, vit
hoa ch ci u tin cc t cn li
Gi: s dng ch thng
Bin s

myName, numberOfStudent

Hng s

MAX_LINE, USER_PARAMETER

Lp

HelloWorld, Student

Thuc tnh

studentID, mark

Phng thc

setValue(), getValue(),sortByName()

Gi

sis.subject, sis.student
25

Cc kiu d liu nguyn thy


Kiu d liu

Kch
thc

Gi tr
mc nh

Gi tr
nh nht

Gi tr
ln nht

byte

-128

127

short

16

-32768

32767

int

32

-2147483648 2147483647

long

64

0L

-2^63

(2^63) 1

float

32

0.0f

double

64

0.0d

boolean

Khng
xc nh

false

NA

NA

char

16

\u0000

NA

NA
26

13

17/08/2014

Ton t s hc

27

Ton t nh phn

28

14

17/08/2014

Ton t nh phn

29

Ton t quan h

30

15

17/08/2014

Ton t logic

31

Cc ton t khc
Ton t rt gn: +=, =, *=, /= ...
Ton t tng 1 n v: ++
Ton t gim 1 n v:
Ton t iu kin: ?:
(boolean_expression)?true_expression:false_expression
o Nu boolean_expression ng, tnh gi tr true-expression
o Nu boolean_expression sai, tnh gi tr false-expression

32

16

17/08/2014

Hng s
Phn t trong chng trnh khng th thay i gi tr
C php:
final DataType CONSTANT_NAME =

Literal;

Trong :
o final: t kha
o DataType: Kiu d liu
o CONSTANT_NAME: Tn hng. Tun th quy tc nh danh
o Literals : Gi tr hng

33

Gi tr hng (Literals)

Boolean: true, false


S nguyn:
oH c s 8: Bt u bng ch s 0
V d: 012 = 001010(2) = 8 + 2 = 10(10)

o H c s 16: Bt u bng 0x
V d: 0x2A = 00101010 = 2x16 + 10 = 42

o Kiu d liu long: Kt thc bng k t L hoc l


V d: 10L

34

17

17/08/2014

Gi tr hng

S thc:
oMc nh c kiu double
o Kiu float: Kt thc bng k t F hoc f
o Dng du phy ng: K t e (hoc E) km theo s m
V d: 1.2E7

K t: t gia du nhy n. V d: a
Xu k t: t gia du nhy kp
V d: SoICT-HUST

35

Bin s
L phn t trong chng trnh c th thay i gi tr
C php:
DataType varName1,varName2,...,varNameN;
hoc
DataType varName1 =

Literal1,...,varNameN = LiteralN;

Trong :
o varName l tn bin, t theo quy tc nh danh
o Literral c th l mt bin khc c khai bo trc

Trc khi s dng trong biu thc, bin phi c khi


to gi tr

36

18

17/08/2014

Ton t gn
C php:
variable = expression;
Bin variable v biu thc expression nn c cng
kiu d liu
Trong thng hp hai v c kiu d liu khc nhau:
o V tri c kiu d liu rng hn: p kiu t ng
o Ngc li: khng hp l. Nu vn mun thc hin php gn, cn
p kiu

Trong c cc gi tr khc kiu, tt c cc gi tr c p


t ng thnh kiu rng nht

37

Ton t gn (V d)
long a = 1.2; //khng hp l
long b = (long) 1.2; //hp l
int m = b/2; //khng hp l
char ch = a; //hp l
int n = ch; //hp l
short k = ch; //khng hp l
short p = (short) ch; //hp l
float x = 1.2; //khng hp l
float y = 1.2f; //hp l

38

19

17/08/2014

Hy th li
// The second Java program
public class NewHelloWorld {
//Phng thc main, c gi u tin khi chy bt c
ng dng Java no
public static void main (String[] args) {
String myName = Tung;
System.out.println(Hello Java! I am + myName);
} //Kt thc phng thc main
} //Kt thc lp HelloWorld

39

3. CC PHNG THC VO RA C BN

40

20

17/08/2014

Hin th d liu
Phng thc System.out.println(): Hin th d liu
v xung dng
Phng thc System.out.print(): Hin th d liu
Phng thc System.out.printf(): Hin th d liu
c nh dng
Phng thc System.out.format(): Hin th d liu
c nh dng
C th dng ton t + ni cc d liu khi hin th

41

nh dng d liu khi hin th


Dng Boolean: %b
Dng k t: %c
Dng s nguyn: %d
Dng s thc: %f
Dng xu k t: %s

42

21

17/08/2014

Nhp d liu t bn phm


Kh phc tp v Java coi d liu nhn c t bn phm
l lung vo
Thc hin
o c d liu vo b m:
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
o Chuyn d liu t b m vo xu
String inValue = br.readLine( );
o Chuyn d liu t xu thnh gi tr : s dng cc lp
Gi
Gi
Gi
Gi

tr kiu int: Integer.parseInt(inValue)


tr kiu long: Long.parseLong(inValue)
tr kiu float: Float.parseFloat(inValue)
tr kiu double: Double.parseDouble(inValue)
43

V d
/** The Addition class calculates the sum of two numbers */
import java.io.*;
public class Addition {
/** The main method begins execution of Java application
*@param args: input parameter
*/
public static void main (String[] args) throws
IOException{
String inputData;
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
System.out.print(Enter the 1st number:);
inputData = br.readLine();
int number1 = Integer.parseInt(inputData);

44

22

17/08/2014

V d (tip)
System.out.print(Enter the 2nd number:);
inputData = br.readLine();
int number2 = Integer.parseInt(inputData);
int sum = number1 + number2;
System.out.println(The sum of two numbers: + sum);
}
}

45

V d - Gii thch
Ch thch to ti liu Javadoc:
/** Comment something */

S dng cc gi th vin c Java nh ngha sn


import somepakage
o java.io: Th vin xut nhp d liu

B qua cc ngoi l (li) trong khi thc thi chng trnh:


throws someException
o IOException: ngoi l xut hin khi xut nhp d liu

46

23

17/08/2014

Nhp d liu Lp Scanner


c cung cp bi th vin java.ulti
Qut lung d liu ngi dng nhp t bn phm v phn
tch cc gi tr c kiu d liu nguyn thy hoc xu.
Rt hu dng
import java.util.Scanner
...
Scanner inputData = new Scanner(System.in);
System.out.print(Enter the 1st number:);
int number1 = inputData.nextInt();
System.out.print(Enter the 2nd number:);
int number2 = inputData.nextInt();
int sum = number1 + number2;
System.out.println(The sum of two numbers: + sum);
47

24

You might also like