1. Trang chủ
  2. » Nông - Lâm - Ngư

Tao Va Su Dung Doi Tuong Trong Java

46 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

Thông tin cơ bản

Định dạng
Số trang 46
Dung lượng 779,5 KB

Nội dung

 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[r]

(1)

LẬP TRÌNH JAVA

LẬP TRÌNH JAVA

Bài 6

Bài 6: Tạo và sử dụng đối : Tạo và sử dụng đối tượng

(2)

Nội dung 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

(3)

Mục tiêu Mục tiêu

 Kết thúc bài học bạn có thể nắm được:

 Giải thích phương thức khởi tạo, chồng

phương thức khởi tạo

 Biết cách khai báo và khởi tạo đối tượng, sử dụng

đối tượng

(4)

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

 Dữ liệu cần khởi tạo trước sử

dụng

 Lỗi khởi tạo lỗi phổ biến

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

 Là phương thức đặc biệt gọi tự động

sau tạo đối tượng

 Nhằm mục đích khởi tạo cho

(5)

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

 Mỗi lớp phải chứa phương

thức khởi tạo

 Có nhiệm vụ tạo thể lớp  Tên constructor trùng với tên lớp

 Constructor khơng có kiểu liệu trả

 Mỗi lần đối tượng khai báo, phương thức khởi tạo lớp gọi đến nhằm tạo đối tượng

 Ví dụ:

(6)

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

 Sử dụng từ khóa new với constructor để

tạo đối tượng cho lớp:

 Cú pháp:

Ten_lop ten_doi_tuong = new thuc_khoi_tao(ds_ts);

 Ví dụ:

(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; }

(8)

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

 Phương thức khởi tạo khơng có giá trị

trả về, sử dụng với từ khóa

(9)

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

 Phương thức khởi tạo có thể dùng

định truy cập

publicprivate

 Khơng có (mặc định – phạm vi package)

 Một phương thức khởi tạo không thể dùng

các từ khóa abstract, static, final, native,

synchronized

 Các phương thức khởi tạo không xem

(10)

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

 Phương thức khởi tạo mặc định (default

constructor)

 Là phương thức khởi tạo không tham số

 Java cung cấp sẵn phương khởi tạo mặc định ta không định nghĩa phương khởi tạo lớp

 Phương thức khởi tạo mặc định Java cung cấp có định truy cập giống lớp

 Khi định nghĩa phương thức khởi tạo có

(11)

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

 Phương thức khởi tạo mặc định Java cung

cấp:

class BankAccount{

private String owner;

private double balance; }

public class Test{

public static void main(String args[]) {

(12)

6.1- Phương thức khởi tạo 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(){

owner = ”noname”; }

}

public class Test{

(13)

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

 Từ khóa this

 Dùng this để:

 thay cho đối tượng

 gọi constructor khác đố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;

(14)

Nội dung 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

(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

 Trong nhiều tình khác ta cần khởi

tạo đối tượng theo nhiều cách khác

 Cần xây dựng phương thức khởi tạo

khác cho đối tượng

 Các phương thức khởi tạo với tham số khác

nhau theo nguyên lý chồng phương thức

 Việc chồng phương thức khởi tạo giúp

(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

 Ví dụ:

public class BankAccount{ private String owner; private double balance;

public BankAccount(String name){ setOwner(name);

}

public void setOwner(String o){ owner = o;

} }

(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

 Ví dụ:

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 =

(18)

Nội dung 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

(19)

6.3- Sử dụng đối tượng 6.3- Sử dụng đối tượng

Khai báo khởi tạo đối tượng

 Đối tượng tạo ra, thể hóa

(instantiate) từ mẫu chung (lớp)

 Các đối tượng phải khai báo kiểu đối

tượng trước sử dụng:

 Kiểu đối tượng lớp đối tượng  Ví dụ:

(20)

6.3- Sử dụng đối tượng 6.3- Sử dụng đối tượng

Khai báo khởi tạo đối tượng

 Đối tượng nên khởi tạo trước sử dụng

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

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

 Toán tử new dùng để tạo đối tượng  Tự động gọi phương thức khởi tạo tương ứng  Một đối tượng khởi tạo null

 Đối tượng thao tác thông qua tham chiếu

 Tham chiếu đóng vai trị gần giống trỏ

(21)

6.3- Sử dụng đối tượng 6.3- Sử dụng đối tượng

Khai báo khởi tạo đối tượng

 Mảng đối tượng khai báo giống

mảng liệu

 Mảng đối tượng khởi tạo mặc định với

giá trị null.

 Ví dụ:

Employee emp1 = new Employee(123456); Employee emp2;

(22)

6.3- Sử dụng đối tượng 6.3- Sử dụng đối tượng

Sử dụng đối tượng

 Đối tượng cung cấp hoạt động phức tạp

hơn kiểu liệu nguyên thủy

 Đối tượng đáp ứng lại thông điệp

(23)

6.3- Sử dụng đối tượng 6.3- Sử dụng đối tượng

Sử dụng đối tượng

 Để gọi thành viên (dữ liệu thuộc tính)

lớp đối tượng, sử dụng toán tử “.”

 Nếu gọi phương thức lớp toán tử

(24)

6.3- Sử dụng đối tượng 6.3- Sử dụng đối tượng

Sử dụng đối tượng

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

 Truyền giá trị với kiểu liệu

 Các giá trị nguyên thủy thay đổi truyền

như tham số

 Truyền tham chiếu đối tượng cho kiểu liệu

(25)

6.3- Sử dụng đối tượng 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 void main(String args[]){ BankAccount acc1 = new BankAccount(); acc1.setOwner(“Hoa”);

(26)

6.3- Sử dụng đối tượng 6.3- Sử dụng đối tượng

Thành viên static

 Nếu muốn sử dụng mà không muốn tạo đối

tượng lớp  Khai báo static

 Thành viên static thuộc lớp

 Thay đổi giá trị thành viên static đối

tượng lớp thay đổi giá trị thành viên tất đối tượng khác lớp

 Các thành viên tĩnh truy cập mà khơng cần

(27)

6.3- Sử dụng đối tượng 6.3- Sử dụng đối tượng

Thành viên static class TestStatic{

public static int iStatic; public int iNonStatic;

}

public class TestS {

public static void main(String[] args) { TestStatic obj1 = new TestStatic();

obj1.iStatic = 10; obj1.iNonStatic = 11;

System.out.println(obj1.iStatic+”,”+obj1.iNonStatic); TestStatic obj2 = new TestStatic();

(28)

6.3- Sử dụng đối tượng 6.3- Sử dụng đối tượng

Thành viên hằng

 Một thuộc tính khơng thể thay đổi giá trị

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;

(29)

6.3- Sử dụng đối tượng 6.3- Sử dụng đối tượng

Thành viên hằng

 Thông thường số liên quan đến lớp

được khai báo static final nhằm giúp

truy cập dễ dàng

 Một quy ước chung sử dụng ký tự

(30)

6.3- Sử dụng đối tượng 6.3- Sử dụng đối tượng

Mảng đối tượng

 Khai báo tạo mảng đối tượng:

Circle[] circleArray = new Circle[10];

 Khởi tạo:

for(int i=0; i<circleArray.length; i++){ circleArray[i] = new Circle();

(31)

6.3- Sử dụng đối tượng 6.3- Sử dụng đối tượng

Mảng đối tượng

Circle[] circleArray = new Circle[10];

 Một mảng đối tượng thực chất mảng biến

tham chiếu Do gọi circleArray[1].findArea() gọi mức tham chiếu: circleArray tham chiếu toàn mảng, circleArray[1] tham chiếu tới đối

tượng Circle

reference circleArray[0] Circle object

circleArray

circleArray[1]

(32)

Nội dung 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

(33)

6.4- Quản lý bộ nhớ Java 6.4- Quản lý bộ nhớ Java

 Java không sử dụng trỏ nên địa

nhớ bị ghi đè lên cách ngẫu nhiên cố ý

 Không xảy vấn đề cố hữu người

dùng định vị tái định vị nhớ, quản lý nhớ JVM kiểm sốt

 Lập trình viên không cần quan tâm đến việc ghi

(34)

6.4- Quản lý bộ nhớ Java 6.4- Quản lý bộ nhớ Java

 Bộ nhớ Heap Stack

Bộ nhớ Heap sử dụng để ghi thơng tin tạo tốn tử new

String s = new String(“hello”);

Giá trị cục nhớ Stack sử dụng trỏ tham chiếu tới nhớ Heap

(35)

6.4- Quản lý bộ nhớ Java 6.4- Quản lý bộ nhớ Java

 Bộ nhớ Heap Stack

(36)

6.4- Quản lý bộ nhớ Java 6.4- Quản lý bộ nhớ Java

 Bộ nhớ Heap Stack

String s = new String(“hello”); String t = s;

(37)

6.4- Quản lý bộ nhớ Java 6.4- Quản lý bộ nhớ Java

 Bộ thu gom rác

 Một tiến trình chạy ngầm gọi đến “thu gom rác” để phục hồi lại phần nhớ mà đối tượng không

tham chiếu đến ( tái định vị)

 Các đối tượng khơng có tham chiếu đến gán null  Bộ thu gom rác định kỳ quét qua danh sách đối

(38)

6.4- Quản lý bộ nhớ Java 6.4- Quản lý bộ nhớ Java

 Bộ thu gom rác

 JVM định thực việc thu gom

rác:

 Thông thường thực thi thiếu nhớ  Tại thời điểm khơng dự đốn trước

 Khơng thể ngăn trình thực thu

gom rác yêu cầu thực sớm hơn:

(39)

6.4- Quản lý bộ nhớ Java 6.4- Quản lý bộ nhớ Java

 Bộ thu gom rác

 Phương thức finalize()

 Sẽ thực thi trước trình thu gom xảy

 Phương thức thường sử dụng cho

trường hợp đặc biệt (ví dụ xóa vùng nhớ) tính khơng dự đốn trước thu gom rác

 Các vấn đề mở sockets, files, nên xử lý luồng chương trình trước đối

tượng ngắt bỏ tham chiếu

(40)

Nội dung 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

(41)

6.5- So sánh đối tượng 6.5- So sánh đối tượng

 Toán tử quan hệ ==

 Đối với kiểu liệu nguyên thủy, tốn tử == kiểm tra xem chúng có giá trị hay khơng

 Ví dụ:

int a = 1; int b = 1;

(42)

6.5- So sánh đối tượng 6.5- So sánh đối tượng

 Toán tử quan hệ ==

 Đối với đối tượng, toán tử == kiểm tra xem hai đối tượng có đồng hay khơng, có tham chiếu

đến đối tượng hay khơng  Ví dụ:

Employee a = new Employee(1); Employee b = new Employee(1); if (a==b) // false

Employee a = new Employee(1); Employee b = a;

(43)

6.5- So sánh đối tượng 6.5- So sánh đối tượng

 Phương thức equals

 Đối với kiểu liệu nguyên thủy => Không tồn  Đối với đối tượng: Bất kỳ đối tượng có

phương thức

(44)

6.5- So sánh đối tượng 6.5- So sánh đối tượng

 Phương thức equals

public class Equivalence {

public static void main(String[] args) { Integer n1 = new Integer(47);

Integer n2 = new Integer(47); System.out.println(n1 == n2); System.out.println(n1 != n2); }

(45)

6.5- So sánh đối tượng 6.5- So sánh đối tượng

 Phương thức equals

public class EqualsMethod {

public static void main(String[] args) { Integer n1 = new Integer(47);

Integer n2 = new Integer(47);

(46)

6.5- So sánh đối tượng 6.5- So sánh đối tượng

 Phương thức equals

class Value { int i;

}

public class EqualsMethod2 {

public static void main(String[] args) { Value v1 = new Value();

Value v2 = new Value(); v1.i = v2.i = 100;

System.out.println(v1.equals(v2)); }

Ngày đăng: 22/05/2021, 21:33

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w