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

05 Dong goi va truu tuong hoa du lieu docx

49 403 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 49
Dung lượng 917 KB

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

Nội dung

Mục tiêu Kết thúc bài học bạn có thể nắm được:  Nêu được bản chất, vai trò của trừu tượng hóa dữ liệu  Giải thích về đóng gói và che giấu thông tin Encapsulation & Inf

Trang 1

LẬP TRÌNH JAVA

Bài 5 : Đóng gói và trừu tượng

hóa dữ liệu

Trang 2

Mục tiêu

 Kết thúc bài học bạn có thể nắm được:

 Nêu được bản chất, vai trò của trừu tượng hóa dữ liệu

 Giải thích về đóng gói và che giấu thông tin

(Encapsulation & Information Hiding)

 Thực thi trong Java

 Khai báo một lớp trong Java

 Tạo các phương thức, các trường/thuộc tính

 Package trong Java

Trang 3

Nội dung

 5.1 Trừu trượng hóa dữ liệu

 5.2 Đóng gói và che giấu thông tin

 5.3 Khai báo lớp

 5.4 Các thành viên của lớp

 5.6 Gói (package)

Trang 4

5.1- Trừu tượng hóa dữ liệu

 Trừu tượng hóa dữ liệu (Data abstraction)

 Khi không thể nắm bắt toàn bộ đối tượng

phức tạp

 Bỏ qua những chi tiết không cần thiết, thay

vào đó là một mô hình đối tượng tổng quát

 Lớp (Class) thay vì các đối tượng cụ thể, nhiều thông tin

Trang 5

5.1- Trừu tượng hóa dữ liệu

 Trừu tượng hóa dữ liệu (Data abstraction)

 Một cách nhìn hoặc cách biểu diễn một thực thể chỉ bao gồm các thuộc tính liên quan

Trang 6

Nội dung

 5.1 Trừu trượng hóa dữ liệu

 5.2 Đóng gói và che giấu thông tin

 5.3 Khai báo lớp

 5.4 Các thành viên của lớp

 5.6 Gói (package)

Trang 7

5.2- Đóng gói & che giấu tt

 Đóng gói và che giấu thông tin

 Dữ liệu/Thuộc tính và hành vi/Phương thức

được đóng gói trong một lớp  Encapsulation

 Dữ liệu được che giấu ở bên trong lớp và chỉ được truy cập và thay đổi ở các phương thức bên ngoài  Data hiding

Trang 8

Nội dung

 5.1 Trừu trượng hóa dữ liệu

 5.2 Đóng gói và che giấu thông tin

 5.3 Khai báo lớp

 5.4 Các thành viên của lớp

 5.6 Gói (package)

Trang 9

 Ví dụ: javax.swing, java.util…

 Lớp giống như một bản thiết kế; được sử

Trang 10

public: Lớp có thể được truy cập từ bất cứ

đâu, kể cả bên ngoài package chứa lớp đó.

private: Chỉ có thể được truy cập trong phạm

vi lớp đó Không có (mặc định): Lớp có thể được truy

Trang 12

5.3- Khai báo lớp

 Khai báo lớp thuộc gói (Package)

 Lớp có thể khai báo thuộc 1 package nào đó

Trang 13

Nội dung

 5.1 Trừu trượng hóa dữ liệu

 5.2 Đóng gói và che giấu thông tin

 5.3 Khai báo lớp

 5.4 Các thành viên của lớp

 5.6 Gói (package)

Trang 14

5.4- Các thành viên của lớp

thức  Phạm vi của lớp (giữa 2 dấu { }):

 Bên trong phạm vi lớp, các thành viên của lớp có thể truy cập thông qua tên gọi.

 Bên ngoài phạm vi của lớp, có 2 chỉ

định truy cập tới các thành viên của lớp

gồm có: public và private  Tương

tự như lớp.

Trang 15

5.4- Các thành viên của lớp

Trang 16

5.4- Các thành viên của lớp

 Ví dụ:

public class HelloWorld1 {

// Cac thuoc tinh

private int iValue = 12;

float fValue = 3.45f; //package

// Phuong thuc main

public static void main(String args[])

Trang 17

5.4- Các thành viên của lớp

 Thuộc tính (Field/Attribute)

 Các đối tượng giữ lại trạng thái trong các

thuộc tính (attributes) hay các trường (fields)

 Các thuộc tính được định nghĩa trong lớp.

 Mỗi đối tượng có bản sao các thuộc tính của riêng nó.

 Thuộc tính có thể được khởi tạo khi khai báo

 Các giá trị mặc định sẽ được sử dụng nếu không được khởi tạo.

Trang 19

5.4- Các thành viên của lớp

 Phương thức (method)

 Cấu trúc của phương thức:

 parameter profile gồm kiểu, thứ tự, và số tham số của một phương thức

 method signature (header) gồm tên phương thức và

Trang 20

5.4- Các thành viên của lớp

 Phương thức (method)

 Chữ ký của phương thức (signature)

 Mỗi phương thức phải có một chữ ký riêng

Chữ ký của phương thức bao gồm:

 Tên phương thức

 Số lượng các tham số và kiểu của chúng

Trang 21

5.4- Các thành viên của lớp

 Phương thức (method)

 Kiểu dữ liệu trả về:

 Khi phương thức trả về ít nhất một giá trị hoặc

một đối tượng thì bắt buộc phải có câu lệnh

return để trả điều khiển cho đối tượng gọi

phương thức.

 Nếu phương thức không trả về 1 giá trị nào thì

kiểu trả về là void và có thể không cần câu lệnh

return

Có thể có nhiều lệnh return trong một phương

thức; câu lệnh đầu tiên mà chương trình gặp sẽ được thực thi.

Trang 22

else result = num2;

return result;

}

pass i

pass j

Trang 24

5.4- Các thành viên của lớp

 Phương thức (method)

 Câu lệnh trả về giá trị bắt buộc phải có đối với một phương thức non-void

 Phương thức sau đúng về logic, nhưng có lỗi biên dịch

vì trình biên dịch Java nghĩ rằng phương thức này không trả về bất kỳ giá trị nào.

public static int xMethod(int n) {

Trang 25

5.4- Các thành viên của lớp

 Phương thức (method)

 Đôi khi có thể có nhiều hơn một đáp

ứng khi gọi một phương thức, nhưng

trình biên dịch không thể xác định được đáp ứng thích hợp nhất Điều này được

gọi là "Gọi mập mờ" (ambiguous

invocation) - đây là một lỗi biên dịch

Trang 26

5.4- Các thành viên của lớp

 Phương thức (method)

public class AmbiguousOverloading {

public static void main(String[] args) {

Trang 27

 Có thể khai báo một biến cục bộ trùng tên

nhiều lần trong các khối riêng rẽ không lồng

Trang 28

5.4- Các thành viên của lớp

 Phương thức (method)

// Fine with no errors

public static void correctMethod() {

Trang 31

 Chỉ định truy cập là private để bảo vệ dữ liệu

 Các đối tượng khác muốn truy nhập vào dữ liệu riêng tư này phải thông qua các phương thức public (accessor – get và mutator - set):

Trang 32

Nội dung

 5.1 Trừu trượng hóa dữ liệu

 5.2 Đóng gói và che giấu thông tin

 5.3 Khai báo lớp

 5.4 Các thành viên của lớp

 5.6 Gói (package)

Trang 33

5.5- Chồng phương thức

 Các phương thức có thể trùng tên nhưng các chữ ký thì phải khác nhau  Chồng

phương thức (Method Overloading):

 Số lượng tham số khác nhau

 Nếu cùng số lượng tham số thì kiểu dữ liệu

các tham số phải khác nhau

 Thuận tiện cho lập trình vì không cần

phải nhớ quá nhiều tên phương thức mà chỉ cần nhớ một tên và lựa chọn các tham

Trang 34

5.5- Chồng phương thức

 Ví dụ 1:

Phương thức println() trong

System.out.println() có 10 khai báo với

các tham số khác nhau: boolean, char[], char, double, float, int, long, Object, String,

một không có tham số

 Không cần sử dụng các tên khác nhau (chẳng hạn "printString“ hoặc "printDouble“) cho mỗi kiểu dữ liệu muốn in ra

Trang 35

5.5- Chồng phương thức

 Ví dụ 2:

class MyDate {

public boolean setMonth(int m) { …}

public boolean setMonth(String s) { …} }

MyDate d = new MyDate();

d.setMonth(9);

d.setMonth(”September”);

Trang 36

Nội dung

 5.1 Trừu trượng hóa dữ liệu

 5.2 Đóng gói và che giấu thông tin

 5.3 Khai báo lớp

 5.4 Các thành viên của lớp

 5.6 Gói (package)

Trang 38

5.6- Gói (Package)

 Lợi ích của package:

 Giúp tổ chức các lớp vào các đơn vị (như là các thư mục) giúp xác định vị trí trở nên dễ dàng và sử dụng các lớp một cách phù hợp

 Tránh cho việc đặt tên lớp bị xung đột (trùng tên)

 Bảo vệ các lớp, dữ liệu và phương thức ở mức rộng hơn so với mối quan hệ giữa các lớp

 Các tên của gói có thể được sử dụng để nhận dạng các lớp

 Các gói cũng có thể chứa các gói khác

Trang 39

5.6- Gói (Package)

 Tham chiếu giữa các lớp:

 Trong cùng 1 package: Sử dụng tên lớp

 Khác package: Phải cung cấp tên đầy đủ cho các lớp được định nghĩa trong package khác

Lệnh import:

Sử dụng lệnh import để khai báo các package

hoặc các lớp để khi sử dụng không cần nêu

tên đầy đủ

Trang 41

javax.swing

 Cung cấp các lớp và giao diện cho phép tạo ra các ứng dụng đồ họa.

Trang 46

x được làm tròn xuống giá trị nguyên gần nhất Giá trị

nguyên này được trả về như một giá trị thực.

Ngày đăng: 28/07/2014, 04:20

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w