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ó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.
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é. :D
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
> Đọc thêm: Constructor trong Java
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]
> Đọc thêm: Tất tần tật về List trong Java
Bạn đã biết cách sử dụng từ khóa new trong Java chưa?
Như vậy là chúng ta vừa tìm hiểu xong về 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
---
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: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python