Dùng lệnh ‘-printcert’ in chứng nhận được lưu trữ trong file, theo cách sau: keytool –printcert –file myfile.. Dùng lệnh ‘-help’ nhận về danh sách tất cả các lệnh keytool hổ trợ: keyto[r]
(1)Chương
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Mục tiêu
Kết thúc chương, học viên có thể:
Định nghĩa Lập trình hướng Đối tượng (Object-oriented Programming) Nhận thức Trừu tượng hóa Dữ liệu (Data Abstraction)
Định nghĩa Lớp (Class)
Định nghĩa Đối tượng (Object)
Nhận thức khác biệt Lớp Đối tượng
Nhận thức cần thiết Thiết lập (Construction) Hủy (Destruction) Định nghĩa tính Bền vững (Persistence)
Hiểu biết tính Thừa kế (Inheritance) Định nghĩa tính Đa hình (Polymorphism)
Liệt kê thuận lợi phương pháp hướng Đối tượng
1.1 Giới thiệu Lập trình hướng Đối tượng (Object-oriented Programming)
Lập trình hướng Đối tượng (OOP) phương pháp thiết kế phát triển phần mềm Những ngôn ngữ OOP khơng bao gồm cú pháp trình biên dịch (compiler) mà cịn có mơi trường phát triển tồn diện Mơi trường bao gồm thư viện thiết kế tốt, thuận lợi cho việc sử dụng đối tượng
Đối với ngôn ngữ lập trình hỗ trợ OOP việc triển khai kỹ thuật lập trình hướng đối tượng dễ dàng Kỹ thuật lập trình hướng đối tượng cải tiến việc phát triển hệ
thống phần mềm Kỹ thuật đề cao nhân tố chức (fucntionality) mối quan hệ liệu
OOP phương thức tư để giải vấn đề máy tính Để đạt kết quả, lập trình viên phải nắn vấn đề thành thực thể quen thuộc với máy tính Cách tiếp cận hướng đối tượng cung cấp giải pháp toàn vẹn để giải vấn đề
Hãy xem xét tình cần triển khai thành hệ thống máy vi tính: việc mua bán xe Vấn đề vi tính hóa việc mua bán xe bao gồm gì?
Những yếu tố rõ ràng liên quan đến việc mua bán xe là: 1) Các kiểu xe (model)
2) Nhân viên bán hàng 3) Khách hàng
Những hoạt động liên quan đến việc mua bán:
1) Nhân viên bán hàng đưa khách hàng tham quan phòng trưng bày 2) Khách hàng chọn lựa xe
(2)4) Khách hàng trả tiền
5) Chiếc xe trao cho khách hàng
Mỗi vấn đề chia thành nhiều yếu tố, gọi Đối tượng (Objects) Thực thể (Entities) Chẳng hạn ví dụ trên, khách hàng, xe nhân viên bán hàng đối tượng thực thể
Lập trình viên ln ln cố gắng tạo kịch (scenarios) thật quen thuộc với tình đời sống thực Bước thứ đường hướng làm cho máy tính liên kết với đối tượng giới thực
Tuy nhiên, máy tính cỗ máy Nó thực cơng việc lập trình mà thơi Vì thế, trách nhiệm lập trình viên cung cấp cho máy tính thơng tin theo cách thức mà nhận thức thực thể nhận thức
Đó lãnh vực kỹ thuật hướng đối tượng Chúng ta sử dụng kỹ thuật hướng đối tượng để ánh xạ thực thể gặp phải đời sống thực thành thực thể tương tự máy tính
Phát triển phần mềm theo kỹ thuật lập trình hướng đối tượng có khả giảm thiểu
lẫn lộn thường xảy hệ thống lãnh vực ứng dụng
Lập trình hướng đối tượng đề cập đến liệu thủ tục xử lý liệu theo quan điểm đối tượng Lập trình hướng đối tượng xem xét liệu thực thể
hay đơn vị độc lập, với chất riêng đặc tính thực thể Bây
chúng ta khảo sát hạn từ ‘đối tượng’ (object), ‘dữ liệu’ (data) ‘phương thức’ (method)
Có nhiều loại đối tượng khác Chúng ta xem phận khác quan đối tượng Điển hình quan có phận liên quan đến việc quản trị, đến việc kinh doanh, đến việc kế toán, đến việc tiếp thị … Mỗi phận có nhân riêng, nhân trao cho trách nhiệm rõ ràng Mỗi phận có liệu riêng chẳng hạn thông tin cá nhân, bảng kiểm kê, thể thức kinh doanh, liệu liên quan đến chức phận Rõ ràng quan chia thành nhiều phận việc quản trị nhân hoạt động doanh nghiệp dễ dàng Nhân quan điều khiển xử lý liệu liên quan đến phận
Chẳng hạn phận kế toán chịu trách nhiệm lương bổng quan Nếu người đơn vị tiếp thị cần chi tiết liên quan đến lương bổng đơn vị mình, người
ấy cần liên hệ với phận kế tốn Một người có thẩm quyền phận kế tốn
cung cấp thơng tin cần biết, thơng tin chia sẻ Một người khơng có thẩm quyền từ phận khác khơng thể truy cập liệu, thay đổi làm hư hỏng liệu Ví dụ minh chứng đối tượng hữu dụng việc phân cấp tổ chức liệu
(3)Hình 1.1
Khái niệm đối tượng mở rộng đến hầu hết lãnh vực đời sống, nữa, đến giới lập trình Bất kỳ ứng dụng định nghĩa theo hạn từ thực thể đối tượng để tạo tiến trình xử lý mơ theo tiến trình xử lý mà người nghĩ
Phương pháp giải ‘top-down’ (từ xuống) cịn gọi ‘lập trình hướng cấu trúc’ (structured programming) Nó xác định chức chương trình chức phân thành đơn vị nhỏ mức độ thấp Bằng kỹ thuật này, chương trình cấu trúc theo hệ thống phân cấp module Mỗi module có đầu vào riêng đầu riêng Trong module, điều khiển có chiều hướng xuống theo cấu trúc khơng có chiều hướng lên
Phương pháp OOP cố gắng quản lý việc thừa kế phức tạp vấn đề đời thực
Để làm việc này, phương thức OOP che giấu vài thông tin bên đối tượng OOP tập trung trước hết liệu Rồi gắn kết phương thức thao tác
liệu, việc xem phần thừa kế việc định nghĩa liệu Bảng 1.1 minh họa khác biệt hai phương pháp:
Phương pháp Top-Down OOP
Chúng ta xây dựng khách
sạn Chúng ta stầng với nhẽữ xây dng dãy phịng trung bình, ựng tịa nhà 10 sang trọng, phòng họp lớn
Chúng ta thiết kế tầng lầu,
các phòng phòng họp nhChúng ta sững thành phẽ xây dần ựng khách sạn với Bảng 1.1 Một ví dụ hai phương pháp giải OOP Structured 1.2 Trừu tượng hóa liệu (Data Abstraction)
Khi lập trình viên phải phát triển chương trình ứng dụng khơng có nghĩa người viết mã cho ứng dụng Trước hết, người phải nghiên cứu ứng dụng xác định thành phần tạo nên ứng dụng Kế tiếp, người phải xác định thông tin cần thiết thành phần
Hãy khảo sát chương trình ứng dụng cho việc mua bán xe nói Chương trình phải xuất hóa đơn cho xe bán cho khách hàng Để xuất hóa đơn, cần thơng tin chi tiết khách hàng Vậy bước thứ xác định đặc tính khách hàng
Phịng Nhân
sự Phịng Kế tốn
(4)Một vài đặc tính gắn kết với khách hàng là: Tên
Địa Tuổi Chiều cao Màu tóc
Từ danh sách kể trên, xác định đặc tính thiết yếu ứng dụng Bởi đề cập đến khách hàng mua xe, chi tiết thiết yếu là:
Tên Địa
Còn chi tiết khác (chiều cao, màu tóc …) không quan trọng ứng dụng Tuy nhiên, phát triển ứng dụng hỗ trợ cho việc điều tra tội phạm thơng tin chẳng hạn màu tóc thiết yếu
Bên cạnh chi tiết khách hàng, thông tin sau cần thiết: Kiểu xe bán
Nhân viên bán xe
Bên cạnh đặc tính khách hàng, xe nhân viên bán hàng, cần liệt kê hành động thực
Cơng việc xuất hóa đơn địi hỏi hành động sau: Nhập tên khách hàng
Nhập địa khách hàng Nhập kiểu xe
Nhập tên nhân viên bán xe Xuất hóa đơn với định dạng địi hỏi
Khung thông tin bên cho thấy thuộc tính hành động liên quan đến hóa đơn:
Các thuộc tính Tên khách hàng
Địa khách hàng Kiểu xe bán
Nhân viên bán xe Các hành động Nhập tên
Nhập địa
(5)Nhập tên nhân viên bán xe
Xuất hóa đơn Định nghĩa
Sự trừu tượng hóa liệu là tiến trình xác định nhóm thuộc tính hành
động liên quan đến thực thể đặc thù, xét mối tương quan với ứng dụng phát triển
Tiếp theo, muốn ứng dụng tính tốn tiền hoa hồng cho nhân viên bán hàng Những thuộc tính liên kết với nhân viên bán hàng có tương quan với ứng dụng là:
Tên
Số lượng xe bán Tiền hoa hồng
Những hành động đòi buộc công việc là: Nhập tên nhân viên bán xe
Nhập số lượng xe bán Tính tiền hoa hồng kiếm
Những thuộc tính Tên
Số lượng xe bán Tiền hoa hồng
Những hành động Nhập tên
Nhập số lượng xe bán Tính tiền hoa hồng
Như thế, việc trừu tượng hóa liệu tra đặt câu hỏi ‘Đâu thuộc tính hành động cần thiết cho vấn đề đặt ra?’
1.2.1 Những thuận lợi việc Trừu tượng hóa Những thuận lợi việc Trừu tượng hóa là:
Tập trung vào vấn đề
Xác định đặc tính thiết yếu hành động đòi hỏi
Giảm thiểu chi tiết không cần thiết
(6)Enter keystore password (Nhập vào mật khẩu keystore)
Kết xuất hiển thị hai tuỳ chọn –Owner Issuer Nó hiển thị tên công ty, nghề nghiệp, tổ chức, địa điểm, bang tiền tệ Nó hiển thị số serial thời gian có giá trị Cuối cùng, hỏi có chứng nhận uỷ thác khơng Chứng nhận chấp thuận cho uỷ thác riêng bạn
Dùng lệnh ‘-list’ liệt kê nội dung keystore sau: keystool –list –keystore Store
Câu lệnh yêu yều password keystore
Dùng tuỳ chọn ‘-alias’ liệt kê mục Dùng lệnh -delete để xố bí danh keystore, sau:
keytool –delete –keystore Store –alias alias
Dùng lệnh ‘-printcert’ in chứng nhận lưu trữ file, theo cách sau: keytool –printcert –file myfile
Dùng lệnh ‘-help’ nhận danh sách tất lệnh keytool hổ trợ: keytool -help
10.6 Các gói bảo mật java (JAVA Security packages)
Các gói bảo mật Java bao gồm:
java.security
Đây gói API nhân bảo mật (the core security API package) Chứa lớp giao diện (interface) hỗ trợ mã hố (encryption), tính bảng tóm lược tài liệu chữ ký điện tử
java.security.acl
Chứa giao diện dùng cài đặt sách điều kiển truy cập
java.security.cert
Cung cấp hổ trợ cho chứng nhận X.509
java.security.interfaces
Định nghĩa giao diện truy cập thuật toán chữ ký điện tử (the digital signature algorithm)
java.security.spec
Cung cấp lớp độc lập phục thuộc vào thuật toán cho khoá
Tóm tắt:
Nếu khả bảo mật applet không đảm bảo, liệu nhạy cảm sữa đổi phơi bày
(7)Điều cho phép applet nạp vào trình duyệt cách hiệu
Một file kê khai (manifest file) chứa thông tin file lưu trữ
Chữ ký điện tử mã hố kèm với chương trình để nhận diện xác nơi nguồn gốc file
Keystore sở liệu khoá
Keytool cơng cụ khố bảo mật java
chứng nhận điện tử file, đối tượng, thông báo ký danh quyền chứng nhận (certificate authority)
Kiểm tra kiến thức:
1 File file lưu trữ nén
2 Tuỳ chọn _, dùng với cơng cụ jar, trích rút tên file từ lưu trữ (file) JAR tự động tạo file kê khai, chí khơng true/false
4 Thuộc tính ,khi dùng thẻ applet, cho trình duyệt nạp file jar lưu trữ cụ thể, tìm file class nhập vào
5 Trong chữ ký điện tử, _được dùng cho mã hoá _được dùng cho giải mã
6 Tất thông tin keytool quản lý, lưu trữ sở liệu gọi _
7 keytool bước cần nhận chứng nhận true/false
8 Gói _chứa giao diện (interfaces) dùng cài đặt sách điều kiển truy cập
Bài tập:
Tạo câu lệnh java thực hành động sau:
1 Tạo file jar ‘core-java.jar’ chứa file lớp (class file) file nguồn Liệt kê nội dung file jar
3 Tạo file html cho file CardLayoutDemo.class,file lớp chứa file jar trích rút (extract) file jar
5 Dùng lệnh keytool với tên bí danh keystore để tạo cặp khố cơng cộng/riêng
6 Ký danh file jar tạo Xác minh chữ ký (signature) Xuất chứng nhận (certificate) Liệt kê nội dung keystore