Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 50 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
50
Dung lượng
296,95 KB
Nội dung
Chương 3: Hư ng ñ i tư ng Java GVLT: Tr n Anh Dũng N i dung Các khái ni m b n v l p, ñ i tư ng L p ñ i tư ng java Tính đóng gói Tính k th a Tính ña hình Interface Các khái ni m b n ð i tư ng (object): Trong th gi i th c, khái ni m đ i tư ng có th xem m t th c th : ngư i, v t, b ng d li u,… ð i tư ng giúp hi u rõ th gi i th c Cơ s cho vi c cài ñ t máy tính M i đ i tư ng có đ nh danh, thu c tính, hành vi Ví d : ð i tư ng sinh viên MSSV: “TH0701001”; Tên sinh viên: “Nguy n Văn A” Các khái ni m b n H th ng ñ i tư ng: Là t p h p ñ i tư ng M i ñ i tư ng ñ m trách cơng vi c Các đ i tư ng có th trao đ i thơng tin v i Các đ i tư ng có th x lý song song, hay phân tán Các khái ni m b n L p (class): Là khuôn m u (template) ñ tư ng sinh ñ i Ví d : l p ñ i tư ng Sinhvien Sinh viên “Nguy n Văn A”, mã s TH0701001 → ñ i tư ng thu c l p Sinhvien Sinh viên “Nguy n Văn B”, mã s TH0701002 → ñ i tư ng thu c l p Sinhvien ð i tư ng (object) c a l p: M t ñ i tư ng c th thu c l p, th hi n c th c a l p L p đ i tư ng java (1) Khai báo l p class { } L p ñ i tư ng java (2) Thu c tính: Các đ c m mang giá tr c a ñ i tư ng, vùng d li u ñư c khai báo bên l p class { ; } Ki m sốt truy c p đ i v i thu c tính public protected private L p ñ i tư ng java (3) Phương th c: Ch c x tư ng lý, hành vi c a ñ i class { … () { … } } L p ñ i tư ng java (4) Ph m vi truy xu t public protected default private final: Khơng đư c khai báo ch ng (khơng đư c ghi đè l p con) l p d n xu t abstract: Khơng có ph n source code, s ñư c cài ñ t l p d n xu t L p ñ i tư ng java (5) static: Phương th c l p dùng chung cho t t c th hi n c a l p, có th đư c th c hi n c khơng có đ i tư ng c a l p native: ðây t khoá báo cho java bi t phương th c ñư c vi t b ng m t ngơn ng l p trình khơng ph i java ( thư ng ñư c vi t b ng C/C++) synchoronized: Dùng ñ ngăn nh ng tác ñ ng c a ñ i tư ng khác lên ñ i tư ng ñang xét ñang đ ng b hóa Dùng l p trình multithreads 10 L p tr u tư ng (3) public abstract class Shape{ static final double PI = 3.14159; public abstract double getArea(); public abstract double getVolume(); } class Circle extends Shape{ double radius; public double getArea() { return PI*radius*radius; } public double getVolume() { return 0; } } class Cube extends Shape{ double a, b, c; public double getArea() { return 2*(a*b+b*c+c*a); } public double getVolume() { return a*b*c; } } 36 Tham chi u super Là m t bi n tham chi u ñ n ñ i tư ng có ki u l p cha c a l p hi n t i Tham chi u super ñư c dùng ñ truy c p ñ n thành viên c a l p cha ñã b che b i l p constructor c a l p cha 37 Giao ti p – interface (1) Interface ñư c java đưa v i hai m c đích chính: ð t o l p s thu n o (khơng có b t kỳ phương th c ñư c cài ñ t) Th c hi n hành vi tương t k th a b i ð t o m t interface, ta dùng t khoá interface ð tri n khai m t interface dùng t khóa implements N u m t l p tri n khai nhi u interface? 38 Giao ti p – interface (2) M t s ý: Các trư ng interface static final T t c thành ph n c a m t giao di n t đ ng public v y ta khơng c n ph i thêm b t vào Ta khơng đư c phép thêm b t khác private, protected trư c khai báo interface M t interface có th th a k m t interface khác M t l p có th cài đ t m t hay nhi u interface ch có th th a k (extends) t m t l p 39 Giao ti p – interface (3) Ví d : ð nh nghĩa m t interface Shape t p tin shape.java public interface Shape{ //Tính di n tích public abstract double area(); //Tính th tích public abstract double volume(); //Tr v tên c a shape public abstract String getName(); } 40 Giao ti p – interface (4) //L p Point cài ñ t/hi n th c interface tên shape //ð nh nghĩa l p Point t p tin Point.java public class Point extends Object implements Shape { protected int x, y; //T a ñ x, y c a ñi m //Constructor không tham s public Point() { setPoint( 0, ); } //Constructor có tham s public Point(int xCoordinate, int yCoordinate) { setPoint( xCoordinate, yCoordinate ); } 41 Giao ti p – interface (5) //Gán t a ñ x, y cho ñi m public void setPoint( int xCoordinate, int yCoordinate ) { x = xCoordinate; y = yCoordinate; } //L y t a ñ x c a ñi m public int getX() { return x; } //L y t a ñ y c a ñi m public int getY() { return y; } 42 Giao ti p – interface (6) //Th hi n t a ñ c a ñi m dư i d ng chu i public String toString() { return "[" + x + ", " + y + "]"; } //Tính di n tích public double area() { return 0.0; } //Tính th tích public double volume() { return 0.0; } 43 Giao ti p – interface (7) //Tr v tên c a ñ i tư ng shape public String getName() { return "Point"; } } //End class Point 44 Giao ti p – interface (8) M t s ý: L p tri n khai interface ph i th c thi t t c phương th c ñư c khai báo interface, n u l p khơng tri n khai, ho c tri n khai khơng h t ph i đư c khai báo abstract Interface m t l p tr u tư ng v y ta không th t o th hi n c a interface M t interface có th m b ng hình th c k th a r ng m t interface khác, 45 Ph m vi truy c p 46 M t s lưu ý Java khơng có tốn t ph m vi (scope) :: Java khơng có h y t (destructor), ch có phương th c finalize() đư c g i b i Garbage Collector Java khơng có template Java khơng có t i toán t (operator overloading) 47 Bài t p Xây d ng l p Candidate (Thí sinh) g m thu c tính: mã, tên, ngày tháng năm sinh, m thi Tốn, Văn, Anh phương th c c n thi t Xây d ng l p TestCandidate ñ ki m tra l p trên: - Nh p vào n thí sinh (n ngư i dùng nh p) In thông tin v thí sinh có t ng m l n 15 48 Bài t p Xét ph n m m qu n lý nhân s Gi s Cơng ty có hai lo i nhân viên: nhân viên văn phòng nhân viên s n xu t Vi t chương trình qu n lý tính lương cho t ng nhân viên c a công ty: - - M i nhân viên c n qu n lý thông tin sau: H tên, ngày sinh, lương Công ty c n tính lương cho nhân viên sau: - ð i v i nhân viên s n xu t: - Lương=lương b n + s s n ph m * 5.000 - ð i v i nhân viên văn phòng: - lương = s ngày làm vi c * 100.000 49 H i & ñáp 50 ... p 46 M t s lưu ý Java khơng có tốn t ph m vi (scope) :: Java khơng có h y t (destructor), ch có phương th c finalize() đư c g i b i Garbage Collector Java khơng có template Java khơng có q t... sv = new Sinhvien(); 16 Kh i vô danh Trong java ta có th đ t m t kh i l nh không thu c m t phương th c Khi kh i l nh đư c g i kh i vô danh, kh i vô danh ñư c java g i th c thi m t ñ i tư ng ñư... private L p đ i tư ng java (3) Phương th c: Ch c x tư ng lý, hành vi c a ñ i class { … () { … } } L p ñ i tư ng java (4) Ph m vi truy