1. Trang chủ
  2. » Công Nghệ Thông Tin

lớp và đối tượng

61 343 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 61
Dung lượng 881,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung• Nhắc lại Đối tượng • Khai báo lớp đơn giản • Đối tượng • Phạm vi truy xuất thành phần lớp • Đối tượng this • Phương thức khởi tạo • Phương thức huỷ • Thành phần tĩnh & hằng...

Trang 1

LỚP VÀ ĐỐI TƯỢNG

Trang 2

Mục đích & Yêu cầu

• Nắm vững cấu trúc của một lớp.

• Nắm vững các chỉ thị truy cập.

• Giải thích được constructor và destructor

• Hiểu cách sử dụng phương thức

Trang 3

Nội dung

• Nhắc lại Đối tượng

• Khai báo lớp đơn giản

• Đối tượng

• Phạm vi truy xuất thành phần lớp

• Đối tượng this

• Phương thức khởi tạo

• Phương thức huỷ

• Thành phần tĩnh & hằng

Trang 4

1 Nhắc lại Đối tượng

• Một chương trình là tập hợp các đối tượng

tương tác với nhau

• Các đối tượng kết hợp với nhau để hoàn thành

nhiệm vụ

• Để làm được điều này, chúng giao tiếp với nhau

bằng cách truyền thông điệp

Trang 5

1 Nhắc lại Đối tượng

• Đối tượng có

– Thuộc tính: đặc trưng miêu tả đối tượng

– Hành vi: là những gì đối tượng có thể làm.

• Thuộc tính có thể là:

– attributes: miêu tả đối tượng.

– components: những thành phần của đối tượng – associations: những điều mà đối tượng biết nhưng không là thành phần của nó.

• Hành vi có thể là:

– Constructors: thiết lập đối tượng.

– commands: thay đổi thuộc tính đối tượng.

– queries: cung cấp những câu trả lời dựa trên thuộc tính đối tượng.

Trang 6

1 Nhắc lại Đối tượng

Ví dụ: Thùng rác

– Attributes: màu, chất liệu, mùi.

– Components: nắp, thùng, bịch rác

– Associations: phòng mà nó được đặt trong đó

– Constructor: tạo thùng

– commands: nhận rác, đổ hết rác.

– queries: trả lời nắp mở hay đóng, thùng rỗng hay đầy.

Trang 7

1 Nhắc lại Đối tượng

Trang 8

1 Nhắc lại Đối tượng

• Đối tượng: chữ, bản điều khiển.

Trang 9

1 Nhắc lại Đối tượng

Trang 10

1 Nhắc lại Đối tượng

• Lớp là hiện thực chung cho tập các đối tượng có cùng

đặc điểm và hành vi.

• Cài đặt các khả năng lớp là phương thức.

• Cài đặt các thuộc tính là biến.

Lớp Chữ

Trang 11

2 Khai báo lớp đơn giản

Trang 12

2 Khai báo lớp đơn giản

• Khai báo phương thức:

Kiểu tênPhươngThức(ds Tham số)

{

Các lệnh của phương thức;

return kếtQuả;

}

Trang 13

2 Khai báo lớp đơn giản

Trang 15

3 Đối tượng

• Tham chiếu:

– Để thao tác với đối tượng cần có tên,

gọi là tham chiếu

– Khai báo tham chiếu:

Heap

Trang 16

3 Đối tượng

• Ví dụ: Cấp phát và tham chiếu tới đối tượng

PhanSo phanSo = new PhanSo();

Trang 17

3 Đối tượng

• Thao tác với đối tượng qua tham chiếu:

– Thao tác với thuộc tính:

Trang 18

4 Phạm vi truy xuất các thành phần của lớp

• Khai báo các thành phần với phạm vi truy xuất:

<Phạm vi> <Khai báo thành phần>

– <Phạm vi> gồm:

•public: dùng chung tại mọi vị trí.

•private: chỉ được truy xuất trong phạm vi của

lớp.

Trang 19

4 Phạm vi truy xuất các thành phần của lớp

• Thông thường các thuộc tính được quy định

phạm vi truy xuất là private

• Để truy xuất được các thuộc tính từ bên ngoài

lớp, ta cung cấp các phương thức lấy giá trị và gán giá trị cho thuộc tính

Trang 20

4 Phạm vi truy xuất các thành phần của lớp

Trang 21

4 Phạm vi truy xuất các thành phần của lớp

Trang 22

4 Phạm vi truy xuất các thành phần của lớp

• Xuất hiện lỗi !

Trang 23

4 Phạm vi truy xuất các thành phần của lớp

• Hiệu chỉnh.

Trang 24

4 Phạm vi truy xuất các thành phần của lớp

Trang 25

5 Đối tượng this

• Là đối tượng ngầm định khi viết mã lệnh các phương thức của một lớp

• Ví dụ: trong lớp PhanSo

class PhanSo {

private int tu, mau;

public void setTu(int tu){ this.tu = tu; }

}

Trang 26

5 Đối tượng this

• Khi thực hiện:

PhanSo phanSo = new PhanSo();

phanSo.setTu(5);

thì this chính là phân số p

Trang 27

6 Phương thức khởi tạo

• PTKT (constructor) là phương thức đặc biệt

dùng để khởi tạo giá trị các thuộc tính của đối tượng khi mới được tạo ra

• Phương thức khởi tạo ngầm định: khi không

khai báo phương thức khởi tạo Chẳng hạn:

PhanSo p = new PhanSo(); Khi đó p=?

Trang 28

6 Phương thức khởi tạo

• Khai báo PTKT: tên PTKT trùng tên lớp.

public TênLớp(ds tham số) {…}

• Ví dụ: khai báo một số phương thức khởi tạo

cho lớp PhanSo

Trang 29

7 Phương thức khởi tạo {3}

Trang 30

7 Phương thức khởi tạo

• Sử dụng phương thức khởi tạo:

Trang 31

7 Phương thức khởi tạo

• Kết quả

Trang 32

phạm vi của đối tượng

Trang 33

7 Phương thức hủy

• Một số ngôn ngữ OOP ( C++, C#) cho phép ta viết code sẽ

được thực thi vào lúc đối tượng chết nhằm trả tài nguyên đã cấp phát động.

• Java chỉ dùng cách cấp phát đối tượng động, có trình gom

rác riêng và không hỗ trợ hành vi hủy.

Trang 34

8 Thành phần tĩnh

• Là những thành phần dùng chung cho mọi đối

tượng được tạo ra từ một lớp

• Khai báo thuộc tính tĩnh

<phạm vi> static <kiểu dữ liệu> <tên thuộc tính>

• Khai báo phương thức tĩnh

<phạm vi> static <kiểu dữ liệu> <tên phương

thức>(<danh sách tham số>)

Trang 36

8 Thành phần tĩnh

• Thành phần tĩnh có thể thao tác qua tên lớp

Chẳng hạn với ví dụ trên có thể thực hiện:

A.y = 5;

• Trong phương thức tĩnh ta chỉ được phép dùng

các phương thức tĩnh hoặc dữ liệu tĩnh

Trang 37

8 Thành phần tĩnh

• Ví dụ:

Trang 38

8 Thành phần tĩnh

Trang 39

8 Thành phần tĩnh

Trang 40

8 Thành phần tĩnh

Trang 42

9 Thành phần hằng

Trang 43

9 Thành phần hằng

Trang 44

10 Nạp chồng phương thức

• Overloading: Kỹ thuật cho phép xây dựng các phương

thức trùng tên nhưng khai báo tham số khác nhau trong cùng một lớp.

• Các phương thức nạp chồng này phân biệt với nhau

thông qua kiểu tham số hoặc số lượng.

Trang 45

10 Nạp chồng phương thức

Trang 46

10 Nạp chồng phương thức

Trang 47

11 Truyền tham số trong các

phương thức

• Việc truyền tham số trong các phương thức của Java được quy

định như sau:

– Nếu tham số là các dữ liệu nguyên thủy như:

int, boolean, char, float, … thì tham số được truyền theo trị

Trang 48

11 Truyền tham số trong các

phương thức

– Ví dụ: xét hàm đổi giá trị của hai biến nguyên

như sau

Trang 49

11 Truyền tham số trong các

phương thức

• Kết quả giá trị không đổi.

Trang 50

11 Truyền tham số trong các

phương thức

• Việc truyền các đối tượng thực chất là truyền tham chiếu của các

đối tượng.

Trang 51

11 Truyền tham số trong các

phương thức

Ví dụ:

Trang 52

11 Truyền tham số trong các

phương thức

Ví dụ:

Trang 53

11 Truyền tham số trong các

phương thức

Ví dụ:

Trang 54

12 Bài tập

• Bài 1: Cài đặt lớp NTN (ngày/tháng/năm).

– Viết chương trình sử dụng lớp vừa định nghĩa:

• Tạo 2 đối tượng n1=1/1/2006, n2=10/9/2007.

• Tính khoảng cách giữa hai ngày.

• So sánh hai ngày

Trang 55

-int songay(int th, int na)

- NTN cong1ngay()

- NTN tru1ngay()

+ NTN cong(int n) + NTN tru(int n) + int tru(NTN ng) + String toString() + void HienThi() + int SoSanh(NTN ntn)

Trang 56

13 Tổ chức các lớp trong

chương trình

• Khi biên dịch:

javac thuvien.java

• Sẽ tạo ra các file: Lop1.class, Lop2.class, …

• Tuy nhiên ta không thực hiện được các lớp này vì không có hàm

main.

• Trong một chương trình java có nhiều lớp, ngầm định lớp trùng tên

với tên file là lớp chính

• Nếu nhiều lớp cùng khai báo hàm main thì khi thực hiện chỉ thi hành

các lệnh của hàm main thuộc lớp chính.

Trang 57

12 Tổ chức các lớp trong

chương trình

• Trong một chương trình Java có thể khai báo

nhiều lớp

• Ta có thể khai báo các lớp dùng chung trong một

file chương trình java:

// thuvien.java

class Lop1{

… } class Lop2{

… }

Trang 58

14 Bài tập

• Bài 2: Khai báo lớp ma trận số nguyên sao cho có thể

khởi tạo, gán giá trị, truy xuất đến từng phần tử, cộng, trừ, nhân các ma trận

• Dùng lớp này để minh họa các thao tác:

Trang 59

+ int laySoDong() + int laySoCot() + int layGiaTri(int d, int c) + void ganGiaTri(int d, int c, int gt) + MATRAN cong(MATRAN m)

+ MATRAN tru(MATRAN m)

Trang 60

Tìm chỗ sai trong chương trình

class ABC

{ private int x;

public int y;

public static int z;

public ABC(int a){x=a;}

private ABC(int a, int b, int

ABC o2 = new ABC(3);

ABC o3 = new ABC(o2); o2.x=5; o2.y=7; o2.z=9;

Trang 61

– Kiểm tra 1 số là số chẵn hay lẻ.

– Tìm số lớn trong 2 số nguyên, 2 số thực, 3 số nguyên.

– Tìm số lớn trong mảng.

– Sắp xếp mảng.

Ngày đăng: 24/10/2014, 00:31

HÌNH ẢNH LIÊN QUAN

Sơ đồ lớp MATRAN - lớp và đối tượng
Sơ đồ l ớp MATRAN (Trang 59)

TỪ KHÓA LIÊN QUAN