You are on page 1of 42

Ni dung

C bn v ngn ng lp trnh Java

Lp trnh hng
i tng

Bin, t kho,
kiu d liu

Biu thc, cc
cu trc iu
khin

D liu kiu
mng

Cc kha cnh nng cao ca lp trnh hng i tng


Thit k lp

Thit k lp
nng cao

X l ngoi l

Xy dng ng dng Java


To giao din
ho

X l cc s
kin trn giao
din ho

Xy dng ng
dng ho

Vo / Ra

Lp trnh mng

Lp trnh Java nng cao


Lung

Lp trnh vi
CSDL

Ni dung
nh

ngha cc khi nim m hnh ho: abstraction,


encapsulation, packages
Ti sao c th s dng li m Java trong nhiu ng dng
nh ngha class, member, attribute, method, constructor,

package
S dng cc iu khin truy cp private v public ph hp
vi ng cnh
Triu gi cc phng thc trong mt i tng
S dng ti liu lp trnh Java

Cc vn
Bn hiu g v qu trnh phn tch v thit k phn mm?

Bn hiu g v vic thit k v s dng li code?


Cc kha cnh, c im no ca Java khin n tr thnh mt ngn

ng lp trnh hng i tng?


Lp trnh hng i tng l g?

Lch s cng ngh phn mm

2 pha: phn tch - thit k


Qu trnh phn tch m t xem h thng cn phi lm g?

Trong , n s m hnh ho th gii thc, a vo cc actors


(ngi tc ng vo h thng), cc hot ng, cc i tng v hnh vi
ca cc i tng
Qu trnh thit k ch ra rng h thng s thc hin cng vic nh

th no?
M hnh ho cc mi quan h, s tng tc gia cc i tng
v ngi s dng h thng
Tm ra cc c im tru tng ho nhm gip cho vic n gin
ho bi ton.

Class - Object
Trong sn xut, ngi ta lm 1 ci phi m t v 1 thit b, sau

s sn xut ra cc thit b tht


Trong cng nghip phn mm, class chnh l ci phi, n m t v

cc object:
class m t d liu cha trong cc object
class m t hnh vi m cc object thc hin
Trong Java, class h tr 3 c im ca lp trnh hng i tng
Encapsulation ng gi d liu
Inheritance - s tha k

Polymorphism tnh a hnh

Khai bo lp
C php khai bo lp:

<modifier>* class <class_name> {


<attribute_declaration>*
<constructor_declaration>*
<method_declaration>*
}
V d
1 public class Vehicle {
2
private double maxLoad;
3
public void setMaxLoad(double value) {
4
maxLoad = value;
5
}
6 }

Khai bo cc thuc tnh


C php khai bo thuc tnh:

<modifier>* <type> <name> [ = <initial_value>];


V d

1 public class Foo {


2

private int x;

private float y = 100.0F;

private String name = Bates Motel;

6 }

Khai bo cc phng thc


php khai bo phng thc:
<modifier>* <return_type> <name> ( <argument>* ) {
<statement>*
}
V d
C

1 public class Dog {


2
private int weight;
3
public int getWeight() {
4
return weight;
5
}
6
public void setWeight(int newWeight) {
7
if ( newWeight > 0 ) {
8
weight = newWeight;
9
}
10
}
11 }

Truy cp cc thnh phn ca class


C php truy cp: <object>.<member>
V d

1 d.setWeight(42);
2 d.weight = 42;

Che du d liu
Vn : client code c th truy cp trc tip vo d liu bn trong

ca i tng (d refers to a MyDate object):

d.day = 32;
// invalid day
d.month = 2; d.day = 30;
// plausible but wrong
d.day = d.day + 1;

// no check for wrap around

Che du d liu
Gii php: client code phi s dng cc phng thc setters, getters

truy cp vo cc d liu bn trong ca i tng

MyDate d = new MyDate();


d.setDay(32);
// invalid day, returns false
d.setMonth(2);
d.setDay(30);
// plausible but wrong,
// setDay returns false
d.setDay(d.getDay() + 1);
// this will return false if wrap around
// needs to occur

ng gi d liu
Che du cc thnh phn ci t bn trong ca mt lp

Yu cu ngi s dng phi dng cc interface giao tip v truy

cp vo cc d liu bn trong ca lp
Gip cho cng vic bo tr code nhanh chng hn

Hm khi to
C php khai bo hm khi to:

[<modifier>] <class_name> ( <argument>* ) {


<statement>*
}
V

1 public class Dog {


2

private int weight;

public Dog() {

4
5
6 }

weight = 42;
}

Hm khi to mc nh
Mi lp ca Java lun c t nht mt hm khi to

Nu ngi lp trnh vin khng a vo lp mt hm

khi to no, trnh bin dch s t ng a vo lp mt


hm khi to mc nh:

Hm khi to mc nh c cc c im ca hm
khi to
N khng c tham s
C modifier trng vi modifier ca lp
Lnh u tin trong thn ca default constructor l li
gi ti hm khi to khng tham s ca lp cha

Cu lnh package
C php:

package <top_pkg_name>[.<sub_pkg_name>]*;
V d

package shipping.gui.reportscreens;
Phi t li khai bo package dng u tin ca

source file
Ch c 1 khai bo package trong 1 file
Nu khng c li khai bo package no, class file s
c t th mc mc nh
Tn ca package cn c phn cp, chia cch bi du
(.)

Cu lnh import
C php:
import <pkg_name>[.<sub_pkg_name>]*.<class_name>;
OR
import <pkg_name>[.<sub_pkg_name>]*.*;

V d

import java.util.List;
import java.io.*;
import shipping.gui.reportscreens.*;
Cu lnh import phi ng trc li khai bo lp
Phi ch r v tr file cn import

S dng Java API Documentation

Ni dung
Cch t tn nh danh trong Java

B t kho Java
8 kiu d liu gc trong Java
Khong gi tr lu tr ca cc kiu d liu gc

nh ngha bin c kiu d liu gc v bin tham chiu


Khai bo kiu d liu cho bin
To mi 1 i tng bng t kho new

Khi to gi tr mc nh cho bin

Cch t tn nh danh
Mt s c im khi t tn nh danh trong Java:
L tn c t cho bin, phng thc, lp
Tn nh danh c th bt u bng mt k t Unicode,
du gch di (_) hay du ($)
Tn nh danh trong Java c phn bit ch hoa, ch
thng v khng gii hn v kch thc
V d:
identifier

userName
user_name
_sys_var1
$change

B t kho Java
abstract continue for

new

switch

assert

default

goto

package

synchronized

boolean

do

if

private

this

break

double

implements protected throw

byte

else

import

case

enum

instanceof return

transient

catch

extends

int

short

try

char

final

interface

static

void

class

finally

long

strictfp

volatile

const

float

native

super

while

public

throws

8 kiu d liu gc
Kiu logic - boolean

Kiu k t - char
Kiu s nguyn - byte, short, int, long
Kiu s thc - float, double

Kiu logic
Ch c 2 gi tr: true, false

V d: boolean truth = true;


Gi tr mc nh l kiu logic l false

Kiu k t
Th hin mt k t Unicode 16-bit

K t phi c t trong du nhy n


V d:
'a'

k t a

'\t'
k t tab
'\u???? Biu din k t Unicode, ???? l 4 con s h
c s 16. V d: \u03A6 biu din k t phi []

Kiu s nguyn
C 3 dng biu din: h c s 8, h c s 10, h

c s 16
2
077
0xBAAC

S 2 h c s 10
K t u tin l 0 biu din s h c s 8
0x biu din s h c s 16

Kiu mc nh ca kiu nguyn l int


Hu t L (l) m ch rng l kiu long

Kiu s nguyn byte, short, int, long

Kiu s thc float, double


C 3 dng biu din:
E or e
F or f
D or d

biu din s thc ln


biu din s dng float
biu din s dng double

V d
3.14
s thc dng double
6.02E23
s thc ln dng double
2.718F
s thc dng float
123.4E+306D s thc ln dng double (tha hu t D)

Kiu s thc float, double


Kiu mc nh ca kiu s thc l double

Kch thc ca cc kiu d liu:

Kiu d liu tham chiu


Trong Java, ngoi 8 kiu d liu gc, tt c cc kiu d liu khc c
gi l kiu d liu tham chiu
Bin c kiu d liu tham chiu gi l bin tham chiu
V d
1 public class MyDate {
2

private int day = 1;

private int month = 1;

private int year = 2000;

public MyDate(int day, int month, int year) { ... }

public String toString() { ... }

7 }
1 public class TestMyDate {
2

public static void main(String[] args) {

4
5 }

MyDate today = new MyDate(22, 7, 1964);

Khi to i tng
S dng li gi new Xyz() khi to i tng. Khi :
B nh c cp pht cho i tng
Thc thi khi to gi tr cho cc thuc tnh mt cch

tng minh
Thc thi hm khi to
Tham chiu ti i tng c tr v bi t kho new
Bin tham chiu tr ti i tng v lu tr a ch ca i
tng
V d
MyDate my_birth = new MyDate(22, 7, 1964);

Khi to i tng

Khi to i tng

Khi to i tng

Khi to i tng

Khi to i tng

Tham chiu this


Tham chiu this tr ti chnh lp hin ti
Tham chiu this gip phn bit tham s ca phng thc

vi cc thuc tnh
Tham chiu this cng c dng truyn tham s

Tham chiu this


1 public class MyDate {
2

private int day = 1;

private int month = 1;

private int year = 2000;

5
6

public MyDate(int day, int month, int year) {

this.day = day;

this.month = month;

this.year = year;

10

11

public MyDate(MyDate date) {

12

this.day = date.day;

13

this.month = date.month;

14

this.year = date.year;

15

Tham chiu this


17

public MyDate addDays(int moreDays) {

18

MyDate newDate = new MyDate(this);

19

newDate.day = newDate.day + moreDays;

20

// Not Yet Implemented: wrap around code...

21

return newDate;

22

23

public String toString() {

24

return "" + day + "-" + month + "-" + year;

25

26 }
1 public class TestMyDate {

public static void main(String[] args) {

MyDate my_birth = new MyDate(22, 7, 1964);

MyDate the_next_week = my_birth.addDays(7);

System.out.println(the_next_week);

7
8 }

Mt s quy c khi lp trnh Java


Packages:
com.example.domain;

Classes, interfaces, and enum types:


SavingsAccount

Methods:
getAccount()

Variables:
currentCustomer

Constants:
HEAD_COUNT

You might also like