Tải bản đầy đủ (.pdf) (30 trang)

Overriding & Phàm vi truy cập

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (221.88 KB, 30 trang )

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 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ừaHỗ 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
Wrapper Classes [1]Wrapper Classes [1]
 Nằm trong Nằm trong packagepackage java.langjava.lang
 Đóng gói các kiểu dữ liệu cơ sở dưới dạng Đóng gói các kiểu dữ liệu cơ sở dưới dạng
các lớpcác lớp
 Được sử dụng khi cần dùng một đối tượng Được sử dụng khi cần dùng một đối tượng  Được sử dụng khi cần dùng một đối tượng Được sử dụng khi cần dùng một đối tượng
biểu diễn một kiểu cơ sởbiểu diễn một kiểu cơ sở
 Cung cấp các phương thức Cung cấp các phương thức staticstatic tiện ích tiện ích
chuyển đổi kiểu dữ liệu:chuyển đổi kiểu dữ liệu:
int Integer.parseInt(String)int Integer.parseInt(String)
double Double.parseDouble(String)double Double.parseDouble(String)
......
Wrapper Classes [2]Wrapper Classes [2]
Wrapper ClassWrapper Class Primitive TypePrimitive Type
DoubleDouble doubledouble

FloatFloat floatfloat
LongLong longlongLongLong longlong
IntegerInteger intint
ShortShort shortshort
ByteByte bytebyte
CharacterCharacter charchar
BooleanBoolean booleanboolean

×