Tải bản đầy đủ (.ppt) (46 trang)

06 Tao va su dung doi tuong potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (304.01 KB, 46 trang )









28/07/14
Bộ Môn CNPM - ĐHBK Hà Nội
2
Mc tiêu
Mc tiêu

!"#$%"&$%$'"()*$

+,"-$"$./"0"1$2"34$"5
/"0"1$2"3

!$6$"2"7%62"34


89$$6$:..;9,<=%>"?
28/07/14
Bộ Môn CNPM - ĐHBK Hà Nội
3
Ni dung
Ni dung

@A"0"1$2"3


@BC"5/"0"1$2"3

@DE

@FG9,<=%>"?H77

@IE6"
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"3H?$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

EP2"'7new?$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"32"Q$'6HRH,.4"2"
?P2"'7ST'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"32"Q"(U
$6$P2"'7abstract4static4final4native4
synchronized@

C6$/"0"1$2"32"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.
28/07/14
Bộ Môn CNPM - ĐHBK Hà Nội
11
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"77
$9$:/
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
12
6.1- Phương thức khởi tạo

6.1- Phương thức khởi tạo

"0"1$2"3^!
public class BackAccount{
private String owner;
private double balance;
public BankAccount(){
owner = ”noname”;
}
}
public class Test{
public static void main(String args[]){
BankAccount acc1 = new BankAccount();
}
}
28/07/14
Bộ Môn CNPM - ĐHBK Hà Nội
13
6.1- Phương thức khởi tạo
6.1- Phương thức khởi tạo

P2"'7this

Dùng this để:

thay thế cho đối tượng hiện tại.

gọi các constructor khác của đối
tượng.
class Foo {

int i = 5;

void setI(int 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
Ni dung
Ni dung

@A"0"1$2"3

@BC"5/"0"1$2"3

@DE

@FG9,<=%>"?H77

@IE6"
28/07/14
Bộ Môn CNPM - ĐHBK Hà Nội

15
6.2- Chồng phương thức khởi
6.2- Chồng phương thức khởi
tạo
tạo

H".9_""92"6$"797$M
2"3"S".9$6$"2"6$
"79
CMY`W^$6$/"0"1$2"3
2"6$"79$"@

C6$/"0"1$2"3?$6$"7*
2"6$"79"S9W8<=$"5/"0
"1$

L$$"5/"0"1$2"3#/
$"#7$'".9$6$"<^7$"&(2"3
@
28/07/14
Bộ Môn CNPM - ĐHBK Hà Nội
16
6.2- Chồng phương thức khởi
6.2- Chồng phương thức khởi
tạo
tạo

-
public class 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
17
6.2- Chồng phương thức khởi
6.2- Chồng phương thức khởi
tạo
tạo

-
public class BankAccount{
private String owner;
private double balance;
public BankAccount(){owner = “noname”;}
public BankAccount(String o, double b){
owner = o;
balance = b;
}
}

public class Test{
public static void main(String args[]){
BankAccount unknown_acc = new BankAccount();
BankAccount known_acc =
new BankAccount(“Thuy”, 100);
}
}
28/07/14
Bộ Môn CNPM - ĐHBK Hà Nội
18
Ni dung
Ni dung

@A"0"1$2"3

@BC"5/"0"1$2"3

@DE

@FG9,<=%>"?H77

@IE6"
28/07/14
Bộ Môn CNPM - ĐHBK Hà Nội
19
6.3- Sử dng đối tượng
6.3- Sử dng đối tượng

"7%62"3


a$H74"("L"'7
[77S]P*>*b9$"9[<?/]@

C6$/",$2"7%6kiểu $c7
H?$2"

Kiểu của đối tượng là lớp các đối
tượng

Ví dụ:

String strName;

BankAccount acc;
28/07/14
Bộ Môn CNPM - ĐHBK Hà Nội
20
6.3- Sử dng đối tượng
6.3- Sử dng đối tượng

"7%62"3

a8$2"3H?$2"

Sử dụng toán tử = để gán

Sử dụng toán tử new để khởi tạo một đối
tượng:

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

a$"76$"Q;97tham chiếu

Tham chiếu đóng vai trò gần giống như một con
trỏ.

-
BankAccount acc1;
acc1 = new BankAccount();
28/07/14
Bộ Môn CNPM - ĐHBK Hà Nội
21
6.3- Sử dng đối tượng
6.3- Sử dng đối tượng

"7%62"3

N,$6$$2"7%6
"*,K<L9$0%,

N,$6$$2"3*Z$
R"?6HRnull@

-
Employee emp1 = new Employee(123456);
Employee emp2;

emp2 = emp1;
Department dept[] = new Department[100];
Test[] t = {new Test(1),new Test(2)};
28/07/14
Bộ Môn CNPM - ĐHBK Hà Nội
22
6.3- Sử dng đối tượng
6.3- Sử dng đối tượng

E

a$9$:/$6$">/"1$
/"0$6$2(9K<L99W8"cW

a6/1<$6$"QL/

Toán tử "." được sử dụng để gửi một
thông điệp đến một đối tượng
28/07/14
Bộ Môn CNPM - ĐHBK Hà Nội
23
6.3- Sử dng đối tượng
6.3- Sử dng đối tượng

E

a(&""8[K<L9"Z$"9>$-"]
$c7<?/"Z$46d@e

!9&/"0"1$7WH<?/"_

6d@e2"Q$M"!
28/07/14
Bộ Môn CNPM - ĐHBK Hà Nội
24
6.3- Sử dng đối tượng
6.3- Sử dng đối tượng

E

Truyền tham số cho phương thức:

Truyền giá trị với các kiểu dữ liệu
cơ bản

Các giá trị nguyên thủy không thể thay đổi 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
28/07/14
Bộ Môn CNPM - ĐHBK Hà Nội
25
6.3- Sử dng đối tượng
6.3- Sử dng đối tượng

E
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 void main(String args[]){
BankAccount acc1 = new BankAccount();
acc1.setOwner(“Hoa”);
BankAccount acc2 = new BankAccount(“Hong”);
System.out.println(acc1.getOwner()
+ acc2.getOwner());
}

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×