Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 46 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
46
Dung lượng
796 KB
Nội dung
28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 2 Mc tiêu Mc tiêu !"#$%"&$%$'"()*$ +,"-$"$./"0"1$2"34$"5 /"0"1$2"3 !$6$"2"7%62"34 89$$6$:..;9,<=%>"? 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 3 Ni dung Ni dung @A"0"1$2"3 @BC"5/"0"1$2"3 @DE @FG9,<=%>"?H77 @IE6" 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 4 6.1- Phương thức khởi tạo 6.1- Phương thức khởi tạo JK<L9$M$2"3H?$2" Lỗi khởi tạo là một trong các lỗi phổ biến "0"1$2"3 Là phương thức đặc biệt được gọi tự động sau khi tạo ra đối tượng. Nhằm mục đích chính là khởi tạo cho các thuộc tính của đối tượng. 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 5 6.1- Phương thức khởi tạo 6.1- Phương thức khởi tạo NO<?//",$"17-":*>/"0"1$2"3 Có nhiệm vụ tạo ra một thể hiện mới của lớp. Tên của constructor trùng với tên của lớp Constructor không có kiểu dữ liệu trả về Mỗi lần một đối tượng được khai báo, phương thức khởi tạo của lớp được gọi đến nhằm tạo ra một đối tượng mới. - public BankAccount(){ owner = “noname”; } 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 6 6.1- Phương thức khởi tạo 6.1- Phương thức khởi tạo EP2"'7new?$H9$H(H7$6$ *?$"<?/ Cú pháp: Ten_lop ten_doi_tuong = new thuc_khoi_tao(ds_ts); Ví dụ: BankAccount account = new BankAccount(); 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 7 6.1- Phương thức khởi tạo 6.1- Phương thức khởi tạo Circle(double r) { radius = r; } Circle() { radius = 1.0; } myCircle = new Circle(5.0); 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 8 6.1- Phương thức khởi tạo 6.1- Phương thức khởi tạo "0"1$2"32"Q$'6HRH,.4"2" ?P2"'7ST'H,.*>"7*$"!9! *?@ 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 9 6.1- Phương thức khởi tạo 6.1- Phương thức khởi tạo "0"1$2"3$'"(U$6$$"V R"H9W$X/ public private Không có (mặc định – phạm vi package). N>/"0"1$2"32"Q"(U $6$P2"'7abstract4static4final4native4 synchronized@ C6$/"0"1$2"32"Q$ YS*"<thành viên của lớp. 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 10 6.1- Phương thức khởi tạo 6.1- Phương thức khởi tạo "0"1$2"3*Z$R"[S\79< $H9$H] Là phương thức khởi tạo không tham số Java cung cấp sẵn một phương khởi tạo mặc định nếu ta không định nghĩa một phương khởi tạo trong lớp. Phương thức khởi tạo mặc định do Java cung cấp có chỉ định truy cập giống như lớp của nó. Khi đã định nghĩa một phương thức khởi tạo có tham số, nên cung cấp thêm một phương thức khởi tạo mặc định khác. [...]... Phương thức khởi tạo mặc định do Java cung cấp: class BankAccount{ private String owner; private double balance; } public class Test{ public static void main(String args[]) { BankAccount acc1 = new BankAccount(); } } 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 11 6.1- Phương thức khởi tạo Phương thức khởi tạo tự viết: public class BackAccount{ private String owner; private double balance; public BankAccount(){... 31 Nội dung 6.1 Phương thức khởi tạo 6.2 Chồng phương thức khởi tạo 6.3 Sử dụng đối tượng 6.4 Quản lý bộ nhớ trong Java 6.5 So sánh đối tượng 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 32 6.4- Quản lý bộ nhớ trong Java Java không sử dụng con trỏ nên các địa chỉ bộ nhớ không thể bị ghi đè lên một cách ngẫu nhiên hoặc cố ý Không xảy ra các vấn đề cố hữu đối với người dùng như định vị va tái... BankAccount{ private String owner; private double balance; public BankAccount(String name){ setOwner(name); } public void setOwner(String o){ owner = o; } … } … BankAccount account1 = new BankAccount(); //Error BankAccount account2 = new BankAccount(“Hoang”); 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 16 6.2- Chồng phương thức khởi tạo Ví dụ: public class BankAccount{ private String owner; private double balance;... Quản lý bộ nhớ trong Java Bộ nhớ Heap va Stack String s = new String(“hello”); Bộ nhớ Heap sử dụng để ghi thông tin được tạo bởi toán tử new Giá trị cục bộ trong bộ nhớ Stack được sử dụng như con trỏ tham chiếu tới bộ nhớ Heap Giá trị của dữ liệu nguyên thủy được ghi trực tiếp trong stack 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 34 6.4- Quản lý bộ nhớ trong Java Bộ nhớ Heap va Stack String s = new... constructor khác của đối tượng class Foo { int i = 5; public class Circle{ private double rd; public Circle(double r){ this.rd = r; } void setI(int i){ this.i = i } } } 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 13 Nội dung 6.1 Phương thức khởi tạo 6.2 Chồng phương thức khởi tạo 6.3 Sử dụng đối tượng 6.4 Quản lý bộ nhớ trong Java 6.5 So sánh đối tượng 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 14 6.2- Chồng... known_acc = new BankAccount(“Thuy”, 100); } } 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 17 Nội dung 6.1 Phương thức khởi tạo 6.2 Chồng phương thức khởi tạo 6.3 Sử dụng đối tượng 6.4 Quản lý bộ nhớ trong Java 6.5 So sánh đối tượng 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 18 6.3- Sử dụng đối tượng Khai báo va khởi tạo đối tượng Đối tượng được tạo ra, thể hiện hóa (instantiate) từ một mẫu chung... viên hằng Một thuộc tính không thể thay đổi giá trị trong quá trình sử dụng Cú pháp khai báo hằng: chi_dinh_truy_cap final kieu_du_lieu TEN_HANG = gia_tri; Ví dụ: public static final int VAL_THREE = 39; private final int[] A = { 1, 2, 3, 4, 5, 6 }; 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 28 6.3- Sử dụng đối tượng Thành viên hằng Thông thường các hằng số liên quan đến lớp được khai báo là static... Sử dụng đối tượng Khai báo va khởi tạo đối tượng Đối tượng nên được khởi tạo trước khi sử dụng Sử dụng toán tử = để gán Sử dụng toán tử new để khởi tạo một đối tượng: Đối tượng được thao tác thông qua tham chiếu Toán tử new dùng để tạo ra một đối tượng mới Tự động gọi phương thức khởi tạo tương ứng Một đối tượng có thể khởi tạo null Tham chiếu đóng vai trò gần giống như một con... khi truyền như một tham số Truyền tham chiếu đối tượng cho các kiểu dữ liệu tham chiếu Bộ Môn CNPM - ĐHBK Hà Nội 24 6.3- Sử dụng đối tượng Sử dụng đối tượng public class BankAccount{ private String owner; private double balance; public BankAccount(String name){ setOwner(name); } public void setOwner(String o){ owner = o; } public String getOwner(){ return owner; } … } public class Test{ public static... Môn CNPM - ĐHBK Hà Nội 34 6.4- Quản lý bộ nhớ trong Java Bộ nhớ Heap va Stack String s = new String(“hello”); String t = s; 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 35 6.4- Quản lý bộ nhớ trong Java Bộ nhớ Heap va Stack String s = new String(“hello”); String t = s; int i = 201; int j = i; 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 36 . EP2"'7new?$H9$H(H7$6$ *?$"<?/ Cú pháp: Ten_lop ten _doi_ tuong = new thuc_khoi _tao( ds_ts); Ví dụ: BankAccount account = new BankAccount(); 28/07/14 Bộ Môn CNPM. i){ this.i = i } } public class Circle{ private double rd; public Circle(double r){ this.rd = r; } } 28/07/14 Bộ Môn CNPM - ĐHBK Hà Nội 14 Ni dung Ni dung @A"0"1$2"3 @BC"5/"0"1$2"3 @DE @FG9,<=%>"?H77 @IE6" 28/07/14 Bộ. khởi tạo không tham số Java cung cấp sẵn một phương khởi tạo mặc định nếu ta không định nghĩa một phương khởi tạo trong lớp. Phương thức khởi tạo mặc định do Java cung cấp có chỉ định truy