SlideShare a Scribd company logo
1 of 13
Lập trình hướng đối tượng
                      Lập trình hướng đối tượng


 Hà Văn Sang      Hà Văn Sang
 Bộ môn: Tin học TC – KT
 Khoa: Hệ Thống Thông HTTT, tế - Học Viện Tài Chính
                  Khoa Tin Kinh
 Tel: 0982.165.568Academy Of Finance, Hanoi
 Email: sanghv@hvtc.edu.vn
 Website: http://www.hvtc.edu.vn/sanghv



05/03/12 07:08
Lập trình hướng đối tượng
                                  CHƯƠNG VI




                 Hà Văn Sang
                 Khoa HTTT,
                 Academy Of Finance, Hanoi




05/03/12 07:08
1. Khuôn hình hàm

  Định nghĩa

      Ví dụ 1: xây dựng hàm tìm max của hai số thực
      -Xây dựng hàm tính max của ba số thực
      -Xây dựng hàm tính max của n số thực
     Giải quyết:
           •Nạp chồng hàm max

           Vấn đề được giải quyết, nhưng phải viết n hàm

Object Oriented Programing– Information Systems Department   3
1. Khuôn hình hàm

    Ví dụ 2: xây dựng hàm tìm max của hai số bất kỳ

   Giải quyết:
      int max(int a, int b){
      if(a>b) return a;
                   elsse return b;}


       float max(float a, float b){
       if(a>b) return a;
                    elsse return b;}



Object Oriented Programing– Information Systems Department   4
1. Khuôn hình hàm

  Khái niệm

      Là mẫu của hàm có tham số là kiểu của đối số
     Với mỗi giá trị hợp lệ của đối số sẽ phát sinh một
     hàm cụ thể gọi là hàm thể hiện
     Khai báo:
           template <class T1, class T2....> <kiểu giá trị trả về> <tên khuôn hình
           hàm>([ds tham số])
           {
                         //thân khuôn hình hàm
           }


Object Oriented Programing– Information Systems Department                           5
1. Khuôn hình hàm


  Ví dụ1 :
      template <class T> T max(T a, T b){
      if(a>b) return a ;
      else return b;}


     Ví dụ 2: xây dựng khuôn hình tính tổng 3 số bất kỳ
           template <class T1, class T2, class T3> T1 tong(T1 x, T2 y, T3 z)
           {
                         return x+y+z ;
           }




Object Oriented Programing– Information Systems Department                     6
1. Khuôn hình hàm

  Gọi hàm từ khuôn hình hàm
      <tên hàm>(đối số)
      Tên hàm trùng tên khuôn hình hàm




     Ví dụ:
           int a,b ;
           float x,y ;
           max(a,b) ;




Object Oriented Programing– Information Systems Department   7
1. Khuôn hình hàm
  Với khuôn hình hàm max:
      int a,b;
      max(a,b)

     Khi đó chương trình dịch sẽ xác định:
      -Kiểu của a,b là int nên kiểu của T cũng sẽ là int
      -Phát sinh một hàm cụ thể từ khuôn hình hàm max
       -Hàm max lúc này sẽ như sau:
       int max(int a, int b)
       {
                    if(a>b) return a ;
                    else return b;
       }

Object Oriented Programing– Information Systems Department   8
2. Khuôn hình lớp

  Ví dụ: xây dựng lớp MT1 với:
      •Số phần tử
      •Mảng các phần tử kiểu: int, char, float, long ...
      •Các phương thức: nhập, in, cộng, trừ

   Nhận xét:
       -Với mỗi kiểu dữ liệu của mảng sẽ có 1 lớp
       -Các lớp này có chung các thao tác
       -Chỉ kiểu dữ liệu của mảng là khác
        C++ cho phép xây dựng một mẫu của lớp, mẫu này có tham số để
       ứng với mỗi giá trị của tham số sẽ phát sinh một lớp



Object Oriented Programing– Information Systems Department              9
2. Khuôn hình lớp

  Khái niệm
      •Là một mẫu của lớp có các tham số là các kiểu dữ liệu (tham số
      kiểu)
      •Với mỗi giá trị của tham số kiểu sẽ phát sinh ra một thể hiện là một
      lớp cụ thể (lớp khuôn hình)


   Khai báo:

       template <class T1, class T2...> class <tên khuôn hình lớp>
       {
                    <khai báo các thành phần>
       };

Object Oriented Programing– Information Systems Department                    10
2. Khuôn hình lớp

  Ví dụ:
      template <class T>
      class MT1{
      int spt;
      T d[10];
      public:
      void nhap();
      void in();
      …}




Object Oriented Programing– Information Systems Department   11
2. Khuôn hình lớp

  Định nghĩa phương thức

      -Định nghĩa bên trong khai báo của khuôn hình như hàm
      thông thừơng
      - Định nghĩa bên ngoài khai báo

   Ví dụ:

       template <class T> void MT<T>::nhap()
       {
       …
       }

Object Oriented Programing– Information Systems Department    12
2. Khuôn hình lớp

  Sử dụng khuôn hình lớp

      - Mỗi giá trị của tham số kiểu, chương trình dịch sẽ phát
      sinh ra một lớp cụ thể
      Cú pháp: <tên khuôn hình><kiểu>
      Khai báo đối tựơng: <tên khuôn hình><kiểu> <tên biến>
   Ví dụ:
       MT<int> a;
       MT<float> b;
       MT<long> c;



Object Oriented Programing– Information Systems Department        13

More Related Content

What's hot

K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11Tin5VungTau
 
Lttt matlab chuong 1
Lttt matlab chuong 1Lttt matlab chuong 1
Lttt matlab chuong 1Hoa Cỏ May
 
Thuchanh Ktdk-matlab
Thuchanh Ktdk-matlabThuchanh Ktdk-matlab
Thuchanh Ktdk-matlabmark
 
Bài tập thực hành số 1
Bài tập thực hành số 1Bài tập thực hành số 1
Bài tập thực hành số 1Tran Trung Dung
 
4 matlab ly-thuyet_dohoa_
4 matlab ly-thuyet_dohoa_4 matlab ly-thuyet_dohoa_
4 matlab ly-thuyet_dohoa_Phi Phi
 
Tính toán khoa học - Chương 1: Nhập môn Matlab
Tính toán khoa học - Chương 1: Nhập môn MatlabTính toán khoa học - Chương 1: Nhập môn Matlab
Tính toán khoa học - Chương 1: Nhập môn MatlabChien Dang
 
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
 
Huong danmatlab simulink
Huong danmatlab simulinkHuong danmatlab simulink
Huong danmatlab simulinkAnh Vu
 
Session 4
Session 4Session 4
Session 4pnanhvn
 
Các lệnh-cơ-bản-của-giải-tích-1
Các lệnh-cơ-bản-của-giải-tích-1Các lệnh-cơ-bản-của-giải-tích-1
Các lệnh-cơ-bản-của-giải-tích-1thaicuia
 
Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731Vu Tuan
 
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09aPplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09aPix Nhox
 
Nmlt c03 cac_kieudulieucoso_in
Nmlt c03 cac_kieudulieucoso_inNmlt c03 cac_kieudulieucoso_in
Nmlt c03 cac_kieudulieucoso_inHuy Nguyễn
 
Đồ Thị Matlab
Đồ Thị Matlab Đồ Thị Matlab
Đồ Thị Matlab JoneCole
 
bai giang Matlab
bai giang Matlabbai giang Matlab
bai giang Matlableoteo113
 
Lttt matlab chuong 2
Lttt matlab chuong 2Lttt matlab chuong 2
Lttt matlab chuong 2Hoa Cỏ May
 

What's hot (20)

K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11K33103350 tran doankimnhu_bai17_tin11
K33103350 tran doankimnhu_bai17_tin11
 
Lttt matlab chuong 1
Lttt matlab chuong 1Lttt matlab chuong 1
Lttt matlab chuong 1
 
Thuchanh Ktdk-matlab
Thuchanh Ktdk-matlabThuchanh Ktdk-matlab
Thuchanh Ktdk-matlab
 
Bài tập thực hành số 1
Bài tập thực hành số 1Bài tập thực hành số 1
Bài tập thực hành số 1
 
4 matlab ly-thuyet_dohoa_
4 matlab ly-thuyet_dohoa_4 matlab ly-thuyet_dohoa_
4 matlab ly-thuyet_dohoa_
 
Tính toán khoa học - Chương 1: Nhập môn Matlab
Tính toán khoa học - Chương 1: Nhập môn MatlabTính toán khoa học - Chương 1: Nhập môn Matlab
Tính toán khoa học - Chương 1: Nhập môn Matlab
 
Oop 2
Oop 2Oop 2
Oop 2
 
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
 
06 tong quan ve ngon ngu c
06 tong quan ve ngon ngu c06 tong quan ve ngon ngu c
06 tong quan ve ngon ngu c
 
Oop 4
Oop 4Oop 4
Oop 4
 
Huong danmatlab simulink
Huong danmatlab simulinkHuong danmatlab simulink
Huong danmatlab simulink
 
Session 4
Session 4Session 4
Session 4
 
Các lệnh-cơ-bản-của-giải-tích-1
Các lệnh-cơ-bản-của-giải-tích-1Các lệnh-cơ-bản-của-giải-tích-1
Các lệnh-cơ-bản-của-giải-tích-1
 
C9 templates
C9 templatesC9 templates
C9 templates
 
Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731
 
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09aPplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
Pplthdt c04 thuoc_tinhdoituong_phuongthuc_v13.09a
 
Nmlt c03 cac_kieudulieucoso_in
Nmlt c03 cac_kieudulieucoso_inNmlt c03 cac_kieudulieucoso_in
Nmlt c03 cac_kieudulieucoso_in
 
Đồ Thị Matlab
Đồ Thị Matlab Đồ Thị Matlab
Đồ Thị Matlab
 
bai giang Matlab
bai giang Matlabbai giang Matlab
bai giang Matlab
 
Lttt matlab chuong 2
Lttt matlab chuong 2Lttt matlab chuong 2
Lttt matlab chuong 2
 

Viewers also liked

Global view presentation
Global view presentationGlobal view presentation
Global view presentationkmr0155
 
Born this way foundation
Born this way foundationBorn this way foundation
Born this way foundationnmarin15
 
AHF 2010-2011 Progress Report
AHF 2010-2011 Progress ReportAHF 2010-2011 Progress Report
AHF 2010-2011 Progress Reportaidshealth Care
 
Demonstration method
Demonstration methodDemonstration method
Demonstration methodKristine Sasi
 
0416 久丁文化-影片后期制作报价
0416 久丁文化-影片后期制作报价0416 久丁文化-影片后期制作报价
0416 久丁文化-影片后期制作报价glocalstrategy
 
American apparel
American apparelAmerican apparel
American apparelkmr0155
 
Adi w, nidya n , reni agustin off.k
Adi w, nidya n , reni agustin off.kAdi w, nidya n , reni agustin off.k
Adi w, nidya n , reni agustin off.kFARHUR
 
China pp
China ppChina pp
China ppkmr0155
 
Учебная группа "повар"
Учебная группа "повар"Учебная группа "повар"
Учебная группа "повар"vj_ss
 
16 11-2011 enllumenat públic
16 11-2011 enllumenat públic16 11-2011 enllumenat públic
16 11-2011 enllumenat públicCarlos Seijo
 
Meditas de mantenimiento en los computadores
Meditas de mantenimiento en los computadoresMeditas de mantenimiento en los computadores
Meditas de mantenimiento en los computadoresCarlos Tituaña
 
What is participatory video?
What is participatory video?What is participatory video?
What is participatory video?ILRI
 

Viewers also liked (20)

Chapter 3
Chapter 3Chapter 3
Chapter 3
 
Chapter 5
Chapter 5Chapter 5
Chapter 5
 
Global view presentation
Global view presentationGlobal view presentation
Global view presentation
 
Born this way foundation
Born this way foundationBorn this way foundation
Born this way foundation
 
Media management
Media managementMedia management
Media management
 
AHF 2010-2011 Progress Report
AHF 2010-2011 Progress ReportAHF 2010-2011 Progress Report
AHF 2010-2011 Progress Report
 
Demonstration method
Demonstration methodDemonstration method
Demonstration method
 
0416 久丁文化-影片后期制作报价
0416 久丁文化-影片后期制作报价0416 久丁文化-影片后期制作报价
0416 久丁文化-影片后期制作报价
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 
Chapter 2
Chapter 2Chapter 2
Chapter 2
 
American apparel
American apparelAmerican apparel
American apparel
 
Chapter 3 (cont)
Chapter 3 (cont)Chapter 3 (cont)
Chapter 3 (cont)
 
Adi w, nidya n , reni agustin off.k
Adi w, nidya n , reni agustin off.kAdi w, nidya n , reni agustin off.k
Adi w, nidya n , reni agustin off.k
 
China pp
China ppChina pp
China pp
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Учебная группа "повар"
Учебная группа "повар"Учебная группа "повар"
Учебная группа "повар"
 
Malice Review Final
Malice Review FinalMalice Review Final
Malice Review Final
 
16 11-2011 enllumenat públic
16 11-2011 enllumenat públic16 11-2011 enllumenat públic
16 11-2011 enllumenat públic
 
Meditas de mantenimiento en los computadores
Meditas de mantenimiento en los computadoresMeditas de mantenimiento en los computadores
Meditas de mantenimiento en los computadores
 
What is participatory video?
What is participatory video?What is participatory video?
What is participatory video?
 

Similar to Chapter 6

Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituongMinh Ngoc Tran
 
Programming technique 1_2_7921
Programming technique 1_2_7921Programming technique 1_2_7921
Programming technique 1_2_7921tienhien110293
 
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.comBài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.commai_non
 
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
 
Bai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tuBai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tuBrand Xanh
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson00
Lap trinh huong_doi_tuong_cpp_dhct_lesson00Lap trinh huong_doi_tuong_cpp_dhct_lesson00
Lap trinh huong_doi_tuong_cpp_dhct_lesson00xcode_esvn
 
OOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfOOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfssuserd01a5c
 
TRNG_DI_HC_NHA_TRANG.pdf
TRNG_DI_HC_NHA_TRANG.pdfTRNG_DI_HC_NHA_TRANG.pdf
TRNG_DI_HC_NHA_TRANG.pdfPHNGUYNNGC9
 
Ngon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiNgon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiHuynh MVT
 

Similar to Chapter 6 (20)

Chuong9 lop vadoituong
Chuong9 lop vadoituongChuong9 lop vadoituong
Chuong9 lop vadoituong
 
Programming technique 1_2_7921
Programming technique 1_2_7921Programming technique 1_2_7921
Programming technique 1_2_7921
 
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.comBài giảng Lập trình cơ bản - truongkinhtethucpham.com
Bài giảng Lập trình cơ bản - truongkinhtethucpham.com
 
Ltc 01
Ltc 01Ltc 01
Ltc 01
 
Phạm văn ất
Phạm văn ấtPhạm văn ất
Phạm văn ất
 
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
 
Bai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tuBai thi Nghiem ky thuat dien tu
Bai thi Nghiem ky thuat dien tu
 
Chuong5 (2)
Chuong5 (2)Chuong5 (2)
Chuong5 (2)
 
Huong doi tuong
Huong doi tuongHuong doi tuong
Huong doi tuong
 
Chuong 4
Chuong 4Chuong 4
Chuong 4
 
Bai tap thuc hanh
Bai tap thuc hanhBai tap thuc hanh
Bai tap thuc hanh
 
C9 templates
C9 templatesC9 templates
C9 templates
 
Lap trinh huong_doi_tuong_cpp_dhct_lesson00
Lap trinh huong_doi_tuong_cpp_dhct_lesson00Lap trinh huong_doi_tuong_cpp_dhct_lesson00
Lap trinh huong_doi_tuong_cpp_dhct_lesson00
 
OOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfOOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdf
 
TRNG_DI_HC_NHA_TRANG.pdf
TRNG_DI_HC_NHA_TRANG.pdfTRNG_DI_HC_NHA_TRANG.pdf
TRNG_DI_HC_NHA_TRANG.pdf
 
Lesson00
Lesson00Lesson00
Lesson00
 
Lesson00
Lesson00Lesson00
Lesson00
 
Chuong1 c
Chuong1 c Chuong1 c
Chuong1 c
 
Ngon ngu c theo chuan ansi
Ngon ngu c theo chuan ansiNgon ngu c theo chuan ansi
Ngon ngu c theo chuan ansi
 
Chuong2 c
Chuong2 c Chuong2 c
Chuong2 c
 

Chapter 6

  • 1. Lập trình hướng đối tượng Lập trình hướng đối tượng Hà Văn Sang Hà Văn Sang Bộ môn: Tin học TC – KT Khoa: Hệ Thống Thông HTTT, tế - Học Viện Tài Chính Khoa Tin Kinh Tel: 0982.165.568Academy Of Finance, Hanoi Email: sanghv@hvtc.edu.vn Website: http://www.hvtc.edu.vn/sanghv 05/03/12 07:08
  • 2. Lập trình hướng đối tượng CHƯƠNG VI Hà Văn Sang Khoa HTTT, Academy Of Finance, Hanoi 05/03/12 07:08
  • 3. 1. Khuôn hình hàm Định nghĩa Ví dụ 1: xây dựng hàm tìm max của hai số thực -Xây dựng hàm tính max của ba số thực -Xây dựng hàm tính max của n số thực Giải quyết: •Nạp chồng hàm max Vấn đề được giải quyết, nhưng phải viết n hàm Object Oriented Programing– Information Systems Department 3
  • 4. 1. Khuôn hình hàm Ví dụ 2: xây dựng hàm tìm max của hai số bất kỳ Giải quyết: int max(int a, int b){ if(a>b) return a; elsse return b;} float max(float a, float b){ if(a>b) return a; elsse return b;} Object Oriented Programing– Information Systems Department 4
  • 5. 1. Khuôn hình hàm Khái niệm Là mẫu của hàm có tham số là kiểu của đối số Với mỗi giá trị hợp lệ của đối số sẽ phát sinh một hàm cụ thể gọi là hàm thể hiện Khai báo: template <class T1, class T2....> <kiểu giá trị trả về> <tên khuôn hình hàm>([ds tham số]) { //thân khuôn hình hàm } Object Oriented Programing– Information Systems Department 5
  • 6. 1. Khuôn hình hàm Ví dụ1 : template <class T> T max(T a, T b){ if(a>b) return a ; else return b;} Ví dụ 2: xây dựng khuôn hình tính tổng 3 số bất kỳ template <class T1, class T2, class T3> T1 tong(T1 x, T2 y, T3 z) { return x+y+z ; } Object Oriented Programing– Information Systems Department 6
  • 7. 1. Khuôn hình hàm Gọi hàm từ khuôn hình hàm <tên hàm>(đối số) Tên hàm trùng tên khuôn hình hàm Ví dụ: int a,b ; float x,y ; max(a,b) ; Object Oriented Programing– Information Systems Department 7
  • 8. 1. Khuôn hình hàm Với khuôn hình hàm max: int a,b; max(a,b) Khi đó chương trình dịch sẽ xác định: -Kiểu của a,b là int nên kiểu của T cũng sẽ là int -Phát sinh một hàm cụ thể từ khuôn hình hàm max -Hàm max lúc này sẽ như sau: int max(int a, int b) { if(a>b) return a ; else return b; } Object Oriented Programing– Information Systems Department 8
  • 9. 2. Khuôn hình lớp Ví dụ: xây dựng lớp MT1 với: •Số phần tử •Mảng các phần tử kiểu: int, char, float, long ... •Các phương thức: nhập, in, cộng, trừ Nhận xét: -Với mỗi kiểu dữ liệu của mảng sẽ có 1 lớp -Các lớp này có chung các thao tác -Chỉ kiểu dữ liệu của mảng là khác  C++ cho phép xây dựng một mẫu của lớp, mẫu này có tham số để ứng với mỗi giá trị của tham số sẽ phát sinh một lớp Object Oriented Programing– Information Systems Department 9
  • 10. 2. Khuôn hình lớp Khái niệm •Là một mẫu của lớp có các tham số là các kiểu dữ liệu (tham số kiểu) •Với mỗi giá trị của tham số kiểu sẽ phát sinh ra một thể hiện là một lớp cụ thể (lớp khuôn hình) Khai báo: template <class T1, class T2...> class <tên khuôn hình lớp> { <khai báo các thành phần> }; Object Oriented Programing– Information Systems Department 10
  • 11. 2. Khuôn hình lớp Ví dụ: template <class T> class MT1{ int spt; T d[10]; public: void nhap(); void in(); …} Object Oriented Programing– Information Systems Department 11
  • 12. 2. Khuôn hình lớp Định nghĩa phương thức -Định nghĩa bên trong khai báo của khuôn hình như hàm thông thừơng - Định nghĩa bên ngoài khai báo Ví dụ: template <class T> void MT<T>::nhap() { … } Object Oriented Programing– Information Systems Department 12
  • 13. 2. Khuôn hình lớp Sử dụng khuôn hình lớp - Mỗi giá trị của tham số kiểu, chương trình dịch sẽ phát sinh ra một lớp cụ thể Cú pháp: <tên khuôn hình><kiểu> Khai báo đối tựơng: <tên khuôn hình><kiểu> <tên biến> Ví dụ: MT<int> a; MT<float> b; MT<long> c; Object Oriented Programing– Information Systems Department 13