Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
75,58 KB
Nội dung
Java Hướng đối tượng Định nghĩa: Package - Là chế dùng để tổ chức quản lý lớp Java - Mỗi Package thư mục chứa lớp - Ý nghĩa: + Giúp tránh trùng tên lớp + Giúp tổ chức quản lý lớp - Có loại Package: +Package định nghĩa sẵn (java.io, java.util, v.v ) +Package người dùng định nghĩa VD: package myPackage class Myclass Lớp - Lớp mẫu hay kiểu chung cho tất đối tượng có đặc trưng giống - Mỗi đối tượng thể (một cá thể, đại diện) lớp xác định Public class Stack { private Vector items; } Các thuộc tính lớp •public +Lớp Public: +Là lớp khai báo với từ khóa public lớp truy cập đâu ++Chú ý: Khai báo lớp có trường hợp: Dùng từ khóa public không dùng (ngầm định default) +Thuộc tính / Phương thức public: •protected + Các thành phần lớp khai báo protected truy cập lớp lớp package •private +Là thành phần truy cập Nội lớp, lớp khác truy cập Các thuộc tính lớp (tt) • abstract abstract class +Là lớp trừu tượng - khởi tạo đối tượng từ lớp trừu trường Là lớp chưa hoàn thành, cài đặt cụ thể, mở rộng lớp +Khai báo từ khóa abstract trước class khai báo +Lớp abstract thường sử dụng làm lớp cha (siêu lớp) ta khởi tạo đối tượng từ siêu lớp • Final class +Là lớp kết thúc - Không thể kế thừa • PHP Code: • final class member extends UIT_Student • +Được sử dụng không muốn cho lớp khác kế thừa không muốn Hàm lớp • abstract method +Là phương thức trừu tượng, khai báo nội dung +Khi lớp kế thừa lớp cha, phải override tất abstract lớp cha +Chú ý: Khi lớp chứa abstract method phải khai báo abstract class • Final method +Là phương thức override final void get_name() { } Hàm lớp Hàm khởi tạo (Constructor) Có những thao tác cần thực hiện mỗi đối tượng lần đầu tiên được tạo 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 Ví dụ : - kích thước hộp được khởi tạo tự động đối tượng được tạo class Box { double width; double height; double depth; double volume() { return width * height * depth; } Box(double w, double h, double d) { width = w; height = h; depth = d; } } class BoxDemo { public static void main (String args[ ]) { Box myBox1 = new Box(10,20,15); Box myBox2 = new Box(3,6,9); double vol; vol = myBox1.volume(); System.out.println(“Thể tích là : “+vol); vol = myBox2.volume(); System.out.println(“Thể tích là : “+vol); } } CƠ CHẾ TRIỂN KHAI MÔ HINH HƯỚNG ĐỐI TƯỢNG Tính thừa kế: +Cơ chế thừa kế cho phép lớp thừa hưởng thuộc tính / phương thức lớp khác +Lớp cho lớp khác thừa kế gọi siêu lớp - Super class Lớp thừa kế từ lớp khác gọi lớp - sub class +Trong Java để khai báo Lớp Thừa kế từ lớp khác ta dùng từ khóa extends; +Trong Java đa thừa kế - Mỗi lớp kế thừa từ lớp cha Nhưng lớp kề thừa nhiều lớp Ví dụ: class UIT_Student { } class member extends UIT_Student { } CƠ CHẾ TRIỂN KHAI MÔ HINH HƯỚNG ĐỐI TƯỢNG Tính đóng gói: - Là kỹ thuật của Java, dùng để phân hoạch không gian tên lớp, giao diện thành những vùng dễ quản lý hơn, thể hiện tính đóng gói của Java CƠ CHẾ TRIỂN KHAI MÔ HINH HƯỚNG ĐỐI TƯỢNG Tính đa hình(Overloading): Khi một lớp được kế thừa từ các lớp tổ tiên thì nó có thể thay đổi cách thức làm việc của lớp tổ tiên một số phương thức nào đó (nhưng tên, kiểu trả về, danh sách tham đối của phương thức thì vẫn giữ nguyên) Overloading dùng ta muốn định nghĩa nhiều cách thực cho hành vi lớp CƠ CHẾ TRIỂN KHAI MÔ HINH HƯỚNG ĐỐI TƯỢNG • Ví dụ: public int sum(int num1, int num2) { return (num1 + num2) } public int sum(int num1, int num2, int num3) { return (num1 + num2 + num3) } //Đối số có kiểu liệu khác public display(int a) { System.out.println(a); } public display(float a) { System.out.println(a); } Overriding +Là trình lớp định nghĩa lại phương thức lớp cha (Ghi đè) +Cả phương thức lớp cha lớp phải tên, danh sách đối số, kiểu trả +Phương thức lớp phải có mức truy cập cap với phương thức lớp cha +VD: Phương thức lớp cha thiết lập protected phương thức lớp phải thiết lập tối thiểu protected không thấp Overriding class member { protected int _permission() { return 0; } } class admin extends member { public int _permission() { return 1; } } Interface + Là dạng lớp cha cho phép (Hỗ trợ chế Đa thừa kế ) Hỗ trợ Đa thừa kế cho Java Đa thừa kế.Interface nội dung mà có khai báo thuộc tính / phương thức + Trong Java sub-class thừa kế từ Super-class cài nhiều Interface + Tất thuộc tính Interface mặc định final variable Các phương thức mặc định abstract method + Sử dụng Interface ta muốn có chế Đa thừa kế C++ (Một lớp kế thừa từ nhiều lớp cha) + Khi lớp cài đặt Interface phải cài đặt tất phương thức Interface + Sử dụng từ khóa implements để khai báo cài đặt Interface Interface interface dv_an_thit { String an_thit = "Là loại động vật ăn thịt"; } interface dv_duoi_nuoc { String duoi_nuoc = "Là loại động vật sống nước" } class ca_map implements dv_an_thit,dv_duoi_nuoc { } public class Main { public static void main(String[] args) { System.out.println("finish"); ca_map _a = new ca_map(); System.out.println("Đặc điểm cá mập:"); System.out.println(_a.an_thit); System.out.println(_a.duoi_nuoc); } } – thanks [...]... num1, int num2, int num3) { return (num1 + num2 + num3) } / /Đối số có kiểu dữ liệu khác nhau public display(int a) { System.out.println(a); } public display(float a) { System.out.println(a); } Overriding +Là quá trình lớp con định nghĩa lại một phương thức của lớp cha (Ghi đè) +Cả 2 phương thức ở lớp cha và lớp con phải cùng tên, cùng danh sách đối số, cùng kiểu trả về +Phương thức ở lớp con phải có mức... member { public int _permission() { return 1; } } Interface + Là một dạng như lớp cha cho phép (Hỗ trợ cơ chế Đa thừa kế ) Hỗ trợ Đa thừa kế cho Java chứ không phải là Đa thừa kế.Interface không có nội dung mà chỉ có khai báo các thuộc tính / phương thức + Trong Java một sub-class chỉ có thể thừa kế từ một Super-class nhưng có thể cài nhiều Interface + Tất cả các thuộc tính trong Interface mặc định sẽ