1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng lập trình hướng đối tượng – bài 05 các kỹ thuật xây dựng lớp và sử dụng đối tượng

89 10 0

Đ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

om th a n co ng c Bộ môn Công nghệ Phần mềm Viện CNTT & TT Trường Đại học Bách Khoa Hà Nội cu u du on g LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài 05 Các kỹ thuật xây dựng lớp sử dụng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt om Nội dung .c ng co n th a du on g u Chồng phương thức Thành viên ĐT thành viên lớp Truyền tham số cho phương thức Một số lớp tiện ích Java Ví dụ tập cu CuuDuongThanCong.com https://fb.com/tailieudientucntt om Nội dung .c ng co n th a du on g u Chồng phương thức Thành viên ĐT thành viên lớp Truyền tham số cho phương thức Một số lớp tiện ích Java Ví dụ tập cu CuuDuongThanCong.com https://fb.com/tailieudientucntt Nhắc lại phương thức om c ng co Tên phương thức Số lượng đối số kiểu chúng du on g ◼ th a n ◼ u ◼ Mỗi phương thức phải có chữ ký riêng Chữ ký phương thức bao gồm: cu ◼ CuuDuongThanCong.com https://fb.com/tailieudientucntt 1.1 Chồng phương thức om Chồng phương thức (Method Overloading): Các phương thức lớp trùng tên chữ ký phải khác nhau: Số lượng tham số khác Nếu số lượng tham số kiểu liệu tham số phải khác Mục đích: ◼ Tên trùng để mơ tả chất cơng việc Thuận tiện cho lập trình khơng cần phải nhớ nhiều tên phương thức mà cần nhớ tên lựa chọn tham số cho phù hợp u ◼ cu ◼ du on g ◼ th a n ◼ co ng c ◼ CuuDuongThanCong.com https://fb.com/tailieudientucntt 1.1 Chồng phương thức (2) c ng Phương thức println() System.out.println() có 10 khai báo với tham số khác nhau: boolean, char[], char, double, float, int, long, Object, String, khơng có tham số Khơng cần sử dụng tên khác (chẳng hạn "printString“ "printDouble“) cho kiểu liệu muốn hiển thị u ◼ du on g th a n co ◼ om Ví dụ 1: cu ◼ CuuDuongThanCong.com https://fb.com/tailieudientucntt 1.1 Chồng phương thức (3) co du on g th a n class MyDate { int year, month, day; public boolean setMonth(int m) { …} public boolean setMonth(String s) { …} } ng c om Ví dụ 2: u public class Test{ public static void main(String args[]){ MyDate d = new MyDate(); d.setMonth(9); d.setMonth(”September”); } } cu ◼ CuuDuongThanCong.com https://fb.com/tailieudientucntt Một số ý với chồng phương thức c om Các phương thức xem xét chồng chúng thuộc lớp Chỉ nên sử dụng kỹ thuật với phương thức có mục đích, chức năng; tránh lạm dụng Khi dịch, trình dịch vào số lượng kiểu liệu tham số để định gọi phương thức phù hợp → Nếu không chọn chọn nhiều phương thức báo lỗi u cu ◼ du on g th a n ◼ co ng ◼ CuuDuongThanCong.com https://fb.com/tailieudientucntt Thảo luận om Cho phương thức sau đây: public double test(String a, int b) c ◼ ng Hãy chọn phương thức chồng cho phương thức trên: co n th a du on g void test(String b, int a) public double test(String a) private int test(int b, String a) private int test(String a, int b) double test(double a, int b) double test(int b) public double test(String a, long b) u cu ◼ CuuDuongThanCong.com https://fb.com/tailieudientucntt .c ng co n th a u Điều xảy thực hiện: cu ◼ prt(String s) { System.out.println(s); } f1(char x) { prt("f1(char)"); } f1(byte x) { prt("f1(byte)"); } f1(short x) { prt("f1(short)"); } f1(int x) { prt("f1(int)"); } f1(long x) { prt("f1(long)"); } f1(float x) { prt("f1(float)"); } f1(double x) { prt("f1(double)"); } du on g void void void void void void void void om Thảo luận ◼ ◼ ◼ ◼ f1(5); char x=‘a’; f1(x); byte y=0; f1(y); float z = 0; f1(z);… CuuDuongThanCong.com → int 10 https://fb.com/tailieudientucntt ng Cung cấp đối tượng xâu thay đổi giá trị → Sử dụng StringBuffer khi: n co ◼ c StringBuffer: ◼ th a Cung cấp chế hiệu cho việc xây dựng, ghép nối xâu: u ◼ Dự đốn ký tự xâu thay đổi Khi xử lý xâu cách linh động, ví dụ đọc liệu text từ tệp tin du on g ◼ cu ◼ om 4.4 StringBuffer (3) ◼ Việc ghép nối xâu thường trình biên dịch chuyển sang thực thi lớp StringBuffer 76 CuuDuongThanCong.com https://fb.com/tailieudientucntt 4.4 StringBuffer (4) u du on g th a n co ng c om Tính biến đổi: Nếu đối tượng bị biến đổi, tất quan hệ với đối tượng nhận giá trị cu ◼ 77 CuuDuongThanCong.com https://fb.com/tailieudientucntt 4.4 StringBuffer (5) co ng c om Nếu tạo xâu thơng qua vịng lặp sử dụng StringBuffer u du on g th a n StringBuffer buffer = new StringBuffer(15); buffer.append("This is ") ; buffer.append("String") ; buffer.insert(7," a") ; buffer.append('.'); System.out.println(buffer.length()); // 17 System.out.println(buffer.capacity()); // 32 String output = buffer.toString() ; System.out.println(output); // "This is a String." cu ◼ 78 CuuDuongThanCong.com https://fb.com/tailieudientucntt 4.5 Lớp Math ◼ n Các hàm toán học: ◼ ◼ ◼ ◼ ◼ du on g ◼ Math.E Math.PI th a ◼ co Các toán học: max, abs, floor, ceil… sqrt, pow, log, exp… cos, sin, tan, acos, asin, atan… random u ◼ ng c om java.lang.Math cung cấp thành phần static: cu ◼ 79 CuuDuongThanCong.com https://fb.com/tailieudientucntt 4.5 Lớp Math (2) om Hầu hết hàm nhận tham số kiểu double giá trị trả có kiểu double n Ví dụ : du on g th a ◼ co ng c ◼ Hoặc: cu u Math.pow(Math.E, Math.sqrt(2.0*Math.PI)) Math.exp(Math.sqrt(2.0*Math.PI)) 80 CuuDuongThanCong.com https://fb.com/tailieudientucntt 4.6 Lớp System ng c om java.lang.System chứa nhiều hàm tiện ích hữu dụng co Kiểm soát vào (I/O) chuẩn ◼ ◼ th a n Các luồng InputStream in, PrintStreams out err thuộc tính lớp System Có thể thiết lập lại nhờ hàm setIn(), setOut() setErr() du on g ◼ arraycopy(): Sao chép mảng tập với hiệu cao u ◼ cu ◼ CuuDuongThanCong.com https://fb.com/tailieudientucntt 4.6 Lớp System (2) om currentTimeMillis(): Trả thời gian theo millisecond exit(): Kết thúc hoạt động Java Virtual Machine gc(): Yêu cầu thu gom rác hoạt động co n th a Các phương thức liên quan đến thuộc tính hệ thống: Lấy thơng tin thuộc tính phiên Java Runtime Environment version, thư mục cài đặt Java, du on g ◼ u ◼ cu ◼ ng c ◼ CuuDuongThanCong.com https://fb.com/tailieudientucntt 4.6 Lớp System (3) cu u du on g th a n co ng c om import java.util.Properties; public class PropertiesTest { public static void main(String[] args) { System.out.println(System.getProperty("path.separator")); System.out.println(System.getProperty("file.separator")); System.out.println(System.getProperty("java.class.path")); System.out.println(System.getProperty("os.name")); System.out.println(System.getProperty("os.version")); System.out.println(System.getProperty("user.dir")); System.out.println(System.getProperty("user.home")); System.out.println(System.getProperty("user.name")); } } CuuDuongThanCong.com https://fb.com/tailieudientucntt cu u du on g th a n co ng c om 4.6 Lớp System (4) CuuDuongThanCong.com https://fb.com/tailieudientucntt 4.7 Lớp Random om c th a du on g Hàm khởi tạo có tham số hạt giống để tạo số ngẫu nhiên ◼ ◼ Dùng giá trị để bắt đầu tạo số ngẫu nhiên u ◼ cu ◼ n co ◼ Sử dụng lớp để tạo số ngẫu nhiên Thường dùng để tạo số ngẫu nhiên tùy ý, khơng theo trình tự Hai hàm khởi tạo lớp ng ◼ Hàm khởi tạo khơng có tham số ◼ Sử dụng đồng hồ hệ thống hành để tạo số ngẫu nhiên CuuDuongThanCong.com https://fb.com/tailieudientucntt 4.7 Lớp Random om Ví dụ: import java.util.Random; n co ng c ◼ u n = rand.nextInt(50) + 1; cu int du on g th a Random rand = new Random(); CuuDuongThanCong.com https://fb.com/tailieudientucntt om Nội dung .c ng co n th a du on g u Chồng phương thức Thành viên ĐT thành viên lớp Truyền tham số cho phương thức Một số lớp tiện ích Java Ví dụ tập cu 87 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập u du on g th a n co ng c om Tiếp tập học trước, sử dụng thành viên lớp để cài đặt đếm số đối tượng lớp NhanVien tạo thời điểm nào, đâu Cài đặt minh họa cách thức sử dụng cu ◼ 88 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập u du on g th a n co ng c om Cài đặt phương thức, đầu vào số lượng đối tượng lớp NhanVien, đầu tổng lương đối tượng cu ◼ 89 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập u du on g th a n co ng c om Sử dụng lớp System đếm thời gian phép cộng xâu nhiều lần với String, dùng phương thức append với StringBuffer để so sánh hiệu cu ◼ 90 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... qua lớp Các đối tượng có chung thuộc tính lớp Giá trị thuộc tính lớp đối tượng khác giống n co ◼ th a Thành viên đối tượng ◼ Thuộc tính/phương thức truy cập thơng qua đối tượng ◼ Mỗi đối tượng. .. Từ khóa this om Nhắc lại: Tự tham chiếu đến đối tượng tại, sử dụng bên lớp tương ứng với đối tượng muốn tham chiếu Sử dụng thuộc tính phương thức đối tượng thơng qua tốn tử “.”, ví dụ: n co ◼ ng... chồng phương thức c om Các phương thức xem xét chồng chúng thuộc lớp Chỉ nên sử dụng kỹ thuật với phương thức có mục đích, chức năng; tránh lạm dụng Khi dịch, trình dịch vào số lượng kiểu liệu

Ngày đăng: 28/12/2021, 19:12

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN