1. Trang chủ
  2. » Thể loại khác

...- Dong goi va truu tuong hoa du lieu.pdf

12 151 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 12
Dung lượng 505,26 KB

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

Nội dung

Đóng gói và che giấu thông tin 2 Department of Software Engineering Mục tiêu bài họ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

Trang 1

LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

VỚI JAVA

Nguyễn Thị Thu Trang

trangntt-fit@mail.hut.edu.vn

KHOA CÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Chương 04 Đóng gói và che giấu thông tin

2

Department of Software Engineering

Mục tiêu bài họ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

Nội dung

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

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

3 Khai báo lớp

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

5 Chồng phương thức

6 Gói (package)

Trang 2

Department of Software Engineering

1 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

đó bằng một mô hình đối tượng tổng quát lý tưởng

ÆGiúp giảm bớt sự phức tạp của bài toán

Mô-đun hóa phần mềm, hay sự phân cấp của hệ

thống phần mềm (quan điểm chia để trị)

ÆBài toán trở nên rõ ràng, dễ lưu trữ và dễ thực hiện

5

Department of Software Engineering

1 Trừu tượng hóa dữ liệu (2)

Trừu tượng hóa là

Trừu tượng hóa cho phép

Ví dụ: Trừu tượng hóa các sinh viên cụ thể trong

lớp học thành một lớp SinhVien

Nội dung

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

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

3 Khai báo lớp

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

5 Chồng phương thức

6 Gói (package)

Trang 3

Department of Software Engineering

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

(Encapsulation and Data hiding)

Encapsulation:

Data hiding:

8

Department of Software Engineering

Nội dung

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

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

3 Khai báo lớp

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

5 Chồng phương thức

6 Gói (package)

3 Lớp Đóng gói

„ Thuộc tính và phương thức gọi là

Các lớp được nhóm lại thành package

„ Một package bao gồm một tập hợp các lớp có quan

hệ logic với nhau

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

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

để tạo ra các đối tượng hay các thể hiện của

lớp

Trang 4

Department of Software Engineering

Khai báo lớp:

„ Định danh trong khai báo lớp xác định tên của lớp

„ Cú pháp khai báo:

„ chi_dinh_truy_cap:

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

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

: Chỉ có thể truy cập trong phạm vi lớp đó

: Lớp có thể được truy cập từ bên

trong package chứa lớp đó

3 Lớp (2)

11

Department of Software Engineering

3 Lớp (3)

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

„Cú pháp:

„Ví dụ:

public class HelloWorld {

}

Nội dung

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

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

3 Khai báo lớp

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

5 Chồng phương thức

6 Gói (package)

Trang 5

Department of Software Engineering

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

Bao gồm: Thuộc tính và phương 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

chứa các phương thức của lớp, của và có thể

truy cập thông qua

„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ó:

14

Department of Software Engineering

4 Các thành viên của lớp (2)

Khác gói

Cùng gói

Cùng lớp

private

Không có

public

4 Các thành viên của lớp (3)

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[])

{

System.out.println(“Hello World!");

System.out.println(“Gia tri nguyen: ”+iValue);

System.out.println(“Gia tri thuc: ”+fValue);

}

}

Trang 6

Department of Software Engineering

4 Các thành phần của lớp (4)

17

Department of Software Engineering

4.1 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

a Thông điệp (message):

4.2 Phương thức (method)

Trang 7

Department of Software Engineering

b Phương thức (method):

„ Xác định cách một đối tượng đáp ứng lại thông điệp

„ Phương thức xác định các hoạt động của lớp

„

4.2 Phương thức (2)

20

Department of Software Engineering

c 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:

4.2 Phương thức (3)

d 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

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

„ 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.

4.2 Phương thức (4)

Trang 8

Department of Software Engineering

e Phương thức main():

„ Một ứng dụng chỉ có thể thực thi được khi nó có hàm

main()

„ JVM tải một lớp và bắt đầu thực hiện hàm

main(String[] args)

public: phương thức có thể được gọi từ bất cứ đối tượng nào

static: không cần phải tạo ra đối tượng trước

void: không có kết quả trả về

4.2 Phương thức (5)

23

Department of Software Engineering

Các thành viên dữ liệu

„ Chỉ có thể truy nhập từ các phương thức bên trong

lớp

„ 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

4.3 Cơ chế che giấu thông tin

Nội dung

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

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

3 Khai báo lớp

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

5 Chồng phương thức

6 Gói (package)

Trang 9

Department of Software Engineering

Nhắc lại về phương thức:

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

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

Tên phương thức

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

5 Chồng phương thức

(Method Overloading)

26

Department of Software Engineering

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):

„

„

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 số cho phù hợp

5 Chồng phương thức (2)

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,và một

không có tham số

„

5 Chồng phương thức (3)

Trang 10

Department of Software Engineering

5 Chồng phương thức (4)

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”);

29

Department of Software Engineering

Nội dung

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

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

3 Khai báo lớp

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

5 Chồng phương thức

6 Gói (package)

Các lớp có thể nhóm lại với nhau thành gói (package)

Gói được coi như các thư mục, là nơi tổ chức các lớp

Theo quy ước, tên của package được viết bằng

6 Gói (package)

Trang 11

Department of Software Engineering

6 Gói (2)

a Lợi ích của package:

„ Giúp tổ chức các lớp vào các đơn vị nhỏ hơn (như là

các thư mục), và làm cho việc xác định vị trí trở nên

dễ dàng và sử dụng các tập tin của lớp một cách phù

hợp

„ Tránh cho

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

32

Department of Software Engineering

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

„ Trong cùng 1 package:

„ Khác package:

„ Ví dụ:

public class HelloNameDialog{

public static void main(String[] args){

String result;

result = javax.swing.JOptionPane showInputDialog

(“Hay nhap ten ban:”);

javax.swing.JOptionPane showMessageDialog(null,

”Xin chao “+ result + “!”);

System.exit(0);

}

}

6 Gói (3)

Lệnh import:

„ Sử dụng lệnh import

„ Ví dụ:

import javax.swing.JOptionPane;

public class HelloNameDialog{

public static void main(String[] args){

String result;

result = JOptionPane showInputDialog

(“Hay nhap ten ban:”);

JOptionPane showMessageDialog(null,

”Xin chao “+ result + “!”);

System.exit(0);

}

}

6 Gói (4)

Trang 12

Department of Software Engineering

•java.applet

•java.awt

•java.beans

•java.io

•java.lang

•java.net

•java.rmi

•java.security

•java.sql

•java.text

•javax.accessibility

•javax.crypto

•javax.imageio

•javax.naming

•javax.net

•javax.print

•javax.rmi

•javax.security

•javax.sound

•javax.sql

•javax.swing

•javax.transaction

•javax.xml

•org.ietf.jgss

•org.omg.CosNaming

•org.omg.Dynamic

•org.omg.IOP

•org.omg.Messaging

•org.omg.PortableInterceptor

•org.omg.PortableServer

•org.omg.stub.java.rmi

•org.w3c.dom

•org.xml

6 Gói (4)

35

Department of Software Engineering

Các Package cơ bản trong Java

„ java.lang

Cung cấp các lớp cơ bản cho thiết kế ngôn ngữ lập trình

Java

Bao gồm wrapper classes, String và StringBuffer, Object,

Import ngầm định vào tất cả các lớp

„ java.util

Bao gồm tập hợp framework, mô hình sự kiện, date time, và

nhiều tiện ích khác

„ java.io

Cung cấp khả năng vào / ra hệ thống với các luồng dữ liệu

và hệ thống file

6 Gói (5)

Các Package cơ bản trong Java

„ java.math

Cung cấp các lớp thực thi các phép toán với số nguyên và

các phép toán thập phân

„ java.sql

Cung cấp các API cho phép truy nhập và xử lý dữ liệu được

lưu trữ trong một nguồn dữ liệu (thường sử dụng cơ sử dữ

liệu quan hệ)

„ java.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.

„ …

6 Gói (5)

Ngày đăng: 05/11/2017, 01:52

TỪ KHÓA LIÊN QUAN

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