Từ khóa New trong Java

Hôm trước, mình đã có 1 bài về từ khóa continue trong Java rồi, hôm nay chúng ta sẽ cùng nhau tìm hiểu tiếp về một từ khóa cũng rất là quan trọng trong Java, đó chính là từ khóa new.

Xin chào tất cả các bạn, chúng ta lại gặp nhau trong loạt bài viết về Java.Hôm trước, mình đã có 1 bài về từ khóarồi, hôm nay chúng ta sẽ cùng nhau tìm hiểu tiếp về một từ khóa cũng rất là quan trọng trong, đó chính là

Từ khóa new trong Java

Từ khóa new trong Java

Vậy từ khóa new trong Java sử dụng để làm cái gì, nó có mài ra ăn được hay không? Chúng ta cùng nhau tìm hiểu nhé. 😀

1. Từ khóa new trong Java là gì?

Đầu tiên, phải khẳng định luôn “new” trong Java là một … từ khóa (keyword).

Vâng, chính vì thế, chúng ta không được đặt tên hàm, phương thức, biến hay bất cứ thứ gì trùng với từ khóa new.

Từ khóa new được sử dụng để cấp phát bộ nhớ cho đối tượng.

Nói rõ hơn đó là:

  • Lúc ta định nghĩa ra một đối tượng, chúng ta chỉ mới tạo ra nó trong “kế hoạch”, trong “tưởng tượng”.

  • Đối tượng chưa thực sự tồn tại vì chưa được cấp phát vùng nhớ trên máy tính.

Tiếp đó, chúng ta dùng new để chính thức cấp phát vùng nhớ cho đối tượng.

Đến lúc này thì đối tượng mới thực sự tồn tại trong chương trình của chúng ta.

Lưu ý: Trong Java có một số lớp đặc trưng không cần dùng từ khóa “new” để tạo đối tượng cho nó, do đó cách sử dụng của nó khá giống với một kiểu dữ liệu, điển hình trong trường hợp này là String.

Lý thuyết nhiêu đó là dư xài rồi, giờ chúng ta sẽ cùng nhau đi đến phần ứng dụng về cách sử dụng từ khóa new trong Java.

2. Những cách sử dụng từ khóa new trong Java?

Từ khóa new được sử dụng chủ yếu trong việc tạo ra đối tượng, giúp ta có thể thao tác với đối tượng đó.

Cú pháp đơn giản của nó:

ViDuNew

 

obj

 = 

new

 

ViDuNew

();
 

Nó thường được sử dụng bằng một số cách sau đây:

Cách 1: Các sử dụng từ khóa new để tạo đối tượng đơn giản

public

 

class

 

ViDuTuKhoaNew1

 {

    

void

 

hienThiThongTin

()

    {

        

System

.

out

.

println

(

“Gọi phương thức hienThiThongTin”

);  

    }

    

public

 

static

 

void

 

main

(

String

[] 

args

) {

        

// Tạo đối tượng mới

        

ViDuTuKhoaNew1

 

obj

 = 

new

 

ViDuTuKhoaNew1

();

        

// Truy cập phương thức của đối tượng

        

obj

.

hienThiThongTin

();

    }  

}
 

Như bạn thấy, sau khi tạo một class và định nghĩa phương thức hienThiThongTin() thì chúng ta chưa truy cập được phương thức đó ngay.

Mà phải tạo một đối tượng (thể hiện) của class đó thì mới truy cập được:

ViDuTuKhoaNew1

 

obj

 = 

new

 

ViDuTuKhoaNew1

();
 

Sau đó, bạn có thể sử dụng đối tượng (thể hiện) vừa tạo để truy cập các phương thức, biến đối tượng của nó.

obj

.

hienThiThongTin

();
 

Kết quả nhận được là:


Gọi đến phương thức hienThiThongTin
 

Cách 2: Sử dụng từ khóa new và tham chiếu đến constructor tương ứng.

Như bạn đã biết, khi tạo đối tượng, chương trình sẽ tự động gọi đến constructor tương ứng (nếu có định nghĩa rõ ràng constructor) hoặc nếu không có thì tự tạo và gọi đến constructor mặc định.

public

 

class

 

ViDuTuKhoaNew2

 {

    

ViDuTuKhoaNew2

() {

        

System

.

out

.

println

(

“Gọi đến constructor tương ứng”

);

    }

    

public

 

static

 

void

 

main

(

String

[] 

args

) {

        

// Tạo đối tượng mới

        

ViDuTuKhoaNew2

 

obj

 = 

new

 

ViDuTuKhoaNew2

();

    }

}
 

Khi chạy chương trình, chúng ta nhận được kết quả là:


Gọi đến constructor tương ứng
 

Constructor trong Java

> Đọc thêm:

Cách 3: Gọi từ khóa new để khởi tạo đối tượng mới có đối số.

Ví dụ, ở đây mình định nghĩa một class là Student và thực hiện get / set cho class này.

class

 

Student

 {

    

private

 

String

 

MSSV

;

    

private

 

String

 

ten

;

    

// Hàm (constructor) khởi tạo đối tượng

    

public

 

Student

(

String

 

MSSV

String

 

ten

) {

        

this

.

MSSV

 = 

MSSV

;

        

this

.

ten

 = 

ten

;

    }

    

// Các hàm get, set thuộc tính của đối tượng

    

public

 

String

 

LayMSSV

() {

        

return

 

this

.

MSSV

;

    }

    

public

 

String

 

LayTen

() {

        

return

 

this

.

ten

;

    }

    

public

 

void

 

DatMSSV

(

String

 

MSSV

) {

        

this

.

MSSV

 = 

MSSV

;

    }

    

public

 

void

 

DatTen

(

String

 

ten

) {

        

this

.

ten

 = 

ten

;

    }

}
 

Tiếp đó mình tạo một class Main (trong cùng file Main.java) để thực hiện một số hành động sử dụng class Student.

class

 

Main

 {

    

public

 

static

 

void

 

main

(

String

[] 

args

) {

        

// Khai báo một đối tượng Student và khởi tạo nó luôn, cùng một dòng lệnh

        

Student

 

student

 = 

new

 

Student

(

“B1714757”

“Tran Thanh Tam”

);

        

// Thao tác với đối tượng vừa được khởi tạo

        

System

.

out

.

println

(

“Trước khi chỉnh sửa:”

);

        

System

.

out

.

println

(

“Mã số sinh viên: “

 + 

student

.

LayMSSV

());

        

System

.

out

.

println

(

“Tên sinh viên: “

 + 

student

.

LayTen

());

        

student

.

DatMSSV

(

“B1704948”

);

        

student

.

DatTen

(

“Nguyen Viet Tu”

);

        

System

.

out

.

println

(

“Sau khi chỉnh sửa:”

);

        

System

.

out

.

println

(

“Mã số sinh viên: “

 + 

student

.

LayMSSV

());

        

System

.

out

.

println

(

“Tên sinh viên: “

 + 

student

.

LayTen

());

    }

}
 

Khi định nghĩa xong class Student thì bạn chưa sử dụng được chúng, chưa gọi đến được các phương thức của nó.

Bởi vì bạn mới chỉ lập một bản kế hoạch thôi.

Sau khi sử dụng từ khóa new, ví dụ như thế này:

Student

 

student

 = 

new

 

Student

(

“B1714757”

“Tran Thanh Tam”

);
 

Thì một sinh viên thực thụ mới được tạo ra (được cấp phát bộ nhớ)

Ở đây, mình truyền đối số trong khi new đối tượng để tận dụng constructor tạo ra các thông tin ban đầu của sinh viên luôn.

Kết quả có được như thế này:


Trước khi chỉnh sửa:
Mã số sinh viên: B1714757
Tên sinh viên: Tran Thanh Tam
Sau khi chỉnh sửa:
Mã số inh viên: B1704948
Tên sinh viên: Nguyen Viet Tu
 

Nếu bạn không tạo đối tượng, thì bạn không thể truy cập, chỉnh sửa như thế này được đâu:

student

.

DatMSSV

(

“B1704948”

);

student

.

DatTen

(

“Nguyen Viet Tu”

);
 

Cách 4: Sử dụng từ khóa new để tạo mảng

Đúng vậy, bạn có thể tạo một mảng bằng cách sử dụng từ khóa new:

public

 

class

 

ViDuTuKhoaNew4

 {  

    

// Tạo một đối tượng mảng

    

static

 

int

 

arr

[]=

new

 

int

[

5

];

    

    

public

 

static

 

void

 

main

(

String

[] 

args

) {  

        

System

.

out

.

println

(

“Độ dài của mảng là: “

+

arr

.

length

);  

    }

}
 

Lưu ý, ta sử dụng từ khóa static khi tạo mảng đối tượng để truy cập mà không cần tạo đối tượng mới.

Kết quả nhận được là:


Độ dài của mảng là: 5
 

Hoặc nếu bạn tạo đối tượng mảng mới trong phương thưc main thì không cần static, ví dụ:

public

 

class

 

ViDuTuKhoaNew4

 {  

    

public

 

static

 

void

 

main

(

String

[] 

args

) {

        

// Tạo một đối tượng mảng

        

int

 

arr

[]=

new

 

int

[

5

];

        

System

.

out

.

println

(

“Độ dài của mảng là: “

+

arr

.

length

);  

    }

}
 

Khi chạy chương trình, chúng ta cũng nhận được kết quả tương tự:


Độ dài của mảng là: 5
 

Cách 5: Sử dụng từ khóa new để khởi tạo Java Collection

Hãy cùng xem ví dụ sử dụng từ khóa new trong Java Collection:

import

 

java

.

util

.*;  

  

public

 

class

 

ViDuTuKhoaNew5

 {  

  

    

public

 

static

 

void

 

main

(

String

[] 

args

) {  

        

List

 

obj

 = 

new

 

ArrayList

();  

        

obj

.

add

(

“Java”

);  

        

obj

.

add

(

“PHP”

);  

        

obj

.

add

(

“Python”

);  

        

System

.

out

.

println

(obj);  

    }

}
 

Kết quả khi chạy chương trình:


[Java, PHP, Python]
 

List trong Java

> Đọc thêm: Tất tần tật về

Bạn đã biết cách sử dụng từ khóa new trong Java chưa?

từ khóa new trong Java, đây một từ khóa cực kì quan trọng đối với Java nói riêng và với lập trình hướng đối tượng nói chung.

Tóm lại là, từ khóa new giúp cho ta cấp phát vùng nhớ cho đối tượng, hay nói cách khác là khởi tạo đối tượng, giúp nó hiện hữu trong chương trình của chúng ta và chúng ta có thể lôi đối tượng ra sử dụng khi cần.

Đây là một từ khóa tối quan trọng, vì vậy các bạn cần nắm vững nó, nó sẽ đi cùng bạn suốt sự nghiệp lập trình viên Java đó.

> Nếu bạn muốn trở thành Lập trình viên Java chuyên nghiệp thì hãy tham khảo ngay lộ trình bài bản như KHÓA HỌC JAVA tại NIIT - ICT Hà Nội. 

Chúng ta còn rất nhiều từ khóa khác trong Java để tìm hiểu. Để trở thành một lập trình viên giỏi, các bạn nhất thiết phải nắm rõ các từ khóa này.

Một số ví dụ điển hình như: abstract, break, final, finally, static, …
           
Sử dụng thành thạo các từ khóa sẽ giúp ích rất nhiều cho chúng ta trong quá trình xây dựng phần mềm.

Vì vậy hãy luyện tập, học Java mỗi ngày bạn nhé.

> Đọc thêm: Tự học Java Cơ bản

Như vậy là chúng ta vừa tìm hiểu xong về, đây một từ khóa cực kì quan trọng đối với Java nói riêng và với lập trình hướng đối tượng nói chung.Tóm lại là, từ khóa new giúp cho ta cấp phát vùng nhớ cho đối tượng, hay nói cách khác là khởi tạo đối tượng, giúp nó hiện hữu trong chương trình của chúng ta và chúng ta có thể lôi đối tượng ra sử dụng khi cần.Đây là một từ khóa tối quan trọng, vì vậy các bạn cần nắm vững nó, nó sẽ đi cùng bạn suốt sự nghiệp lập trình viên Java đó.Chúng ta còn rất nhiều từ khóa khác trong Java để tìm hiểu. Để trở thành một lập trình viên giỏi, các bạn nhất thiết phải nắm rõ các từ khóa này.Một số ví dụ điển hình như:, …Sử dụng thành thạo các từ khóa sẽ giúp ích rất nhiều cho chúng ta trong quá trình xây dựng phần mềm.Vì vậy hãy luyện tập,mỗi ngày bạn nhé.

HỌC VIỆN ĐÀO TẠO CNTT NIIT – ICT HÀ NỘI

Học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!

Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội

SĐT: 02435574074 – 0914939543

Email: [email protected]

Fanpage: https://facebook.com/NIIT.ICT/

 

#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python