Translate

Thứ Ba, 29 tháng 3, 2016

Đồ án Tìm hiểu ngôn ngữ java và viết demo ứng dụng

THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH bảo vệ bởi giao diện của các lớp. Sự đa hình cho phép bạn tạo ra những đoạn mã lệnh gọn gàng, dễ đọc, dễ hiểu và có tính ổn định.Java là ngôn ngữ lập trình hướng đối tượng nên có đầy đủ các tính năng trên, thư viện lớp Java được cung cấp khá đầy đủ cho người lập trình để bắt đầu một dự án mở. SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 11 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH 3.ĐỐI TƯỢNG ,LỚP Khi định nghĩa một lớp, bạn chỉ ra thuộc tính mà nó chứa được thể hiện bằng biến (Member Variable) và hành vi được thể hiện bởi hàm (Method) Các biến định nghĩa bên trong một lớp gọi là các biến thành viên (Member Variables). Mã lệnh chứa trong các phương thức (Method). Các phương thức và biến định nghĩa trong lớp gọi chung là thành phần của lớp. Trong hầu hết các lớp, các biến thể hiện được truy cập bởi các phương thức định nghĩa trong lớp đó. Vì vậy, chính các phương thức quyết định dữ liệu của lớp có thể dùng như thế nào. Lớp định nghĩa một kiểu dữ liệu mới, dùng để tạo các đối tượng thuộc kiểu đó. Dạng đầy đủ của một định nghĩa lớp như sau : [public] Lớp được truy xuất chung cho các Package khác, mặc định chỉ có các đoạn mã trong cùng một gói mới có quyền truy xuất nó [abstract] Lớp trừu tượng, không thể khởi tạo [final] Lớp hằng không có lớp con, không kế thừa class ClassName Tên lớp [extends SuperClass] Kế thừa lớp cha SuperClass [implements Interfaces] Giao diện được cài đặt bởi Class { //Member Variables Declarations Khai báo các biến // Methods Declarations Khai báo các phương thức } 3.1 Khai báo đối tượng Để có được các đối tượng của một lớp phải qua hai giai đoạn :  ClassName ObjectName;Ví dụ : Box myBox Khai báo biến myBox có kiểu lớp Box. Khai báo này thực ra không cấp phát ký ức đủ chứa đối tượng thuộc lớp Box, mà chỉ tạo ra quy chiếu trỏ đến đối tượng Box. Sau câu lệnh này, quy chiếu myBox xuất hiện trên ký ức chứa giá trị null chỉ ra rằng nó chưa trỏ đến một đối SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 12 THỰC TẬP CHUYÊN NGÀNH tượng thực tế nào GVHD: ThS.NGUYỄN QUANG NINH Khác với câu lệnh khai báo biến kiểu sơ cấp là dành chỗ trên ký ức đủ chứa một trị thuộc kiểu đó :Ví dụ : int i; Sau câu lệnh này, biến nguyên i hình thành.  Sau đó, để thực sự tạo ra một đối tượng và gán địa chỉ của đối tượng cho biến này, dùng toán tử new ObjectName = new ClassName();Ví dụ : myBox = new Box();  Có thể kết hợp cả hai bước trên vào một câu lệnh : ClassName ObjectName = new ClassName();Ví dụ : Box myBox = new Box(); Box myBox2 = myBox; myBox2 tham chiếu đến cùng đối tượng mà myBox tham chiếu myBox width height Box Object myBox2 3.2 Cách truy xuất thành phần của lớp  Biến khai báo trong định nghĩa lớp gồm có hai loại : - Biến đối tượng (Instance Variable hay Object Variable) : chỉ thuộc tính đối tượng, khi truy xuất phải khởi tạo đối tượng + Cách khai báo biến đối tượng : Type InstanceVar; + Cách truy cập biến đối tượng : ObjectName.InstanceVar - Biến lớp (Class Variable) : về bản chất là biến toàn cục, là biến tĩnh được tạo lập một lần cùng với lớp, dùng chung cho mọi đối tượng thuộc lớp, khi truy xuất không cần khởi tạo đối tượng, để trao đổi thông tin của các đối tượng cùng lớp + Cách khai báo biến lớp : static Type ClassVar; + Cách truy cập biến lớp : SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 13 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH ClassName.ClassVar  Hàm khai báo trong định nghĩa lớp gồm có hai loại : - Hàm đối tượng (Object Method) : cách truy xuất hàm đối tượng như biến đối tượng ObjectName.ObjectMethod(Parameter-List)- Hàm lớp (Class Method) : thông thường một thành phần của lớp chỉ truy xuất trong sự liên kết với một đối tượng thuộc lớp của nó. Tuy nhiên, có thể tạo ra một thành phần mà có thể dùng một độc lập một mình, không cần tham chiếu đến một đối tượng cụ thể, có thể được truy xuất trước khi bất kỳ đối tượng nào của lớp đó được tạo ra, bằng cách đặt trước khai báo của nó từ khoá static. Cách truy xuất hàm lớp : ClassName.ClassMethod(Parameter-List) Các hàm toán học của lớp Math trong Package Java.Lang là hàm lớp nên khi gọi không cần phải khởi tạo đối tượng Ví dụ : double a = Math.sqrt(453.28); 3.3 Khai báo phương thức (hàm) Dạng tổng quát của một phương thức như sau : [acess] điều khiển truy xuất [static] hàm lớp [abstract] hàm trừu tượng [final] hàm hằng [Type] MethodName(Parameter-List) throws exceptions { // Body of method} - Type : Kiểu dữ liệu do hàm trả về, có thể là kiểu bất kỳ, kể cả các kiểu lớp do bạn tạo ra. Nếu hàm không trả về giá trị nào, kiểu trả về của nó phải là void. - Các hàm có kiểu trả về không phải là void sẽ trả về một giá trị cho chương trình gọi nó dùng dạng câu lệnh return như sau : return biểu thức; Giá trị của biểu thức được tính và trả về cho hàm - Tất cả thông tin bạn muốn truyền được gởi thông qua tham số nằm trong hai dấu ( ) ngay sau SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 14 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH tên hàm. Nếu không có tham số vẫn phải có ( ) Parameter-List : Danh sách tham đối phân cách bởi các dấu phẩy, mỗi tham đối phải được khai báo kiểu, có thể là kiểu bất kỳ, có dạng : Type Parameter1, Type Parameter2 ... 3.4 Phạm vi truy xuất thành phần của lớp Các điều khiển truy xuất của Java là public, private và protected. protected chỉ áp dụng khi có liên quan đến kế thừa sẽ xét đến sau Khi bổ sung tiền tố cho một thành phần của lớp (biến và hàm) là :- Từ khoá public : chỉ ra rằng thành phần này có thể được truy xuất bởi bất kỳ dòng lệnh nào dù ở trong hay ngoài lớp mà nó khai báo - private : chỉ có thể được truy xuất trong lớp của nó, mọi đoạn mã nằm ngoài lớp, kể cả những lớp con đều không có quyền truy xuất- Khi không có điều khiển truy xuất nào được dùng, mặc nhiên là public nhưng chỉ trong gói của nó, không thể truy xuất từ bên ngoài gói của nó 3.5 Phương thức main() Khi chạy ứng dụng độc lập, bạn chỉ tên Class muốn chạy, Java tìm gọi hàm main() trước tiên trong Class đó, phương thức main sẽ điều khiển chạy các phương thức khác. Dạng tổng quát của phương thức main() public static void main(String args[]) { // Body of Method } - Một chương trình chỉ cần một lớp có phương thức main() gọi là lớp ứng dụng độc lập Primary Class. - Từ khoá static cho phép hàm main() được gọi khi không cần khởi tạo đối tượng. Vì main() được trình thông dịch của Java gọi trước khi bất kỳ lớp nào được khởi tạo - Từ khoá void cho biết hàm main() không trả về giá trị - Từ khoá public chỉ ra rằng hàm này được gọi bởi dòng lệnh bên ngoài lớp khi chương trình khởi động. SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 15 THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH - Tham đối String args[ ] khai báo tham số tên args thuộc lớp String, chứa chuỗi ký tự. Tham đối này giữ các tham đối dòng lệnh dùng khi thi hành chương trình. Ví dụ 1 : class ViDu { public static void main (String args[]) { for (int i=0; i < args.length; i++) { System.out.println(“Tham doi thu “+i+”: “+args[i]); } } } Khi chạy chương trình : C:\>java ViDu Thu tham doi dong lenh  Tham doi thu 0 : Thu Tham doi thu 1 : tham .... C:>java ViDu Thu “tham doi” “dong lenh”  Tham doi thu 0 : Thu Tham doi thu 1 : tham doi Tham doi thu 2 : dong lenh 3.6 Hàm khởi tạo (Constructor) Có những thao tác cần thực hiện mỗi khi đối tượng lần đầu tiên được tạo như khởi tạo giá trị cho các biến. Các công việc này có thể làm tự động bằng cách dùng hàm khởi tạo. Hàm khởi tạo có cùng tên với lớp mà nó thuộc về, chỉ được tự động gọi bởi toán tử new khi đối tượng thuộc lớp được tạo. Hàm khởi tạo không có giá trị trả về, khi định nghĩa hàm có thể ghi void hay không ghi. Ví dụ : - kích thước hộp được khởi tạo tự động khi đối tượng được tạo. class Box { SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 16

Không có nhận xét nào :

Đăng nhận xét

BACK TO TOP