SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
Bài 7
Các kỹ thuật kế
thừa
Trịnh Thành Trung
trungtt@soict.hust.edu.vn
Nội dung
1. Ghi đè
2. Lớp trừu tượng
3. Giao diện
Ghi đè
Override
1
4
Mối quan hệ kế thừa
• Lớp con
− Là một loại (is-a-kind-of) của lớp cha
− Kế thừa các thành phần dữ liệu và các hành vi của lớp
cha
− Chi tiết hóa cho phù hợp với mục đích sử dụng mới
+ Extension: Thêm các thuộc tính/hành vi mới
+ Redefinition (Method Overriding): Chỉnh sửa lại các hành
vi kế thừa từ lớp cha
5
Định nghĩa lại hay ghi đè
• Phương thức ghi đè sẽ thay thế hoặc làm rõ hơn
cho phương thức cùng tên trong lớp cha
• Đối tượng của lớp con sẽ hoạt động với phương
thức mới phù hợp với nó
6
Định nghĩa lại hay ghi đè
• Cú pháp: Phương thức ở lớp con hoàn toàn giống
về chữ ký với phương thức ở lớp cha
− Trùng tên & danh sách tham số
− Mục đích: Để thể hiện cùng bản chất công việc
class Shape {
protected String name;
Shape(String n) { name = n; }
public String getName() { return name; }
public float calculateArea() { return 0.0f; }
}
class Circle extends Shape {
private int radius;
Circle(String n, int r){
super(n);
radius = r;
}
public float calculateArea() {
float area = (float)(3.14 * radius * radius);
return area;
}
}
Ví dụ
class Square extends Shape {
private int side;
Square(String n, int s) {
super(n);
side = s;
}
public float calculateArea() {
float area = (float) side * side;
return area;
}
}
Lớp Square
Viết lớp Triangle
11
• Tái sử dụng các đoạn mã của lớp cha trong lớp
con
• Gọi phương thức khởi tạo
super(danh sách tham số);
− Bắt buộc nếu lớp cha không có phương thức khởi tạo
mặc định
• Gọi các phương thức của lớp cha
super.tênPt(danh sách tham số);
Sử dụng từ khóa super
Ví dụ
package abc;
public class Person {
protected String name;
protected int age;
public String getDetail() {
String s = name + "," + age;
return s;
}
}
import abc.Person;
public class Employee extends Person {
double salary;
public String getDetail() {
String s = super.getDetail() + "," + salary;
return s;
}
}
13
• Phương thức ghi đè trong lớp con phải
− Có danh sách tham số giống hệt phương thức kế thừa
trong lớp cha.
− Có cùng kiểu trả về với phương thức kế thừa trong lớp
cha
• Các chỉ định truy cập không giới hạn chặt hơn
phương thức trong lớp cha
− Ví dụ, nếu ghi đè một phương thức protected, thì
phương thức mới có thể là protected hoặc public, mà
không được là private.
Quy định trong ghi đè
Ví dụ
class Parent {
public void doSomething() {}
protected int doSomething2() {
return 0;
}
}
class Child extends Parent {
protected void doSomething() {}
protected void doSomething2() {}
}
Không ghi đè được do chỉ định truy cập
yếu hơn (public -> protected)
Không ghi đè được do không
cùng kiểu trả về
15
• Không được phép ghi đè:
− Các phương thức static trong lớp cha
− Các phương thức private trong lớp cha
− Các phương thức hằng (final) trong lớp cha
Quy định trong ghi đè (tiếp)
16
• Đôi lúc ta muốn hạn chế việc định nghĩa lại vì các
lý do sau:
− Tính đúng đắn: Định nghĩa lại một phương thức
trong lớp dẫn xuất có thể làm sai lạc ý nghĩa của nó
− Tính hiệu quả: Cơ chế kết nối động không hiệu quả
về mặt thời gian bằng kết nối tĩnh. Nếu biết trước sẽ
không định nghĩa lại phương thức của lớp cơ sở thì
nên dùng từ khóa final đi với phương thức
public final String baseName () {
return “Person”;
}
Hạn chế ghi đè
Lớp trừu tượng
Abstract class
2
22
Lớp trừu tượng
• Xét ví dụ: Lớp Shape
− Là một lớp "không rõ ràng", khó hình dung ra các đối
tượng cụ thể
− Có những phương thức như calculateArea() khó cài đặt
cụ thể
23
Lớp trừu tượng
• Đặc điểm của lớp trừu tượng
− Không thể thể hiện hóa (instantiate – tạo đối tượng của
lớp) trực tiếp
− Chưa đầy đủ, thường được sử dụng làm lớp cha. Lớp con
kế thừa nó sẽ hoàn thiện nốt.
+ Lớp trừu tượng có thể chứa các phương thức trừu tượng
không được định nghĩa
+ Các lớp dẫn xuất có trách nhiệm định nghĩa lại (overriding)
các phương thức trừu tượng này
24
Lớp trừu tượng
• Không thể tạo đối tượng trực tiếp từ các lớp trừu
tượng
• Thường lớp trừu tượng được dùng để định nghĩa
các "khái niệm chung", đóng vai trò làm lớp cơ sở
cho các lớp "cụ thể" khác.
25
Lớp trừu tượng
• Cú pháp
− Khai báo với từ khóa abstract
public abstract class Shape {
// Nội dung lớp
}
• Phương thức trừu tượng
− Chỉ có chữ ký mà không có cài đặt cụ thể
− Khai báo với từ khóa abstract
public abstract float calculateArea();
26
Lớp trừu tượng
• Lớp trừu tượng cần chứa ít nhất một phương
thức trừu tượng (abstract method)
• Nếu một lớp có một hay nhiều phương thức trừu
tượng thì nó phải là lớp trừu tượng
• Lớp con khi kế thừa phải cài đặt cụ thể cho các
phương thức trừu tượng của lớp cha
 Phương thức trừu tượng không thể khai báo là final
hoặc static.
Ví dụ 1
abstract class Shape {
protected String name;
Shape(String n) { name = n; }
public String getName() { return name; }
public abstract float calculateArea();
}
class Circle extends Shape {
private int radius;
Circle(String n, int r){
super(n);
radius = r;
}
public float calculateArea() {
float area = (float) (3.14 * radius * radius);
return area;
}
} Lớp con bắt buộc phải override tất cả
các phương thức abstract của lớp cha
Ví dụ 2
abstract class Point {
private int x, y;
public Point(int x, int y) {
this.x = x; this.y = y;
}
public void move(int dx, int dy) {
x += dx; y += dy;
plot();
}
public abstract void plot();
// phương thức trừu tượng không có
// phần code thực hiện
}
Ví dụ 2 (tiếp)
abstract class ColoredPoint extends Point {
int color;
public ColoredPoint(int x, int y, int color) {
super(x, y); this.color = color;
}
}
class SimpleColoredPoint extends ColoredPoint {
public SimpleColoredPoint(int x, int y,
int color) {
super(x, y, color);
}
public void plot() { ... }
// code to plot a SimplePoint
}
Giao diện
Interface
3
31
Đa kế thừa và đơn kế thừa
• Đa kế thừa (Multiple Inheritance)
− Một lớp có thể kế thừa nhiều lớp khác
− C++ hỗ trợ đa kế thừa
• Đơn kế thừa (Single Inheritance)
− Một lớp chỉ được kế thừa từ một lớp khác
− Java chỉ hỗ trợ đơn kế thừa
 Đưa thêm khái niệm Giao diện (Interface)
EA
D
F
A B C
D
32
Vấn đề gặp phải trong đa kế
thừa
• Name collision • "Diamond shape"
problem
Bird
Animal
+ color
+ getColor ()
FlyingThing
+ color
+ getColor ()
SomeClass
Bird
Animal
+ color
+ getColor ()
FlyingThing
+ color
+ getColor ()
34
Giao diện
• Để trở thành giao diện, cần
− Sử dụng từ khóa interface để định nghĩa
− Chỉ được bao gồm:
+ Chữ ký các phương thức (method signature)
+ Các thuộc tính khai báo hằng (static & final)
• Lớp thực thi giao diện
− Hoặc là lớp trừu tượng (abstract class)
− Hoặc là bắt buộc phải cài đặt chi tiết toàn bộ các phương
thức trong giao diện nếu là lớp instance.
35
• Cú pháp khai báo giao diện trên Java:
interface <Tên giao diện>
<Giao diện con> extends <Giao diện cha>
• Ví dụ:
public interface DoiXung {…}
public interface Can extends DoiXung {…}
public interface DiChuyen {…}
Giao diện
36
• Cú pháp thực thi giao diện
<Lớp con> [extends <Lớp cha>] implements <Danh
sách giao diện>
• Ví dụ:
public class HinhVuong extends TuGiac
implements DoiXung, DiChuyen {
...
}
Giao diện
37
Interface
2DShape
Circle Rectangle
Square
3DShape
Sphere Cube
Drawable
39
Góc nhìn quan niệm
• Interface không cài đặt bất cứ một phương thức
nào nhưng để lại cấu trúc thiết kế trên bất cứ lớp
nào sử dụng nó
• Một interface: 1 contract – mà trong đó các nhóm
phát triển phần mềm thống nhất sản phẩm của
họ tương tác với nhau như thế nào, mà không đòi
hỏi bất cứ một tri thức về cách thức tiến hành của
nhau.
Circle
-radius: float
+calculateArea():float
+draw(Graphics)
+erase(Graphics)
Action
#x: int
#y: int
+draw(Graphics)
+moveTo(Graphics,int, int)
+erase(Graphics)
Shape
#name: String
+getName():String
+calculateArea():float
Circle
-radius:float
+calculateArea():float
+draw(Graphics)
+moveTo(Graphics,int,int)
+erase(Graphics)
<<interface>>
Actable
+draw(Graphics)
+moveTo(Graphics,int, int)
+erase(Graphics)
Shape
#name: String #x:int #y:int
+getName():String
+calculateArea():float
42
Giao diện
• Một interface có thể được coi như một dạng
“class” mà
− Phương thức và thuộc tính là public không tường minh
− Các thuộc tính là static và final
− Các phương thức là abstract
• Không thể thể hiện hóa (instantiate) trực tiếp
• Một lớp có thể thực thi nhiều giao diện
43
Circle
-radius:float
+calculateArea():float
+draw(Graphics)
+moveTo(Graphics,int,int)
+erase(Graphics)
<<interface>>
Actable
+draw(Graphics)
+moveTo(Graphics,int, int)
+erase(Graphics)
Shape
#name: String #x:int #y:int
+getName():String
+calculateArea():float
Ví dụ
import java.awt.Graphics;
abstract class Shape {
protected String name;
protected int x, y;
Shape(String n, int x, int y) {
name = n; this.x = x; this.y = y;
}
public String getName() {
return name;
}
public abstract float calculateArea();
}
interface Actable {
public void draw(Graphics g);
public void moveTo(Graphics g, int x1, int y1);
public void erase(Graphics g);
}
Ví dụ
class Circle extends Shape implements Actable {
private int radius;
public Circle(String n, int x, int y, int r) {
super(n, x, y); radius = r;
}
public float calculateArea() {
float area = (float) (3.14 * radius * radius);
return area;
}
public void draw(Graphics g) {
System out println("Draw circle at ("
+ x + “," + y + ")");
g.drawOval(x-radius,y-radius,2*radius,2*radius);
}
public void moveTo(Graphics g, int x1, int y1) {
erase(g); x = x1; y = y1; draw(g);
}
public void erase(Graphics g) {
System out println(“Erase circle at ("
+ x + “," + y + ")");
// paint the region with background color...
}
}
46
Lớp trừu tượng vs. Giao diện
Lớp trừu tượng
• Cần có ít nhất một
phương thức abstract,
có thể chứa các phương
thức instance
• Có thể chứa các
phương thức protected
và static
• Có thể chứa các thuộc
tính final và non-final
• Một lớp chỉ có thể kế
thừa một lớp trừu
tượng
Giao diện
• Chỉ có thể chứa chữ ký
phương thức (danh sách
các phương thức)
• Chỉ có thể chứa các
phương thức public mà
không có mã nguồn
• Chỉ có thể chứa các thuộc
tính hằng
• Một lớp có thể thực thi
(kế thừa) nhiều giao diện
47
Nhược điểm
• Không cung cấp một
cách tự nhiên cho các
tình huống không có
sự đụng độ về kế
thừa xảy ra
• Kế thừa là để Tái sử
dụng mã nguồn
nhưng Giao diện
không làm được điều
này
Tổng kết
• Ghi đè
• Các phương thức ở lớp con có cùng chữ ký và
danh sách tham số với phương thức ở lớp cha,
được tạo ra để định nghĩa lại các hành vi ở lớp
con
• Lớp trừu tượng
• Các lớp không được khởi tạo đối tượng, được tạo
ra làm lớp cơ sở cho các lớp con định nghĩa rõ
hơn
• Có ít nhất một phương thức trừu tượng
• Giao diện
• Định nghĩa các phương thức mà lớp thực thi phải
cài đặt
• Giải quyết vấn đề đa kế thừa
Thank you!
Any questions?

Mais conteúdo relacionado

Mais procurados

Oop unit 11 input và output
Oop unit 11 input và outputOop unit 11 input và output
Oop unit 11 input và outputTráng Hà Viết
 
Oop unit 12 đồ họa và xử lý sự kiện
Oop unit 12 đồ họa và xử lý sự kiệnOop unit 12 đồ họa và xử lý sự kiện
Oop unit 12 đồ họa và xử lý sự kiệnTráng Hà Viết
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlTráng Hà Viết
 
Oop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngOop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngTráng Hà Viết
 
Bai04 tao vasudungdoituong
Bai04 tao vasudungdoituongBai04 tao vasudungdoituong
Bai04 tao vasudungdoituongNhuận Lê Văn
 
[Cntt] bài giảng lập trình java bkhcm
[Cntt] bài giảng lập trình java   bkhcm[Cntt] bài giảng lập trình java   bkhcm
[Cntt] bài giảng lập trình java bkhcmHong Phuoc Nguyen
 
Bai06 mot sokythuattrongkethua
Bai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethua
Bai06 mot sokythuattrongkethuaNhuận Lê Văn
 
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#MasterCode.vn
 
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTBài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTMasterCode.vn
 
[Cntt] bài giảng java khtn hcm
[Cntt] bài giảng java   khtn hcm[Cntt] bài giảng java   khtn hcm
[Cntt] bài giảng java khtn hcmHong Phuoc Nguyen
 
Bai09 ngoai levaxulyngoaile
Bai09 ngoai levaxulyngoaileBai09 ngoai levaxulyngoaile
Bai09 ngoai levaxulyngoaileNhuận Lê Văn
 

Mais procurados (20)

Oop unit 11 input và output
Oop unit 11 input và outputOop unit 11 input và output
Oop unit 11 input và output
 
Oop unit 12 đồ họa và xử lý sự kiện
Oop unit 12 đồ họa và xử lý sự kiệnOop unit 12 đồ họa và xử lý sự kiện
Oop unit 12 đồ họa và xử lý sự kiện
 
Oop unit 13 tổng quan về uml
Oop unit 13 tổng quan về umlOop unit 13 tổng quan về uml
Oop unit 13 tổng quan về uml
 
Oop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượngOop unit 01 tổng quan lập trình hướng đối tượng
Oop unit 01 tổng quan lập trình hướng đối tượng
 
Bai07 da hinh
Bai07 da hinhBai07 da hinh
Bai07 da hinh
 
Bai05 ket tapvakethua
Bai05 ket tapvakethuaBai05 ket tapvakethua
Bai05 ket tapvakethua
 
Bai08 lap trinhtongquat
Bai08 lap trinhtongquatBai08 lap trinhtongquat
Bai08 lap trinhtongquat
 
Bai04 tao vasudungdoituong
Bai04 tao vasudungdoituongBai04 tao vasudungdoituong
Bai04 tao vasudungdoituong
 
Bai08 10 java_fx
Bai08 10 java_fxBai08 10 java_fx
Bai08 10 java_fx
 
Bai03 xay dunglop
Bai03 xay dunglopBai03 xay dunglop
Bai03 xay dunglop
 
[Cntt] bài giảng lập trình java bkhcm
[Cntt] bài giảng lập trình java   bkhcm[Cntt] bài giảng lập trình java   bkhcm
[Cntt] bài giảng lập trình java bkhcm
 
Bai06 mot sokythuattrongkethua
Bai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethua
Bai06 mot sokythuattrongkethua
 
Bai02 java introduction
Bai02 java introductionBai02 java introduction
Bai02 java introduction
 
Bai11 ooad bieu_dolop
Bai11 ooad bieu_dolopBai11 ooad bieu_dolop
Bai11 ooad bieu_dolop
 
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
Bài 8 - Collection Generics - Nền tảng lập trình ứng dụng với C#
 
Bai01 oop overview
Bai01 oop overviewBai01 oop overview
Bai01 oop overview
 
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTBài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPT
 
[Cntt] all java
[Cntt] all java[Cntt] all java
[Cntt] all java
 
[Cntt] bài giảng java khtn hcm
[Cntt] bài giảng java   khtn hcm[Cntt] bài giảng java   khtn hcm
[Cntt] bài giảng java khtn hcm
 
Bai09 ngoai levaxulyngoaile
Bai09 ngoai levaxulyngoaileBai09 ngoai levaxulyngoaile
Bai09 ngoai levaxulyngoaile
 

Destaque

Artificial intelligence ai l2-tac tu
Artificial intelligence ai l2-tac tuArtificial intelligence ai l2-tac tu
Artificial intelligence ai l2-tac tuTráng Hà Viết
 
REVE ANTIVIRUS PARTNER & START SELLING
REVE ANTIVIRUS PARTNER & START SELLINGREVE ANTIVIRUS PARTNER & START SELLING
REVE ANTIVIRUS PARTNER & START SELLINGtechexpert2345
 
Herramientas colaborativas
Herramientas colaborativasHerramientas colaborativas
Herramientas colaborativasJORMAN MANRIQUE
 
Delight 2016 part1
Delight 2016 part1Delight 2016 part1
Delight 2016 part1x-mss
 

Destaque (7)

MapleBrochure
MapleBrochureMapleBrochure
MapleBrochure
 
Artificial intelligence ai l2-tac tu
Artificial intelligence ai l2-tac tuArtificial intelligence ai l2-tac tu
Artificial intelligence ai l2-tac tu
 
REVE ANTIVIRUS PARTNER & START SELLING
REVE ANTIVIRUS PARTNER & START SELLINGREVE ANTIVIRUS PARTNER & START SELLING
REVE ANTIVIRUS PARTNER & START SELLING
 
Vanessa
VanessaVanessa
Vanessa
 
Ocp final case
Ocp  final caseOcp  final case
Ocp final case
 
Herramientas colaborativas
Herramientas colaborativasHerramientas colaborativas
Herramientas colaborativas
 
Delight 2016 part1
Delight 2016 part1Delight 2016 part1
Delight 2016 part1
 

Semelhante a Oop unit 07 các kỹ thuật kế thừa

Ket tap, ke thua
Ket tap, ke thuaKet tap, ke thua
Ket tap, ke thuaTuan Do
 
Class và object (lớp và đối tượng
Class và object (lớp và đối tượngClass và object (lớp và đối tượng
Class và object (lớp và đối tượngSon Nguyen
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituongMinh Ngoc Tran
 
Lappj trình hướng đối tượng
Lappj trình hướng đối tượngLappj trình hướng đối tượng
Lappj trình hướng đối tượngHưởng Nguyễn
 
Pdfc fast food-mastercode.vn
Pdfc fast food-mastercode.vnPdfc fast food-mastercode.vn
Pdfc fast food-mastercode.vnMasterCode.vn
 
K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11Tin5VungTau
 
Pplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPix Nhox
 
Java ease learning(1)
Java ease learning(1)Java ease learning(1)
Java ease learning(1)Nguyen Xuan
 
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...MasterCode.vn
 

Semelhante a Oop unit 07 các kỹ thuật kế thừa (20)

Ket tap, ke thua
Ket tap, ke thuaKet tap, ke thua
Ket tap, ke thua
 
Class và object (lớp và đối tượng
Class và object (lớp và đối tượngClass và object (lớp và đối tượng
Class và object (lớp và đối tượng
 
Chuong 3
Chuong 3Chuong 3
Chuong 3
 
Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituong
 
Chuong8 (2)
Chuong8 (2)Chuong8 (2)
Chuong8 (2)
 
Chuong3 c
Chuong3 c Chuong3 c
Chuong3 c
 
Chuong 5
Chuong 5Chuong 5
Chuong 5
 
Lappj trình hướng đối tượng
Lappj trình hướng đối tượngLappj trình hướng đối tượng
Lappj trình hướng đối tượng
 
Pdfc fast food-mastercode.vn
Pdfc fast food-mastercode.vnPdfc fast food-mastercode.vn
Pdfc fast food-mastercode.vn
 
Giáo trình c#
Giáo trình c#Giáo trình c#
Giáo trình c#
 
K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11
 
Pplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09aPplthdt c02 lop_doi_tuong_v13.09a
Pplthdt c02 lop_doi_tuong_v13.09a
 
Java ease learning(1)
Java ease learning(1)Java ease learning(1)
Java ease learning(1)
 
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
Bài 2: Lập trình hướng đối tượng & Collection - Lập trình winform - Giáo trìn...
 
Chuong 1
Chuong 1Chuong 1
Chuong 1
 
On thitotnghiep
On thitotnghiepOn thitotnghiep
On thitotnghiep
 
Chuong 07 lop
Chuong 07 lopChuong 07 lop
Chuong 07 lop
 
Chuong 6
Chuong 6Chuong 6
Chuong 6
 
Chuong6 (2)
Chuong6 (2)Chuong6 (2)
Chuong6 (2)
 
Chuong5 (2)
Chuong5 (2)Chuong5 (2)
Chuong5 (2)
 

Mais de Tráng Hà Viết

Tài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh tài liệu, ebook
Tài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh   tài liệu, ebookTài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh   tài liệu, ebook
Tài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh tài liệu, ebookTráng Hà Viết
 
Artificial intelligence ai l1-gioi thieu
Artificial intelligence ai l1-gioi thieuArtificial intelligence ai l1-gioi thieu
Artificial intelligence ai l1-gioi thieuTráng Hà Viết
 
Artificial intelligence ai gioi thieu-mon_hoc_it4040
Artificial intelligence ai gioi thieu-mon_hoc_it4040Artificial intelligence ai gioi thieu-mon_hoc_it4040
Artificial intelligence ai gioi thieu-mon_hoc_it4040Tráng Hà Viết
 
Artificial intelligence ai l5-thoa man-rang_buoc
Artificial intelligence ai l5-thoa man-rang_buocArtificial intelligence ai l5-thoa man-rang_buoc
Artificial intelligence ai l5-thoa man-rang_buocTráng Hà Viết
 
Artificial intelligence ai l6-logic va-suy_dien
Artificial intelligence ai l6-logic va-suy_dienArtificial intelligence ai l6-logic va-suy_dien
Artificial intelligence ai l6-logic va-suy_dienTráng Hà Viết
 
Artificial intelligence ai l4-tim kiem-heuristic
Artificial intelligence ai l4-tim kiem-heuristicArtificial intelligence ai l4-tim kiem-heuristic
Artificial intelligence ai l4-tim kiem-heuristicTráng Hà Viết
 
Artificial intelligence ai l7-bieu dien-tri_thuc
Artificial intelligence ai l7-bieu dien-tri_thucArtificial intelligence ai l7-bieu dien-tri_thuc
Artificial intelligence ai l7-bieu dien-tri_thucTráng Hà Viết
 
Artificial intelligence ai l9-hoc may
Artificial intelligence ai l9-hoc mayArtificial intelligence ai l9-hoc may
Artificial intelligence ai l9-hoc mayTráng Hà Viết
 
Artificial intelligence ai l3-tim kiem-co_ban
Artificial intelligence ai l3-tim kiem-co_banArtificial intelligence ai l3-tim kiem-co_ban
Artificial intelligence ai l3-tim kiem-co_banTráng Hà Viết
 
Công cụ mã nguồn mở BlueFish
Công cụ mã nguồn mở BlueFishCông cụ mã nguồn mở BlueFish
Công cụ mã nguồn mở BlueFishTráng Hà Viết
 

Mais de Tráng Hà Viết (10)

Tài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh tài liệu, ebook
Tài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh   tài liệu, ebookTài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh   tài liệu, ebook
Tài liệu môn trí tuệ nhân tạo đh bách khoa tp hồ chí minh tài liệu, ebook
 
Artificial intelligence ai l1-gioi thieu
Artificial intelligence ai l1-gioi thieuArtificial intelligence ai l1-gioi thieu
Artificial intelligence ai l1-gioi thieu
 
Artificial intelligence ai gioi thieu-mon_hoc_it4040
Artificial intelligence ai gioi thieu-mon_hoc_it4040Artificial intelligence ai gioi thieu-mon_hoc_it4040
Artificial intelligence ai gioi thieu-mon_hoc_it4040
 
Artificial intelligence ai l5-thoa man-rang_buoc
Artificial intelligence ai l5-thoa man-rang_buocArtificial intelligence ai l5-thoa man-rang_buoc
Artificial intelligence ai l5-thoa man-rang_buoc
 
Artificial intelligence ai l6-logic va-suy_dien
Artificial intelligence ai l6-logic va-suy_dienArtificial intelligence ai l6-logic va-suy_dien
Artificial intelligence ai l6-logic va-suy_dien
 
Artificial intelligence ai l4-tim kiem-heuristic
Artificial intelligence ai l4-tim kiem-heuristicArtificial intelligence ai l4-tim kiem-heuristic
Artificial intelligence ai l4-tim kiem-heuristic
 
Artificial intelligence ai l7-bieu dien-tri_thuc
Artificial intelligence ai l7-bieu dien-tri_thucArtificial intelligence ai l7-bieu dien-tri_thuc
Artificial intelligence ai l7-bieu dien-tri_thuc
 
Artificial intelligence ai l9-hoc may
Artificial intelligence ai l9-hoc mayArtificial intelligence ai l9-hoc may
Artificial intelligence ai l9-hoc may
 
Artificial intelligence ai l3-tim kiem-co_ban
Artificial intelligence ai l3-tim kiem-co_banArtificial intelligence ai l3-tim kiem-co_ban
Artificial intelligence ai l3-tim kiem-co_ban
 
Công cụ mã nguồn mở BlueFish
Công cụ mã nguồn mở BlueFishCông cụ mã nguồn mở BlueFish
Công cụ mã nguồn mở BlueFish
 

Último

Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanmyvh40253
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docxTHAO316680
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...Nguyen Thanh Tu Collection
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...Nguyen Thanh Tu Collection
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgsNmmeomeo
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngYhoccongdong.com
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-KhnhHuyn546843
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...Nguyen Thanh Tu Collection
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢIPHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢImyvh40253
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 

Último (20)

Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgspowerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
powerpoint mẫu họp phụ huynh cuối kì 2 học sinh lớp 7 bgs
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢIPHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 

Oop unit 07 các kỹ thuật kế thừa

  • 1. Bài 7 Các kỹ thuật kế thừa Trịnh Thành Trung trungtt@soict.hust.edu.vn
  • 2. Nội dung 1. Ghi đè 2. Lớp trừu tượng 3. Giao diện
  • 4. 4 Mối quan hệ kế thừa • Lớp con − Là một loại (is-a-kind-of) của lớp cha − Kế thừa các thành phần dữ liệu và các hành vi của lớp cha − Chi tiết hóa cho phù hợp với mục đích sử dụng mới + Extension: Thêm các thuộc tính/hành vi mới + Redefinition (Method Overriding): Chỉnh sửa lại các hành vi kế thừa từ lớp cha
  • 5. 5 Định nghĩa lại hay ghi đè • Phương thức ghi đè sẽ thay thế hoặc làm rõ hơn cho phương thức cùng tên trong lớp cha • Đối tượng của lớp con sẽ hoạt động với phương thức mới phù hợp với nó
  • 6. 6 Định nghĩa lại hay ghi đè • Cú pháp: Phương thức ở lớp con hoàn toàn giống về chữ ký với phương thức ở lớp cha − Trùng tên & danh sách tham số − Mục đích: Để thể hiện cùng bản chất công việc
  • 7. class Shape { protected String name; Shape(String n) { name = n; } public String getName() { return name; } public float calculateArea() { return 0.0f; } } class Circle extends Shape { private int radius; Circle(String n, int r){ super(n); radius = r; } public float calculateArea() { float area = (float)(3.14 * radius * radius); return area; } } Ví dụ
  • 8. class Square extends Shape { private int side; Square(String n, int s) { super(n); side = s; } public float calculateArea() { float area = (float) side * side; return area; } } Lớp Square
  • 10. 11 • Tái sử dụng các đoạn mã của lớp cha trong lớp con • Gọi phương thức khởi tạo super(danh sách tham số); − Bắt buộc nếu lớp cha không có phương thức khởi tạo mặc định • Gọi các phương thức của lớp cha super.tênPt(danh sách tham số); Sử dụng từ khóa super
  • 11. Ví dụ package abc; public class Person { protected String name; protected int age; public String getDetail() { String s = name + "," + age; return s; } } import abc.Person; public class Employee extends Person { double salary; public String getDetail() { String s = super.getDetail() + "," + salary; return s; } }
  • 12. 13 • Phương thức ghi đè trong lớp con phải − Có danh sách tham số giống hệt phương thức kế thừa trong lớp cha. − Có cùng kiểu trả về với phương thức kế thừa trong lớp cha • Các chỉ định truy cập không giới hạn chặt hơn phương thức trong lớp cha − Ví dụ, nếu ghi đè một phương thức protected, thì phương thức mới có thể là protected hoặc public, mà không được là private. Quy định trong ghi đè
  • 13. Ví dụ class Parent { public void doSomething() {} protected int doSomething2() { return 0; } } class Child extends Parent { protected void doSomething() {} protected void doSomething2() {} } Không ghi đè được do chỉ định truy cập yếu hơn (public -> protected) Không ghi đè được do không cùng kiểu trả về
  • 14. 15 • Không được phép ghi đè: − Các phương thức static trong lớp cha − Các phương thức private trong lớp cha − Các phương thức hằng (final) trong lớp cha Quy định trong ghi đè (tiếp)
  • 15. 16 • Đôi lúc ta muốn hạn chế việc định nghĩa lại vì các lý do sau: − Tính đúng đắn: Định nghĩa lại một phương thức trong lớp dẫn xuất có thể làm sai lạc ý nghĩa của nó − Tính hiệu quả: Cơ chế kết nối động không hiệu quả về mặt thời gian bằng kết nối tĩnh. Nếu biết trước sẽ không định nghĩa lại phương thức của lớp cơ sở thì nên dùng từ khóa final đi với phương thức public final String baseName () { return “Person”; } Hạn chế ghi đè
  • 17. 22 Lớp trừu tượng • Xét ví dụ: Lớp Shape − Là một lớp "không rõ ràng", khó hình dung ra các đối tượng cụ thể − Có những phương thức như calculateArea() khó cài đặt cụ thể
  • 18. 23 Lớp trừu tượng • Đặc điểm của lớp trừu tượng − Không thể thể hiện hóa (instantiate – tạo đối tượng của lớp) trực tiếp − Chưa đầy đủ, thường được sử dụng làm lớp cha. Lớp con kế thừa nó sẽ hoàn thiện nốt. + Lớp trừu tượng có thể chứa các phương thức trừu tượng không được định nghĩa + Các lớp dẫn xuất có trách nhiệm định nghĩa lại (overriding) các phương thức trừu tượng này
  • 19. 24 Lớp trừu tượng • Không thể tạo đối tượng trực tiếp từ các lớp trừu tượng • Thường lớp trừu tượng được dùng để định nghĩa các "khái niệm chung", đóng vai trò làm lớp cơ sở cho các lớp "cụ thể" khác.
  • 20. 25 Lớp trừu tượng • Cú pháp − Khai báo với từ khóa abstract public abstract class Shape { // Nội dung lớp } • Phương thức trừu tượng − Chỉ có chữ ký mà không có cài đặt cụ thể − Khai báo với từ khóa abstract public abstract float calculateArea();
  • 21. 26 Lớp trừu tượng • Lớp trừu tượng cần chứa ít nhất một phương thức trừu tượng (abstract method) • Nếu một lớp có một hay nhiều phương thức trừu tượng thì nó phải là lớp trừu tượng • Lớp con khi kế thừa phải cài đặt cụ thể cho các phương thức trừu tượng của lớp cha  Phương thức trừu tượng không thể khai báo là final hoặc static.
  • 22. Ví dụ 1 abstract class Shape { protected String name; Shape(String n) { name = n; } public String getName() { return name; } public abstract float calculateArea(); } class Circle extends Shape { private int radius; Circle(String n, int r){ super(n); radius = r; } public float calculateArea() { float area = (float) (3.14 * radius * radius); return area; } } Lớp con bắt buộc phải override tất cả các phương thức abstract của lớp cha
  • 23. Ví dụ 2 abstract class Point { private int x, y; public Point(int x, int y) { this.x = x; this.y = y; } public void move(int dx, int dy) { x += dx; y += dy; plot(); } public abstract void plot(); // phương thức trừu tượng không có // phần code thực hiện }
  • 24. Ví dụ 2 (tiếp) abstract class ColoredPoint extends Point { int color; public ColoredPoint(int x, int y, int color) { super(x, y); this.color = color; } } class SimpleColoredPoint extends ColoredPoint { public SimpleColoredPoint(int x, int y, int color) { super(x, y, color); } public void plot() { ... } // code to plot a SimplePoint }
  • 26. 31 Đa kế thừa và đơn kế thừa • Đa kế thừa (Multiple Inheritance) − Một lớp có thể kế thừa nhiều lớp khác − C++ hỗ trợ đa kế thừa • Đơn kế thừa (Single Inheritance) − Một lớp chỉ được kế thừa từ một lớp khác − Java chỉ hỗ trợ đơn kế thừa  Đưa thêm khái niệm Giao diện (Interface) EA D F A B C D
  • 27. 32 Vấn đề gặp phải trong đa kế thừa • Name collision • "Diamond shape" problem Bird Animal + color + getColor () FlyingThing + color + getColor () SomeClass Bird Animal + color + getColor () FlyingThing + color + getColor ()
  • 28. 34 Giao diện • Để trở thành giao diện, cần − Sử dụng từ khóa interface để định nghĩa − Chỉ được bao gồm: + Chữ ký các phương thức (method signature) + Các thuộc tính khai báo hằng (static & final) • Lớp thực thi giao diện − Hoặc là lớp trừu tượng (abstract class) − Hoặc là bắt buộc phải cài đặt chi tiết toàn bộ các phương thức trong giao diện nếu là lớp instance.
  • 29. 35 • Cú pháp khai báo giao diện trên Java: interface <Tên giao diện> <Giao diện con> extends <Giao diện cha> • Ví dụ: public interface DoiXung {…} public interface Can extends DoiXung {…} public interface DiChuyen {…} Giao diện
  • 30. 36 • Cú pháp thực thi giao diện <Lớp con> [extends <Lớp cha>] implements <Danh sách giao diện> • Ví dụ: public class HinhVuong extends TuGiac implements DoiXung, DiChuyen { ... } Giao diện
  • 32. 39 Góc nhìn quan niệm • Interface không cài đặt bất cứ một phương thức nào nhưng để lại cấu trúc thiết kế trên bất cứ lớp nào sử dụng nó • Một interface: 1 contract – mà trong đó các nhóm phát triển phần mềm thống nhất sản phẩm của họ tương tác với nhau như thế nào, mà không đòi hỏi bất cứ một tri thức về cách thức tiến hành của nhau.
  • 33. Circle -radius: float +calculateArea():float +draw(Graphics) +erase(Graphics) Action #x: int #y: int +draw(Graphics) +moveTo(Graphics,int, int) +erase(Graphics) Shape #name: String +getName():String +calculateArea():float Circle -radius:float +calculateArea():float +draw(Graphics) +moveTo(Graphics,int,int) +erase(Graphics) <<interface>> Actable +draw(Graphics) +moveTo(Graphics,int, int) +erase(Graphics) Shape #name: String #x:int #y:int +getName():String +calculateArea():float
  • 34. 42 Giao diện • Một interface có thể được coi như một dạng “class” mà − Phương thức và thuộc tính là public không tường minh − Các thuộc tính là static và final − Các phương thức là abstract • Không thể thể hiện hóa (instantiate) trực tiếp • Một lớp có thể thực thi nhiều giao diện
  • 36. import java.awt.Graphics; abstract class Shape { protected String name; protected int x, y; Shape(String n, int x, int y) { name = n; this.x = x; this.y = y; } public String getName() { return name; } public abstract float calculateArea(); } interface Actable { public void draw(Graphics g); public void moveTo(Graphics g, int x1, int y1); public void erase(Graphics g); } Ví dụ
  • 37. class Circle extends Shape implements Actable { private int radius; public Circle(String n, int x, int y, int r) { super(n, x, y); radius = r; } public float calculateArea() { float area = (float) (3.14 * radius * radius); return area; } public void draw(Graphics g) { System out println("Draw circle at (" + x + “," + y + ")"); g.drawOval(x-radius,y-radius,2*radius,2*radius); } public void moveTo(Graphics g, int x1, int y1) { erase(g); x = x1; y = y1; draw(g); } public void erase(Graphics g) { System out println(“Erase circle at (" + x + “," + y + ")"); // paint the region with background color... } }
  • 38. 46 Lớp trừu tượng vs. Giao diện Lớp trừu tượng • Cần có ít nhất một phương thức abstract, có thể chứa các phương thức instance • Có thể chứa các phương thức protected và static • Có thể chứa các thuộc tính final và non-final • Một lớp chỉ có thể kế thừa một lớp trừu tượng Giao diện • Chỉ có thể chứa chữ ký phương thức (danh sách các phương thức) • Chỉ có thể chứa các phương thức public mà không có mã nguồn • Chỉ có thể chứa các thuộc tính hằng • Một lớp có thể thực thi (kế thừa) nhiều giao diện
  • 39. 47 Nhược điểm • Không cung cấp một cách tự nhiên cho các tình huống không có sự đụng độ về kế thừa xảy ra • Kế thừa là để Tái sử dụng mã nguồn nhưng Giao diện không làm được điều này
  • 40. Tổng kết • Ghi đè • Các phương thức ở lớp con có cùng chữ ký và danh sách tham số với phương thức ở lớp cha, được tạo ra để định nghĩa lại các hành vi ở lớp con • Lớp trừu tượng • Các lớp không được khởi tạo đối tượng, được tạo ra làm lớp cơ sở cho các lớp con định nghĩa rõ hơn • Có ít nhất một phương thức trừu tượng • Giao diện • Định nghĩa các phương thức mà lớp thực thi phải cài đặt • Giải quyết vấn đề đa kế thừa