Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
221,88 KB
Nội dung
Overriding & Phạmvitruy cậpOverriding & Phạmvitruycập Phạmvitruycập của các phương thức Phạmvitruycập của các phương thức overriding trong lớp dẫn xuất phải bằng overriding trong lớp dẫn xuất phải bằng hoặc rộng hơn trong lớp cơ sởhoặc rộng hơn trong lớp cơ sở Thứ tự truy xuấtThứ tự truy xuất Thứ tự truy xuấtThứ tự truy xuất publicpublic protectedprotected none (default)none (default) privateprivate rộngrộng hẹphẹp Ví dụVí dụ class A {class A { void f () { . }void f () { . } public void g (int i) { . }public void g (int i) { . } }//end class A}//end class A class B extends A {class B extends A { //[none], protected, public//[none], protected, public void f () {void f () { . } . } //public//public ___ void g (int i) { . }___ void g (int i) { . } }//end class B}//end class B Từ khóa Từ khóa supersuper Từ khóa Từ khóa supersuper được sử dụng để gọi thực được sử dụng để gọi thực hiện phương thức khởi tạo của lớp cơ sởhiện phương thức khởi tạo của lớp cơ sở super();super(); //gọi constructor của lớp cơ sở//gọi constructor của lớp cơ sở Từ khóa Từ khóa có thể được sử dụng để có thể được sử dụng để Từ khóa Từ khóa supersuper có thể được sử dụng để có thể được sử dụng để tham chiếu đến các thuộc tính hoặc gọi tham chiếu đến các thuộc tính hoặc gọi thực hiện các phương thức của lớp cơ sởthực hiện các phương thức của lớp cơ sở super.f();super.f(); Từ khóa Từ khóa staticstatic Khai báo thuộc tính/phương thứcKhai báo thuộc tính/phương thức static int i;static int i; public static void f ( ) { .}public static void f ( ) { .} Thuộc tính Thuộc tính staticstatic là duy nhất, được chia là duy nhất, được chia staticstatic sẻ bởi tất cả các đối tượng thuộc lớp.sẻ bởi tất cả các đối tượng thuộc lớp. Phương thức Phương thức staticstatic chỉ truy xuất được chỉ truy xuất được các thuộc tính các thuộc tính staticstatic Các thành viên Các thành viên staticstatic có thể được truy có thể được truy xuất thông qua tên lớpxuất thông qua tên lớp System.out.println( .);System.out.println( .); Ví dụVí dụ class A {class A { public int p;public int p; public static int t;public static int t; }} class Main {class Main { pp 1 obj1obj1 pp 0 obj2obj2 pp 0 obj3obj3 22 tt class Main {class Main { public static void main(String[] args) {public static void main(String[] args) { A obj1= new A();A obj1= new A(); A obj2= new A();A obj2= new A(); A obj3= new A();A obj3= new A(); A.p= 10; //ErrorA.p= 10; //Error A.t= 5;A.t= 5; }} }} obj1.p= 1;obj1.p= 1; obj1.t= 2;obj1.t= 2; Interface [1]Interface [1] Là một kiểu dữ liệu tham chiếu Là một kiểu dữ liệu tham chiếu ---- có thể có thể được xem như một class hoàn toàn trừu được xem như một class hoàn toàn trừu tượngtượng Được sử dụng với mục đíchĐược sử dụng với mục đích Hỗ trợ đa kế thừaHỗ trợ đa kế thừaHỗ trợ đa kế thừaHỗ trợ đa kế thừa Là giao tiếp đại diện cho một hoặc nhiều kiểu Là giao tiếp đại diện cho một hoặc nhiều kiểu dữ liệu class cụ thểdữ liệu class cụ thể Qui ướcQui ước Tất cả các thành viên: Tất cả các thành viên: publicpublic Tất cả các thuộc tính: Tất cả các thuộc tính: static finalstatic final Tất cả các phương thức: Tất cả các phương thức: abstractabstract Interface [2]Interface [2] Khai báoKhai báo accessaccess--specifier specifier interfaceinterface <tên<tên--interface>interface> [[extendsextends <d/s<d/s--interface>] {interface>] { /* /* /* /* * interface body* interface body */*/ }} accessaccess--specifier:specifier: public, public, none (default)none (default) Tham chiếuTham chiếu Tham chiếu, hình thành khi đối tượng Tham chiếu, hình thành khi đối tượng được tạo ra, được sử dụng để truy xuất được tạo ra, được sử dụng để truy xuất các thuộc tính của đối tượngcác thuộc tính của đối tượng Khi gán một đối tượng vào một biến nhớ, Khi gán một đối tượng vào một biến nhớ, Khi gán một đối tượng vào một biến nhớ, Khi gán một đối tượng vào một biến nhớ, hoặc truyền đối tượng vào phương thức, hoặc truyền đối tượng vào phương thức, chỉ có tham chiếu của đối tượng được chỉ có tham chiếu của đối tượng được truyền vàotruyền vào So sánh trên tham chiếuSo sánh trên tham chiếu Toán tử so sánh Toán tử so sánh ==== và và !=!= được sử dụng được sử dụng để xác định xem hai biến có cùng tham để xác định xem hai biến có cùng tham chiếu đến một đối tượng (một vùng nhớ) chiếu đến một đối tượng (một vùng nhớ) hay khônghay không Class Class cung cấp cung cấp Class Class java.lang.Objectjava.lang.Object cung cấp cung cấp phương thức phương thức equals()equals() để so sánh giá trị để so sánh giá trị các đối tượngcác đối tượng Các class cần override phương thức Các class cần override phương thức equals()equals() để thực hiện so sánh bằng giá trị để thực hiện so sánh bằng giá trị của các đối tượng thuộc lớpcủa các đối tượng thuộc lớp Ví dụVí dụ String str0= “abc”;String str0= “abc”; String str1= “abc”;String str1= “abc”; String str2= new String(“abc”);String str2= new String(“abc”); String str3= new String(“abc”);String str3= new String(“abc”); String poolString pool abcabc …… abcabc abcabc abcabc …… str0str0 str1str1 abcabc abcabc str2str2 str4str4 str3str3 String str3= new String(“abc”);String str3= new String(“abc”); String str4= str3;String str4= str3; str0==str1 //truestr0==str1 //true str1==str2 //falsestr1==str2 //false str2==str3 //falsestr2==str3 //false str3==str4 //truestr3==str4 //true str0.equals(str1) //truestr0.equals(str1) //true str1.equals(str2) //falsestr1.equals(str2) //false str2.equals(str3) //falsestr2.equals(str3) //false str3.equals(str4) //truestr3.equals(str4) //true [...]... fis.read(buffer); } fis.close(); Ghi d li u ra t p tin Xu t d li u, s d ng l p i tư ng FileOutputStream FileOutputStream fos= new FileOutputStream( ); String str= “hello”; fos.write(str.getBytes()); fos.close(); Q&A . Overriding & Phạm vi truy cậpOverriding & Phạm vi truy cập Phạm vi truy cập của các phương thức Phạm vi truy cập của các phương thức overriding. specifier interfaceinterface <tên<tên--interface>interface> [[extendsextends <d/s<d/s--interface>] {interface>] { /* /* /* /* * interface