bài giảng lập trình java cơ bản chương 3 gv võ hoàng phương dung chương 3 lớp trong java

55 516 0
bài giảng lập trình java cơ bản chương 3 gv võ hoàng phương dung chương 3 lớp trong java

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

L L Ậ Ậ P TRÌNH JAVA P TRÌNH JAVA Chương 3 LỚP TRONG JAVA GV: Võ Hoàng Phương Dung 2/25 N N ộ ộ i dung i dung  Các khái niệm trong lập trình hướng đối tượng  Khai báo lớp  Các lớp lồng nhau  Lớp Abstract  Gói  Phạm vi truy cập  Interface  Thừa kế và đa hình  Đối tượng (Object) • Thuộc tính (fields) • Hành vi (methods) 3/25 C C á á c kh c kh á á i ni i ni ệ ệ m m Rectangle Width: 50cm Height: 30cm Color: Yellow Draw() changeSize()  Thuộc tính (fields) là dữ liệu trình bày các đặc điểm về một đối tượng • Mọi đối tượng của một lớp phải có cùng các thuộc tính nhưng giá trị của các thuộc tính thì có thể khác nhau • Một thuộc tính của đối tượng có thể nhận các giá trị khác nhau tại các thời điểm khác nhau  Ví dụ: đối tượng hình chữ nhật có các thuộc tính chiều dài, chiều rộng. 4/25 C C á á c kh c kh á á i ni i ni ệ ệ m m  Phương thức (method) là cách đáp ứng chức năng tác động lên dữ liệu của đối tượng • Các phương thức xác định cách thức hoạt động của một đối tượng và được thực thi khi đối tượng cụ thể được tạo ra  Ví dụ: các hoạt động chung của một lớp hình chữ nhật là tính chu vi và diện tích. 5/25 C C á á c kh c kh á á i ni i ni ệ ệ m m  Lớp (Class) • Là tập hợp các đối tượng cùng loại • Là khuôn mẫu tạo ra đối tượng • Là 1 kiểu dữ liệu phần mềm 6/25 C C á á c kh c kh á á i ni i ni ệ ệ m m Lớp: Rectangle Đối tượng: RectangleA Đối tượng: RectangleB  Các tính chất của lập trình hướng đối tượng • Tính đóng gói • Tính thừa kế • Tính đa hình 7/25 C C á á c kh c kh á á i ni i ni ệ ệ m m  Tính đóng gói • Đóng gói là tiến trình che giấu việc thực thi chi tiết một đối tượng • Giới hạn quyền truy cập đến các thành phần của đối tượng • Cơ chế cho việc che dấu thông tin 8/25 C C á á c kh c kh á á i ni i ni ệ ệ m m  Thừa kế (Inheritance) • Xây dựng lớp mới (subclass) từ lớp cũ (superclass) • Lớp mới có tất cả thuộc tính và phương thức của lớp cũ và thêm vào một số đặc tính riêng khác. • Các lớp con có thể định nghĩa lại các phương thức được thừa kế để xử lý các thuộc tính riêng của chúng • Ví dụ: Lớp xe đạp leo núi và lớp xe đạp đua là những lớp con của lớp xe đạp. Lớp xe đạp được gọi là lớp cha 9/25 C C á á c kh c kh á á i ni i ni ệ ệ m m  Tính đa hình • Phương thức cùng tên có thể được thực hiện khác nhau đối với các đối tượng, các lớp khác nhau. • Ví dụ: hai lớp Hình chữ nhật và hình tròn cùng có các phương thức tính chu vi, diện tích. Nhưng cách tính chu vi của đối tượng hình chữ nhật và hình tròn lại khác nhau. 10/25 C C á á c kh c kh á á i ni i ni ệ ệ m m [...]... khi 1 phương thức trong lớp con có cùng tên và kiểu trả về như 1 phương thức trong lớp cha  Phương thức trong lớp cha sẽ bị che khuất  Để truy cập phương thức trong lớp cha, sử dụng từ khóa super  31 /25 Thừa kế - Chồng phương thức  Ví dụ public class Shape { … public double calculateArea() { return 0; } } public class Circle{ … public double calculateArea() { return PI * radius * radius; } } 32 /25... } } 24/25 Các lớp lồng nhau Lớp bên ngoài không thể truy cập dữ liệu của lớp bên trong trực tiếp  Ví dụ  public class Main { int outer_x = 100; class Inner { int y = 10; void display() { System.out.println("display: outer_x = " + outer_x); } } void showy() { System.out.println(y); } } 25/25 Thừa kế  Tạo lớp mới từ lớp đã tồn tại • Lớp mới gọi là lớp con (subclass) • Lớp cũ gọi là lớp cha (superclass)... findArea(){ return radius * radius * 3. 14159; } } 13/ 25 Khai báo lớp  Khai báo phương thức khởi tạo • Constructor (phương thức tạo): là một dạng đặc biệt của phương thức, được gọi để xây dựng đối tượng Không có giá trị trả về  Phải cùng tên với tên lớp  • Ví dụ: class Circle { double radius = 1.0; Circle(){} Circle(double rad){ radius = rad; } } 14/25 Khai báo lớp  Ví dụ class Circle { double radius... static • Ví dụ: static double radius=1.0;  Phương thức static • Ví dụ: static double findArea(){ return radius * radius * 3. 14159; }  Có thể được truy cập qua tên lớp • Ví dụ: Circle.radius; Circle.findArea(); 21/25 Mở rộng – Từ khóa static Tất cả các đối tượng cùng 1 lớp chia sẻ các biến static trong lớp đó  Phương thức static  • Chỉ có thể gọi các phương thức static khác • Chỉ truy cập thuộc... gọi các phương thức static khác • Chỉ truy cập thuộc tính static • Không thể dùng từ khóa this để truy cập 22/25 Các lớp lồng nhau Java cho phép định nghĩa 1 lớp bên trong 1 lớp khác  Cấu trúc  class OuterClass { static class StaticNestedClass { } class InnerClass { } } 23/ 25 Các lớp lồng nhau  Ví dụ class Outer { int outer_x = 100; void test() { Inner inner = new Inner(); inner.display(); } class... Circle{ … public double calculateArea() { return PI * radius * radius; } } 32 /25 Thừa kế - Chồng phương thức  So sánh với Quá tải phương thức (Overloading) • Xảy ra khi các phương thức có cùng tên nhưng khác nhau về tham số • Có thể khác nhau về kiểu trả về của phương thức  Ví dụ 33 /25 Thừa kế - Chồng phương thức class OverloadDemo { void test() { System.out.println("No parameters"); } void test(int...Khai báo lớp  Cú pháp: class name{ // Khai báo thuộc tính // Khai báo phương thức } 11/25 Khai báo lớp  Khai báo thuộc tính • Cú pháp: [=value]; • Ví dụ class Circle { double radius = 1.0; int color; } 12/25 Khai báo lớp  Khai báo phương thức : • Cú pháp: (){ ; } • Ví dụ... super  Gọi phương thức khởi tạo của lớp cha • Cú pháp: super(ds tham số) • Ví dụ public Circle(String myColor, double myRadius) { super(myColor); radius = myRadius; } 29/25 Thừa kế-Sử dụng từ khóa super  Truy cập 1 thành phần của lớp cha • Cú pháp: super.tên • Ví dụ class Base { int i; } class SubClass extends Base { int i; SubClass(int a, int b) { super.i = a; i = b; } } 30 /25 Thừa kế - Chồng phương. .. test(double a) { System.out.println("double a: " + a); return a * a; } } 34 /25 Đa hình (Polymorphism) public class Shape { … public double calculateArea() { return 0; } } public class Circle{ … public double calculateArea() { return PI * radius * radius; } } public class Rectangle{ … public double calculateArea() { return width*height; } } 35 /25 Đa hình (Polymorphism) public class Main { public static void... • Ví dụ: Circle myCircle=new Circle(); Circle myCircle=new Circle(5); 17/25 Khai báo & tạo đối tượng  Tham chiếu dữ liệu của đối tượng: • Cú pháp: objectReference.data • Ví dụ: myCircle.radius  Gọi phương thức của đối tượng: • Cú pháp: objectReference.method • Ví dụ: myCircle.findArea() myCircle.setRadius(6); 18/25 Ví dụ public class Main { public static void main(String args[]) { Circle myCircle=new . L L Ậ Ậ P TRÌNH JAVA P TRÌNH JAVA Chương 3 LỚP TRONG JAVA GV: Võ Hoàng Phương Dung 2/25 N N ộ ộ i dung i dung  Các khái niệm trong lập trình hướng đối tượng  Khai báo lớp  Các lớp lồng nhau  Lớp. dựng lớp mới (subclass) từ lớp cũ (superclass) • Lớp mới có tất cả thuộc tính và phương thức của lớp cũ và thêm vào một số đặc tính riêng khác. • Các lớp con có thể định nghĩa lại các phương. chúng • Ví dụ: Lớp xe đạp leo núi và lớp xe đạp đua là những lớp con của lớp xe đạp. Lớp xe đạp được gọi là lớp cha 9/25 C C á á c kh c kh á á i ni i ni ệ ệ m m  Tính đa hình • Phương thức cùng

Ngày đăng: 17/10/2014, 07:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan