JavaLeaning3: Sử dụng biến và hằng trong Java
Biến là một thứ rất quan trọng và bạn sẽ phải làm việc với nó rất nhiều khi lập trình, vậy nên hãy cùng mình tìm hiểu về biến nhé
I) Biến là cái gì vậy?
Như trong toán học thôi, biến sử dụng để biểu thị cho một cái gì đó, cụ thể ở trong lập trình là các đối tượng. Biến thì có 3 thuộc tính là:
- Loại biến.
- Tên biến.
- Giá trị của biến.
1. Các loại biến:
Trong lập trình thì có rất nhiều loại biến khác nhau, bây giờ hãy cùng mình tìm hiểu về chúng nhé.
a) Kiểu biến nguyên thuỷ (Primitive Data Type)
Tên tiếng anh của kiểu biến này là .Trong Java thì mọi thứ đều là hướng đối tượng và nó được tạo ra từ các Class
, cấu trúc khác nhau. Nhưng vẫn có những loại biến không được tạo ra từ các cấu trúc, đó chính là các kiểu biến nguyên thuỷ.
Nhìn thì có vẻ lằng nhằng nhỉ @@ Bây giờ chúng ta sẽ đi tìm hiểu về từng cái một nhé.
- Kiểu số nguyên
(int, long, short, byte)
:
Đây là các loại biến dùng để biểu thị cho một số nguyên, tùy vào loại biến mà nó có giới hạn biểu thị khác nhau.
Kiểu biến | Giá trị giới hạn | Bộ nhớ lưu trữ |
---|---|---|
int | Từ –2,147,483,648 Đến 2,147,483,647 | 4 bytes |
long | Từ –9,223,372,036,854,775,808 Đến 9,223,372,036,854,775,807 | 8 bytes |
short | Từ –32,768 Đến 32,767 | 2 bytes |
byte | Từ –128 Đến 127 | 1 byte |
Các bạn có thể thấy, có những loại biến có giới hạn rất nhỏ nhưng cũng có các loại biến có giới hạn rất lớn. Vậy nên việc chọn lựa sử dụng dạng biến nào cũng rất quan trọng trong lập trình. Mà thực ra thì mình thấy hầu hết mọi người dùng kiểu int
và long
là chính chứ hai cái còn lại hầu như bị quên lãng rồi
- Kiểu số thực
(float, double)
:
Loại biến này cũng giống như kiểu số nguyên thôi, khác mỗi là nó dùng để biểu thị các số thực
Kiểu biến | Giá trị bé nhất | Giá trị lớn nhất | Bộ nhớ lưu trữ |
---|---|---|---|
float | 1.4E-45 | 3.4028235E38 | 4 bytes |
double | 4.9E-324 | 1.7976931348623157E308 | 8 bytes |
- Kiểu ký tự
(char)
Đây là kiểu biến sử dụng để thể hiện cho một ký tự duy nhất và giá trị của nó luôn được đặt trong dấu nháy đơn ''
.
Ví dụ: ‘a’, ‘b’; ‘c’;…
- Kiểu luận lý
boolean
:
Đây là kiểu biến rất đặc biệt vì nó chỉ có đúng 2 giá trị là true
hoặc false
. Kiểu biến này thường được sử dụng để khi kiểm tra điều kiện nào đó.
Ví dụ: kiểm tra xem 3 > 1 hay không? Ta sẽ sử dụng kiểu biến boolean
và sẽ cho ra kết quả là true
.
b) Kiểu biến tham chiếu (Reference Data Type)
Kiểu biến này thì lại khác hoàn toàn với kiểu nguyên thủy. Nó là sự kết hợp của các kiểu biến nguyên thủy với nhau và được khởi tạo bởi các Class
hay cấu trúc để định hình các thuộc tính cho nó. Loại biến tham chiếu hay được sử dụng nhất là String
hay còn gọi là chuỗi. Trong thực tế, 1 chuỗi là sự kết hợp từ các ký tự với nhau, ví dụ như chuỗi “DAN” là sự kết hợp của 3 ký tự ‘D’; ‘A’; ‘N’ và trong lập trình Java cũng vậy. String
cũng là sự kết hợp giữa các char
với nhau.
Ngoài ra, các kiểu biến nguyên thủy cũng có dạng tham chiếu. Bạn có thể thấy thì tên của các kiểu biến nguyên thủy đều viết thường chữ cái đầu tiên (int; boolean;…), còn dạng tham chiếu của chúng sẽ được viết hoa chữ đầu tiên, chỉ ngoại trừ kiểu int
thì sẽ có dạng tham chiếu là Integer
. Ví dụ như: Boolean, Float, Long, ...
.
Vậy thì tại sao lại có dạng tham chiếu này? Như mình đã từng viết ở trên, các kiểu tham chiếu được khởi tạo từ các Class, cấu trúc, vì vậy chính bản thân của các biến tham chiếu sẽ có các thuộc tình hay hàm bên trong nó @@ Và ta sẽ sử dụng đến các thuộc tính, hàm đó rất nhiều trong lập trình đó Nghe ban đầu có vẻ hàn lâm, nhưng khi bạn học thêm tiếp đến Class
thì sẽ hiểu rõ hơn thôi, chờ bài viết đó của mình nhé
c) Quy tắc đặt tên cho biến:
Sau đây là một số quy tắc mà bạn nhất định phải chú ý nhé:
- Tên của biến luôn phải viết thường chữ cái đầu tiên.
- Tên biến nên được bắt đầu bắt các chữ cái chứ không nên bắt đầu bằng số hay các ký tự đặc biệt.
- Tên của biến luôn phải viết liền chứ không có khoảng cách.
- Tên của biến sẽ không được trùng với các
Keyword
sau:
2. Cách khai báo biến:
Chúng ta có 2 cách khai báo biến khác nhau trong Java. Việc chọn cách khai báo cũng rất quan trọng nên bắt đầu tìm hiểu thôi
a) Khai báo biến cục bộ:
-
Đây là loại biến được đặt bên trong hàm hoặc cấu trúc và nó chỉ có tác dụng ở bên trong nội hàm và cấu trúc đó thôi. Giống như chỉ có nhà bạn sử dụng được cửa nhà bạn chứ nhà hàng xóm đâu thể sử dụng được.
-
Cách khai báo: Ta có cấu trúc sau
[Kiểu biến] [tên biến]; // Tạo ra 1 biến với giá trị mặc định của nó.
[Kiểu biến] [tên biến] = [Giá trị biến]; // Khai báo 1 mới và gán giá trị cho nó.
*) Các bạn chú ý là chúng ta phải khai báo biến cục bộ ở bên trong hàm nhé :))
- Ví dụ:
public class Bien
{
public static void main(String[] args) {
int i; // khai báo biến i với giá trị mặc định
int a = 0; // khai báo biến a với giá trị = 0
}
}
b) Khai báo biến toàn cục:
-
Đây là loại biến được đặt bên ngoài các hàm hoặc cấu trúc và nó có tác dụng với mọi hàm, cấu trúc ở cùng 1
Class
. Nếu nhà bạn phải đi qua 1 cái cổng chính thì mới vào được khu dân cư thì cái cổng đó chính là biến toàn cục (cả bạn hay hàng xóm trong cùng khu dân cư đều có thể sử dụng). -
Cách khai báo: Tương tự như biến cục bộ nhưng khác một chút ở cấu trúc
[Access modifier] [static] [kiểu biến] [Tên biến];
[Access modifier] [static] [kiểu biến] [Tên biến] = [Giá trị];
Access modifier là gì:
Access Modifer trong Java dùng xác định phạm vi có thể truy cập của thành viên dữ liệu, phương thức, cấu trúc hoặc Class. Có 4 loại Access modifier, nhưng chúng ta sẽ chỉ tìm hiểu trước 2 khái niệm, 2 cái còn lại thì mình sẽ giải thích từ từ nhé
-
public
: Biến có phạm vi rộng nhất, có thể được truy cập từ mọi nơi. Giống như việc mọi người có thể tự do ra vào nhà bạn vậy :)) -
private
: Biến có phạm vi sử dụng ở nội bộ củaClass
, cấu trúc của nó chứ không thể được sử dụng bởi cácClass
khác.
static là gì:
Đây là một từ khóa giúp cho hệ thống quản lý bộ nhớ tốt hơn. Biến static có thể được sử dụng để tham chiếu thuộc tính chung của tất cả các đối tượng (không phải là duy nhất cho mỗi đối tượng). Việc sử dụng static cho những biến nào thì còn tùy thuộc vào trường hợp mà bạn sử dụng Nhưng hầu hết bây giờ chúng ta chưa cần dùng đến nó vội đâu.
- Ví dụ:
public class Bien
{
public int i; // Khai báo biến cục bộ i với thuộc tính public
private int a = 34; // Khai báo biến cục bộ a với thuộc tính private và giá trị = 34
public static void main(String[] args)
{
}
}
3. Giá trị mặc định của biến:
Khi ta khai báo biến mà chưa gán giá trị cho nó, hệ thông sẽ sử dụng dùng các giá trị mặc định để gán vào biến đó.
Loại biến | Giá trị mặc định |
---|---|
Kiểu số nguyên | 0 |
float | 0.0f |
double | 0.0d |
boolean | false |
char | ‘\u0000’ = null |
Kiểu tham chiếu | null |
4. Gán giá trị cho biến
Để gán giá trị mới cho biến thì rất đơn giản, ta sẽ sử dụng dấu =
, hãy nhìn ví dụ bên dưới nhé
public class Bien
{
public static void main(String[] args)
{
int i = 2; // tạo biến
System.out.println(i); // in biến
i = 3; // gán giá trị mới
System.out.println(i); // kiểm tra
}
}
Và ta sẽ được đoạn Output sau:
2
3
Vậy là giá trị của biến i
đã được thay đổi từ 2 --> 3 rồi :))
II) Hằng số
- Hằng số cũng giống như biến, nhưng nó không thể nào thay đổi giá trị.
- Để khai báo hằng số, ta sẽ thêm từ khóa
final
vào trước[Kiểu biến]
.
Ví dụ:
public class Bien
{
public final int i = 0; // khai báo hằng toàn cục
public static void main(String[] args)
{
final String str = "D.A.N_3002"; // khai báo hằng cục bộ
}
}
III) Cách in biến ra Console
Ta có thể in trực tiếp biến ra bằng cách 2 cách sau:
public class Bien
{
public static int i = 15;
public static void main(String[] args)
{
String str = "D.A.N_3002";
// in trực tiếp
System.out.println(str);
// in nhiều biến cùng lúc
System.out.println("My Name is " + str);
System.out.println("Im " + i);
}
}
Ta sẽ được Output sau:
D.A.N_3002
My Name is D.A.N_3002
Im 15
IV) Tổng kết:
Vì chúng ta chắc chắn sẽ không nhớ được số kiến thức trên, nên ta có phần tổng kết
- Biến sử dụng để biểu thị cho dữ liệu.
- Có rất nhiều kiểu biến khác nhau, dùng kiểu biến nào là tùy vào trường hợp thực tế.
- Hằng số giống biến, nhưng nó không thể thay đổi giá trị được.
- Để thay đổi giá trị biến, ta dùng dấu
=
- Có 2 cách để in biến.
Bài tập
*Bài 1: Viết chương trình in ra họ và tên; tuổi và giới tính của bạn có phải Nam không?. Các thông tin trên phải được chứa ở biến.
Solution
public class Bien
{
public static void main(String[] args)
{
String ten = "D.A.N_3002";
int tuoi = 15;
boolean isMale = true;
System.out.println("Tên tôi là " + ten);
System.out.println("Tôi " + tuoi + " tuổi");
System.out.println("Tôi có phải Nam không?: " + isMale);
}
}
Bài 2: Viết chương trình in ra số PI, số PI không đổi nên bạn hãy tạo hằng số.
Solution
public class Bien
{
public static void main(String[] args)
{
final float PI = 3.14;
System.out.println("Số PI: " + PI);
}
}
Cảm ơn các bạn rất nhiều khi đã đọc đến đây, nếu các bạn thấy bài viết này hay và ủng hộ mình thì có thể Star Repo này trên GitHub: https://github.com/DAN3002/Java-Vietnamese.