Bai Giang 03

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

BI GING LP TRNH CHUYN NNG CAO JAVA

LP TRNH HNG I TNG


GV: Nguyn Thanh Tun KHOA TIN HC - HSP

Ni dung
Gii thiu v lp trnh hng i tng (OOP) Cc lp c nh ngha trc Trng v phng thc Static Cc tham s ca phng thc Constructor Getter/Setter

GII THIU V LP TRNH HNG I TNG OOP


3

Gii thiu v OOP


OOP l mt phng php lp trnh ph bin hin nay. Thay th cho lp trnh cu trc c pht trin t nhng nm 70 ca th k 20.

Lp trnh cu trc & OOP


Niklaus Wirth: Algorithms + Data Structures = Programs
Lm th no thao tc d liu Lm th no t chc d liu

OOP: Ngc li
T chc d liu trc a ra thut ton thao tc d liu.

Ti sao s dng OOP


T chc chng trnh tt hn

Class
Mt class l mt mu hay mt s thit k cho mt i tng thc t. Khi xy dng mt object t mt class, ta ni to mt th hin (instance) ca class.

Encapsulation (ng gi)


Tp hp d liu v hnh vi vo mt gi v che du s thao tc d liu i vi ngi dng object. D liu trong object c gi l: instance field Th tc thc thi d liu c gi l: method Mt object, l mt th hin ca class, c m t thng qua gi tr ca cc instance field. Tp hp cc gi tr ny gi l trng thi ca object. Object thay i trng thi thng qua vic n nhn cc thng ip.
8

c im ca Object
Hnh vi ca object: ci ta c th lm vi object ny hay cc phng thc ta c th s dng cho n. Trng thi ca object: Object s nh th no nu s dng cc phng thc. Chng thc ca object: Object c phn bit nh th no nu c cng trng thi v hnh vi.

Quan h gia cc Class


Dependence ("usesa"): Ph thuc Aggregation ("hasa"): Tng hp
Inheritance ("isa"): K tha

10

UML & Class Diagram


UML: Cng c m hnh ha. Class Diagram: S Class

11

CC CLASS C NH NGHA TRC


12

V d v class Date
Xem file TestCalendar.java

13

NH NGHA MT CLASS MI

14

nh dng mt class
class ClassName { constructor1 constructor2 ... method1 method2 ... field1 field2 ... }

15

class Employee { // constructor public Employee(String n, double s, int year, int month, int day) { name = n; salary = s; GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day); hireDay = calendar.getTime(); } // a method public String getName() { return name; } // more methods ... // instance fields private String name; private double salary; private Date hireDay; }

16

Constructor
Constructor c tn nh tn class. Mt class c th c nhiu constructor. Mt constructor c th khng c, c mt hoc nhiu tham s. constructor khng tr v gi tr. constructor lun c gi vi ch th new

17

Constructor
C 3 loi
Constructor mc nh (Khng c tham s). Constructor tham s. Constructor sao chp.

18

Tham s n & hin


public void raiseSalary(double byPercent) { double raise = salary * byPercent / 100; salary += raise; } number007.raiseSalary( 5 ); double raise = number007 .salary * 5 / 100; number007 .salary += raise;
19

Tham s n & hin


public void raiseSalary(double byPercent) { double raise = this. salary * byPercent / 100; this.salary += raise; }

20

Getter & Setter


Phng thc to v ly gi tr ca cc trng. Th hin tnh bao ng. Tt c cc trng u phi khai bo l private

21

Private Methods
Cc phng thc ch c s dng trong ni b class v khng c k tha. C th c loi b m khng nh hng n cc class dn xut.

22

Final Instance Fields


S dng ch th final khi mun m bo mt trng phi c khi to (c gi tr) khi gi constructor.
class Employee { ... private final String name; }

name khng bao gi thay i sau constructor nn s khng c method setName()


23

TRNG V PHNG THC STATIC

24

Static Fields
class Employee { ... private int id; private static int nextId = 1; }

Khi khai bo 1000 object ca lp Employee th s c 1000 id nhng ch c mt nextId.


25

Static Field
public void setId() { id = nextId; nextId++; }

Set id cho nhn vin tn Harry


harry.setId();

Ngha l:
harry. id = Employee .nextId; Employee. nextId++;
26

Static Methods
Cc phng thc thuc mc lp. Truy xut thng qua tn lp khng phi qua i tng.

27

Static Method
package bt1; public class Main { public static void main(String[] args) { PhanSo ps1=PhanSo.parsePhanSo(2/3); PhanSo ps2=PhanSo.parsePhanSo(3/4); PhanSo kq1=ps1.cong(ps2); kq1.xuat(Tng hai phn s ps1 v ps2); PhanSo kq2=ps1.cong(40); kq2.xuat(Tng hai phn s ps1 v 40); }

28

You might also like