Bài giảng Ngôn ngữ lập trình Java - Bài 4: Lớp (Classes) và kế thừa (Inheritance)
lượt xem 4
download
Bài giảng cung cấp cho người học các kiến thức: Lớp (Classes) và kế thừa (Inheritance), khai báo lớp, định nghĩa Constructors, sử dụng từ khóa this,... Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên đang theo học môn dùng làm tài liệu học tập và nghiên cứu. Mời các bạn cùng tham khảo chi tiết nội dung bài giảng.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Ngôn ngữ lập trình Java - Bài 4: Lớp (Classes) và kế thừa (Inheritance)
- Ngôn ngữ lập trình Java
- Bài 4: Lớp (Classes) và kế thừa (Inheritance)
- Tạo lớp
- Khai báo lớp Element Function (Optional) An annotation (sometimes called meta @annotation data) public (Optional) Class is publicly accessible abstract (Optional) Class cannot be instantiated final (Optional) Class cannot be subclassed class Name of the class NameOfClass (Optional) Commaseparated list of type variables extends Super (Optional) Superclass of the class implements (Optional) Interfaces implemented by the class Interfaces { ClassBody} Provides the class's functionality
- Khai báo Member Variables Element Function accessLevel (Optional) Access level for the variable static (Optional) Declares a class variable (Optional) Indicates that the variable's value cannot final change transient (Optional) Indicates that the variable is transient volatile (Optional) Indicates that the variable is volatile type name The type and name of the variable
- Định nghĩa Methods (1)
- Định nghĩa Methods (2) Element Function @annotation (Optional) An annotation (sometimes called metadata) accessLevel (Optional) Access level for the method static (Optional) Declares a class method (Optional) Commaseparated list of type variables. (Optional) Indicates that the method must be implemented in abstract concrete subclasses. final (Optional) Indicates that the method cannot be overridden (Optional) Indicates that the method is implemented in native another language synchronized (Optional) Guarantees exclusive access to this method returnType The method's return type and name methodName ( paramList ) The list of arguments to the method throws exceptions (Optional) The exceptions thrown by the method
- Định nghĩa Constructors • Constructor có cùng tên với lớp. Không có kiểu trả về. Có hoặc không có tham số. public Stack() { …} public Stack(int size) {…} • Trong constructor, ta có thể gọi superclass constructor: super([danh sách đối số]); hoặc constructor khác: this([danh sách đối]). Những lệnh này, nếu có, phải là lệnh đầu tiên trong constructor.
- Truyền tham số cho Methods, Constructors • Java truyền tham số bằng giá trị: primitive type – passed by value; còn lại - passed by value of reference. • Java 1.5 cho phép phương thức có thể nhận một số bất kỳ tham số (được gọi là varargs). public static Polygon polygonFrom(Point… listOfPoints) { //listOfPoints kiểu Point[] } System.out.printf(String format, Object… args);
- Trả về giá trị từ Methods • Lệnh return . public boolean isEmpty() { return items.isEmpty(); } • Nếu method khai báo kiểu trả về là void, ta dùng lệnh return không có biểu thức hoặc là không cần lệnh return. • Với override method, kiểu trả về có thể là subclass của kiểu trả về của overrided method (covariant return type Java 1.5) chứ không cần phải giống hoàn toàn.
- Sử dụng từ khóa this • Có ích khi ta cần truy cập đến các members của lớp mà trong phạm vi hiện thời có biến trùng tên: public class HSBColor { private int hue, saturation, brightness; public HSBColor (int hue, int saturation, int brightness) { this.hue = hue; this.saturation = saturation; this.brightness = brightness; } }
- Kiểm soát truy cập đến members của lớp • Ta sử dụng access modifier. class Point { private int x, y; public int getX() { return x;} } Specifier Class Package Subclass World private Y N N N no specifier Y Y N N protected Y Y Y N public Y Y Y Y
- Members của instance và members của lớp • Members của instance: không có từ khóa static. Chỉ truy cập được khi đối tượng được khới tạo. • Members của lớp: khai báo có từ khóa static. Có thể truy cập trực tiếp qua tên lớp. class A { public void instanceMethod() {} public static void classMethod() {} } A a = new A(); a.instanceMethod(); a.classMethod(); A.classMethod();
- Khởi tạo members của instance và members của lớp (1) • Khởi tạo trực tiếp. private int i = 10; private static int count = 0; • Khởi tạo instance member qua constructor hoặc initialization block – khối lệnh tự do trong body của class, được gọi trước mỗi constructor: { i = 10; }
- Khởi tạo members của instance và members của lớp (2) • Khởi tạo class member qua static initialization block static { count = 0; } static initialization block được gọi thực hiện khi class được nạp vào hệ thống.
- Quản lý kế thừa
- Overriding và Hiding Methods • Một instance method của subclass với cùng chữ ký (signature) và return type với instance method của superclass được gọi là overrides. Java 1.5 cho phép kiểu trả về của override method là kiểu con của kiểu trả về của method lớp cha (covariant return type). • Instance method chỉ có thể override bằng một instance method. Static method chỉ có thể hide bằng một static method. Ngược lại, phát sinh lỗi compile.
- Hiding Member Variables • Ta có thể định nghĩa một biến trong subclass trùng tên với biến trong superclass. Khi đó biến trong subclass sẽ che biến trong superclass. Để truy cập đến biến trong superclass phải dùng: super.variableName.
- Sử dụng từ khóa super • Ta sử dụng từ khóa super để truy cập đến các phương thức, biến của lớp cha: super.memberName; public class Superclass { public boolean aVariable; public void aMethod() { aVariable = true; } } public class Subclass extends Superclass { public boolean aVariable; //hides aVariable in Superclass public void aMethod() { //overrides aMethod in Superclass aVariable = false; super.aMethod(); System.out.format("%b%n", aVariable); System.out.format("%b%n", super.aVariable); }
- Final Class và Final Method • Ta không thể extends một final class: public class final A {…} public class B extends A {…} //compile error • Ta không thể override một final method: class A { final void finalMethod() {} } class B extends A { void finalMethod() {} //compile error }
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Ngôn ngữ lập trình Java căn bản
115 p | 351 | 104
-
Bài giảng Ngôn ngữ lập trình C++: Chương 1 - Trần Minh Châu
17 p | 250 | 54
-
Bài giảng Ngôn ngữ lập trình C# - Nguyễn Hồng Phương
409 p | 214 | 41
-
Bài giảng Ngôn ngữ lập trình ứng dụng: Phần 1 – ĐH CNTT&TT
45 p | 112 | 13
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 1: Ngôn ngữ lập trình C) - Chương 1: Ôn tập một số nội dung chính của NNLT C
31 p | 157 | 13
-
Bài giảng Ngôn ngữ lập trình bậc cao - Th.S Đoàn Thị Thu Huyền
44 p | 150 | 10
-
Bài giảng Ngôn ngữ lập trình C: Chương 1 - TS. Nguyễn Thị Hiền
12 p | 62 | 9
-
Bài giảng Ngôn ngữ lập trình - Nguyễn Văn Linh
109 p | 118 | 8
-
Bài giảng Ngôn ngữ lập trình C - Chương 1: Giới thiệu ngôn ngữ C
4 p | 104 | 8
-
Bài giảng Ngôn ngữ lập trình C và C++: Bài 1 - TS. Đỗ Đăng Khoa
53 p | 112 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 5: Các lớp nhập/xuất trong C++
19 p | 132 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ C++) - Chương 2: Giới thiệu về ngôn ngữ lập trình C++
49 p | 137 | 7
-
Bài giảng Ngôn ngữ lập trình C: Chương 1 - PhD. Nguyễn Thị Huyền
12 p | 55 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 3: Lớp và đối tượng
52 p | 112 | 5
-
Bài giảng Ngôn ngữ lập trình C và C++: Bài 4 - TS. Đỗ Đăng Khoa
40 p | 95 | 5
-
Bài giảng Ngôn ngữ lập trình C/C++ (Bài giảng tuần 1) – Nguyễn Hải Châu
7 p | 142 | 5
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 6: Mẫu (template)
27 p | 85 | 4
-
Bài giảng Ngôn ngữ lập trình: Bài 1 - Lý Anh Tuấn
30 p | 82 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn