Kiểu dữ liệu, toán tử, function (hàm), variable (biến), object (đối tượng), class (lớp)
Trong java, biến là tên của vùng nhớ. Có 3 kiểu biến trong java, bao gồm biến local (biến địa phương), biến instance (biến toàn cục) và biến static.
Nội dung chính
Cú pháp khai báo biến:
DataType varName [ = value] [, varName2] [ = value2]...;
JavaCopy
Trong đó, DataType là kiểu dữ liệu của biến, varName là tên biến.
Quy tắc đặt tên biến trong java:
Ví dụ về khai báo biến trong java:
Ví dụ 1: Khởi tạo biến local:
package anhtester.bienvadulieu;
public class Bien {
public void sayHello() {
int n = 10; // Đây là biến local
System.out.println("Gia tri cua n la: " + n);
}
public static void main(String[] args) {
Bien bienLocal = new Bien();
bienLocal.sayHello();
}
}
JavaCopy
Kết quả:
Gia tri cua n la: 10
JavaCopy
Ví dụ 2: Không khởi tạo biến local:
public class Bien {
public void sayHello() {
int n; // Đây là biến local
System.out.println("Gia tri cua n la: " + n);
}
public static void main(String[] args) {
Bien bienLocal = new Bien();
bienLocal.sayHello();
}
}
JavaCopy
Kết quả:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The local variable n may not have been initialized
JavaCopy
Khi không khởi tạo biến local, chương trình java sẽ báo lỗi khi biên dịch.
Ví dụ về biến instance trong java:
package anhtester.bienvadulieu;
public class Sinhvien {
// biến instance "ten" kiểu String, có giá trị mặc định là null
public String ten;
// biến instance "tuoi" kiểu Integer, có giá trị mặc định là 0
private int tuoi;
// sử dụng biến ten trong một constructor
public Sinhvien(String ten) {
this.ten = ten;
}
// sử dụng biến tuoi trong phương thức setTuoi
public void setTuoi(int tuoi) {
this.tuoi = tuoi;
}
public void showStudent() {
System.out.println("Ten : " + ten);
System.out.println("Tuoi : " + tuoi);
}
public static void main(String args[]) {
Sinhvien sv = new Sinhvien("Nguyen Van A");
sv.setTuoi(21);
sv.showStudent();
}
}
JavaCopy
Kết quả:
Ten : Nguyen Van A
Tuoi : 21
JavaCopy
Ví dụ về biến static trong java:
package anhtester.bienvadulieu;
public class Sinhvien {
// biến static 'ten'
public static String ten = "Nguyen Van A";
// biến static 'tuoi'
public static int tuoi = 21;
public static void main(String args[]) {
// Sử dụng biến static bằng cách gọi trực tiếp
System.out.println("Ten : " + ten);
// Sử dụng biến static bằng cách gọi thông qua tên class
System.out.println("Ten : " + Sinhvien.tuoi);
}
}
JavaCopy
Kết quả:
Ten : Nguyen Van A
Ten : 21
JavaCopy
Trong Java, các kiểu dữ liệu được chia thành hai loại:
Nội dung chính
Java cung cấp các kiểu dữ liệu cơ bản như sau:
Kiểu dữ liệu | Mô tả |
---|---|
String | Dùng để lưu dữ liệu kiểu chuỗi. VD: “Automation Test”, “Selenium”,… Dạng này dùng rất nhiều. |
byte | Dùng để lưu dữ liệu kiểu số nguyên có kích thước một byte (8 bít). Phạm vi biểu diễn giá trị từ -128 đến 127. Giá trị mặc định là 0. |
char | Dùng để lưu dữ liệu kiểu kí tự hoặc số nguyên không âm có kích thước 2 byte (16 bít). Phạm vi biểu diễn giá trị từ 0 đến u\ffff. Giá trị mặc định là 0. |
boolean | Dùng để lưu dữ liệu chỉ có hai trạng thái đúng hoặc sai (độ lớn chỉ có 1 bít). Phạm vi biểu diễn giá trị là {“True”, “False”}. Giá trị mặc định là False. |
short | Dùng để lưu dữ liệu có kiểu số nguyên, kích cỡ 2 byte (16 bít). Phạm vi biểu diễn giá trị từ – 32768 đến 32767. Giá trị mặc định là 0. |
int | Dùng để lưu dữ liệu có kiểu số nguyên, kích cỡ 4 byte (32 bít). Phạm vi biểu diễn giá trị từ -2,147,483,648 đến 2,147,483,647. Giá trị mặc định là 0. |
long | Dùng để lưu dữ liệu có kiểu số nguyên có kích thước lên đến 8 byte. Giá trị mặc định là 0L. |
float | Dùng để lưu dữ liệu có kiểu số thực, kích cỡ 4 byte (32 bít). Giá trị mặc định là 0.0F. |
double | Dùng để lưu dữ liệu có kiểu số thực có kích thước lên đến 8 byte. Giá trị mặc định là 0.00D |
Trong Java có 3 kiểu dữ liệu đối tượng:
Kiểu dữ liệu | Mô tả |
---|---|
Array | Một mảng của các dữ liệu cùng kiểu. |
class | Dữ liệu kiểu lớp đối tượng do người dùng định nghĩa. Chứa tập các thuộc tính và phương thức.. |
interface | Dữ liệu kiểu lớp giao tiếp do người dùng định nghĩa. Chứa các phương thức của giao tiếp. |
Toán tử trong java là một ký hiệu được sử dụng để thực hiện một phép tính/chức năng nào đó. Java cung cấp các dạng toán tử sau:
Nội dung chính:
Các toán hạng của các toán tử số học phải ở dạng số. Các toán hạng kiểu boolean không sử dụng được, các toán hạng ký tự cho phép sử dụng loại toán tử này. Một vài kiểu toán tử được liệt kê trong bảng dưới đây.
Giả sử chúng ta có biến số nguyên a = 10 và b = 20.
Toán tử | Mô tả | Ví dụ |
---|---|---|
+ | Cộng Trả về giá trị là tổng của hai toán hạng | a + b sẽ là 30 |
– | Trừ Trả về kết quả là hiệu của hai toán hạng. | a – b sẽ là -10 |
* | Nhân Trả về giá trị là tích của hai toán hạng. | a * b sẽ là 200 |
/ | Chia Trả về giá trị là thương của phép chia. | b / a sẽ là 2 |
% | Phép lấy modul Giá trị trả về là phần dư của phép chia | b % a sẽ là 0 |
++ | Tăng dần Tăng giá trị của biến lên 1. Ví dụ a++ tương đương với a = a + 1 | a++ sẽ là 11 |
— | Giảm dần Giảm giá trị của biến 1 đơn vị. Ví dụ a– tương đương với a = a – 1 | a– sẽ là 9 |
+= | Cộng và gán giá trị Cộng các giá trị của toán hạng bên trái vào toán hạng bên phải và gán giá trị trả về vào toán hạng bên trái. Ví dụ c += a tương đương c = c + a | a += 2 sẽ là 12 |
-= | rừ và gán giá trị Trừ các giá trị của toán hạng bên trái vào toán toán hạng bên phải và gán giá trị trả về vào toán hạng bên trái. Ví dụ c -= a tương đương với c = c – a | a -= 2 sẽ là 8 |
*= | Nhân và gán Nhân các giá trị của toán hạng bên trái với toán toán hạng bên phải và gán giá trị trả về vào toán hạng bên trái. Ví dụ c *= a tương đương với c = c*a | a *= 2 sẽ là 20 |
/= | Chia và gán Chia giá trị của toán hạng bên trái cho toán toán hạng bên phải và gán giá trị trả về vào toán hạng bên trái. Ví dụ c /= a tương đương với c = c/a | a /= 2 sẽ là 5 |
%= | Lấy số dư và gán Chia giá trị của toán hạng bên trái cho toán toán hạng bên phải và gán giá trị số dư vào toán hạng bên trái. Ví dụ c %= a tương đương với c = c%a | a /= 8 sẽ là 2 |
Các toán tử dạng bit cho phép chúng ta thao tác trên từng bit riêng biệt trong các kiểu dữ liệu nguyên thuỷ.
Toán tử | Mô tả |
---|---|
~ | Phủ định NOT Trả về giá trị phủ định của một bít. |
& | Toán tử AND Trả về giá trị là 1 nếu các toán hạng là 1 và 0 trong các trường hợp khác |
| | Toán tử OR Trả về giá trị là 1 nếu một trong các toán hạng là 1 và 0 trong các trường hợp khác. |
^ | Toán tử Exclusive OR Trả về giá trị là 1 nếu chỉ một trong các toán hạng là 1 và trả về 0 trong các trường hợp khác. |
>> | Dịch phải Chuyển toàn bộ các bít cuả một số sang phải một vị trí, giữ nguyên dấu của số âm. Toán hạng bên trái là số bị dịch còn số bên phải chỉ số vị trí mà các bít cần dịch. |
<< | Dịch trái Chuyển toàn bộ các bít cuả một số sang trái một vị trí, giữ nguyên dấu cuả số âm. Toán hạng bên trái là số bị dịch còn số bên phải chỉ số vị trí mà các bít cần dịch. |
Các toán tử quan hệ được sử dụng kiểm tra mối quan hệ giữa hai toán hạng. Kết quả của một biểu thức có dùng các toán tử quan hệ là những giá trị Boolean (logic “true” hoặc “false”). Các toán tử quan hệ được sử dụng trong các cấu trúc điều khiển.
Toán tử | Mô tả |
---|---|
== | So sánh bằng Toán tử này kiểm tra sự tương đương của hai toán hạng |
!= | So sánh khác Toán tử này kiểm tra sự khác nhau của hai toán hạng |
> | Lớn hơn Kiểm tra giá trị của toán hạng bên phải lớn hơn toán hạng bên trái hay không |
< | Nhỏ hơn Kiểm tra giá trị của toán hạng bên phải có nhỏ hơn toán hạng bên trái hay không |
>= | Lớn hơn hoặc bằng Kiểm tra giá trị của toán hạng bên phải có lớn hơn hoặc bằng toán hạng bên trái hay không |
<= | Nhỏ hơn hoặc bằng Kiểm tra giá trị của toán hạng bên phải có nhỏ hơn hoặc bằng toán hạng bên trái hay không |
Các toán tử logic làm việc với các toán hạng Boolean. Các toán tử quan hệ được sử dụng trong các cấu trúc điều khiển.
Toán tử | Mô tả |
---|---|
&& | Toán tử và (AND) Trả về một giá trị “Đúng” (True) nếu chỉ khi cả hai toán tử có giá trị “True” |
|| | Toán tử hoặc (OR) Trả về giá trị “True” nếu ít nhất một giá trị là True |
^ | Toán tử XOR Trả về giá trị True nếu và chỉ nếu chỉ một trong các giá trị là True, các trường hợp còn lại cho giá trị False (sai) |
! | Toán tử phủ định (NOT) Toán hạng đơn tử NOT. Chuyển giá trị từ True sang False và ngược lại. |
Toán tử điều kiện là một loại toán tử đặc biệt vì nó bao gồm ba thành phần cấu thành biểu thức điều kiện. Cú pháp:
<biểu thức 1> ? <biểu thức 2> : <biểu thức 3>;
JavaCopy
Ví dụ:
public class Test {
public static void main(String[] args) {
int a = 20;
int b = 3;
String s = (a % b == 0) ? "a chia het cho b" : "a khong chia het cho b";
System.out.println(s);
}
}
JavaCopy
Kết quả:
a khong chia het cho b
JavaCopy
Toán tử gán (=) dùng để gán một giá trị vào một biến và có thể gán nhiều giá trị cho nhiều biến cùng một lúc.
Ví dụ:
int var = 20;
int p,q,r,s;
p=q=r=s=var;
JavaCopy
Trong ví dụ trên, đoạn lệnh sau gán một giá trị cho biến var và giá trị này lại được gán cho nhiều biến trên một dòng lệnh đơn.
Dòng lệnh cuối cùng được thực hiện từ phải qua trái. Đầu tiên giá trị ở biến var được gán cho ‘s’, sau đó giá trị của ‘s’ được gán cho ‘r’ và cứ tiếp như vậy.
Thứ tự ưu tiên quyết định trật tự thực hiện các toán tử trên các biểu thức. Bảng dưới đây liệt kê thứ tự thực hiện các toán tử trong Java
Toán tử | Mô tả |
---|---|
1 | Các toán tử đơn như +,-,++,– |
2 | Các toán tử số học và các toán tử dịch như *,/,+,-,<<,>> |
3 | Các toán tử quan hệ như >,<,>=,<=,= =,!= |
4 | Các toán tử logic và Bit như &&,||,&,|,^ |
5 | Các toán tử gán như =,*=,/=,+=,-= |
Để thay đổi thứ tự ưu tiên trên một biểu thức, bạn có thể sử dụng dấu ngoặc đơn ():
Ví dụ:
public class Test {
public static void main(String[] args) {
int a = 20;
int b = 5;
int c = 10;
System.out.println("a + b * c = " + (a + b * c));
System.out.println("(a + b) * c = " + ((a + b) * c));
System.out.println("a / b - c = " + (a / b - c));
System.out.println("a / (b - c) = " + (a / (b - c)));
}
}
JavaCopy
Kết quả:
a + b * c = 70
(a + b) * c = 250
a / b - c = -6
a / (b - c) = -4
C++Copy
Mệnh đề if trong java được sử dụng để kiểm tra giá trị dạng boolean của điều kiện. Mệnh đề này trả về giá trị True hoặc False . Có các kiểu của mệnh đề if-else trong java như sau:
Mệnh đề if
Mệnh đề if được sử dụng để kiểm tra giá trị dạng boolean của điều kiện. Khối lệnh sau if được thực thi nếu giá trị của điều kiện là True
Cú pháp:
if (condition) {
// khối lệnh này thực thi
// nếu condition = true
}
JavaCopy
Ví dụ:
public class Test {
public static void main(String[] args) {
int age = 20;
if (age > 18) {
System.out.print("Tuổi lớn hơn 18");
}
}
}
JavaCopy
Kết quả:
Tuổi lớn hơn 18
JavaCopy
Mệnh đề if-else cũng kiểm tra giá trị dạng boolean của điều kiện. Nếu giá trị điều kiện là True thì chỉ có khối lệnh sau if sẽ được thực hiện, nếu là False thì chỉ có khối lệnh sau else được thực hiện.
Cú pháp:
if (condition) {
// khối lệnh này được thực thi
// nếu condition = true
} else {
// khối lệnh này được thực thi
// nếu condition = false
}
JavaCopy
Ví dụ:
public class Test {
public static void main(String[] args) {
int number = 13;
if (number % 2 == 0) {
System.out.println("Số " + number + " là số chẵn.");
} else {
System.out.println("Số " + number + " là số lẻ.");
}
}
}
JavaCopy
Kết quả:
Số 13 là số lẻ.
JavaCopy
Mệnh đề if-else-if
Mệnh đề if-else-if cũng kiểm tra giá trị dạng boolean của điều kiện. Nếu giá trị điều kiện if là True thì chỉ có khối lệnh sau if sẽ được thực hiện. Nếu giá trị điều kiện if else nào là True thì chỉ có khối lệnh sau else if đó sẽ được thực hiện… Nếu tất cả điều kiện của if và else if là False thì chỉ có khối lệnh sau else sẽ được thực hiện.
Cú pháp:
if (condition1) {
// khối lệnh này được thực thi
// nếu condition1 là true
} else if (condition2) {
// khối lệnh này được thực thi
// nếu condition2 là true
} else if (condition3) {
// khối lệnh này được thực thi
// nếu condition3 là true
}
...
else {
// khối lệnh này được thực thi
// nếu tất cả những điều kiện trên là false
}
JavaCopy
Ví dụ:
public class Test {
public static void main(String[] args) {
int marks = 65;
if (marks < 50) {
System.out.println("Tạch!");
} else if (marks >= 50 && marks < 60) {
System.out.println("Xếp loại D");
} else if (marks >= 60 && marks < 70) {
System.out.println("Xếp loại C");
} else if (marks >= 70 && marks < 80) {
System.out.println("Xếp loại B");
} else if (marks >= 80 && marks < 90) {
System.out.println("Xếp loại A");
} else if (marks >= 90 && marks < 100) {
System.out.println("Xếp loại A+");
} else {
System.out.println("Giá trị không hợp lệ!");
}
}
}
JavaCopy
Kết quả:
Xếp loại C
JavaCopy
Mệnh đề switch case
trong Java được sử dụng để thực thi 1 hoặc nhiều khối lệnh từ điều kiện đầu vào.
Cú pháp:
switch (bieu_thuc) {
case gia_tri_1:
// Khối lệnh 1
break; //tùy chọn
case gia_tri_2:
// Khối lệnh 2
break; //tùy chọn
......
case gia_tri_n:
// Khối lệnh n
break; //tùy chọn
default:
// Khối lệnh này được thực thi
// nếu tất cả các điều kiện trên không thỏa mãn
}
JavaCopy
Khi sử dụng từ khóa ‘break‘ trong mệnh đề switch case. Điều này có nghĩa là rơi vào case nào thì khối lệnh sẽ thực thi xong và thoát luôn switch đó, không phải kiểm tra tiếp các case bên dưới.
Ví dụ:
public class SwitchExampleBreak {
public static void main(String[] args) {
int number = 20;
switch (number) {
case 10:
System.out.println("10");
break;
case 20:
System.out.println("20");
break;
case 30:
System.out.println("30");
break;
default:
System.out.println("Not in 10, 20 or 30");
}
}
}
JavaCopy
Kết quả:
20
JavaCopy
Khi không sử dụng từ khóa ‘break‘ trong mệnh đề switch case. Điều này có nghĩa là các khối lệnh sau cái case mà có giá trị phù hợp sẽ được thực thi tiếp cho đến hết mà không cần kiểm tra thoả điều kiện.
Ví dụ:
public class SwitchExampleNOTBreak {
public static void main(String[] args) {
int number = 20;
switch (number) {
case 10:
System.out.println("10");
case 20:
System.out.println("20");
case 30:
System.out.println("30");
default:
System.out.println("Not in 10, 20 or 30");
}
}
}
JavaCopy
Kết quả:
20
30
Not in 10, 20 or 30
JavaCopy
Vòng lặp for trong java được sử dụng để lặp một phần của chương trình nhiều lần. Nếu số lần lặp là cố định thì vong lặp for được khuyến khích sử dụng, còn nếu số lần lặp không cố định thì nên sử dụng vòng lặp while hoặc do while.
Có 3 kiểu của vòng lặp for trong java:
Vòng lặp for đơn giản
Vòng lặp for đơn giản giống như trong C/C++. Chúng ta có thể khởi tạo biến, kiểm tra điều kiện và tăng/giảm giá trị của biến.
Cú pháp:
for (khoi_tao_bien ; check_dieu_kien ; tang/giam_bien) {
// Khối lệnh được thực thi
}
JavaCopy
Ví dụ:
public class ForExample {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
}
JavaCopy
Kết quả:
1
2
3
4
5
6
7
8
9
10
JavaCopy
Vòng lặp for cải tiến được sử dụng để lặp mảng(array) hoặc collection trong java. Bạn có thể sử dụng nó dễ dàng, dễ hơn cả vòng lặp for đơn giản. Bởi vì bạn không cần phải tăng hay giảm giá trị của biến rồi check điều kiện, bạn chỉ cần sử dụng ký hiệu hai chấm “:”
Cú pháp:
for (Type var : array) {
// Khối lệnh được thực thi
}
JavaCopy
Ví dụ:
public class ForEachExample {
public static void main(String[] args) {
int arr[] = { 12, 23, 44, 56, 78 };
for (int i : arr) {
System.out.println(i);
}
}
}
JavaCopy
Kết quả:
12
23
44
56
78
JavaCopy
Thông thường, mảng (array) là một tập hợp các phần tử có cùng kiểu được lưu trữ gần nhau trong bộ nhớ.
Mảng trong java là một đối tượng chứa các phần tử có kiểu dữ liệu giống nhau. Mảng là một cấu trúc dữ liệu nơi lưu trữ các phần tử giống nhau. Với mảng trong java chúng ta chỉ có thể lưu trữ một tập các phần tử có số lượng phần tử cố định.
Mảng trong java lưu các phần tử theo chỉ số, chỉ số của phần tử đầu tiên là 0.
Lợi ích của mảng trong java
Sự bất tiện của mảng trong java
Các kiểu của mảng trong java
Có hai kiểu mảng trong java
https://anhtester.com/blog/selenium-java/selenium-java-bai-1-java-basic
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE