Chương 2
Toán tử & Kiểu dữ liệu
Chương 2: Toán tử & Kiểu dữ liệu
o Các từ khóa thường gặp. o Định danh. o Biến và phạm vi của biến. o Các kiểu dữ liệu cơ sở. o Các toán tử và biểu thức. o Ép kiểu dữ liệu.
Từ khóa
Từ khóa
o Từ khóa là những từ mà ý nghĩa của nó đã được Java
định nghĩa sẵn.
o Từ khóa cho các kiểu dữ liệu cơ bản: byte, short,
int, long, float, double, char, boolean.
o Từ khóa cho phát biểu lặp: do, while, for, break,
continue.
o Từ khóa cho phát biểu rẽ nhánh: if, else, switch,
case, default, break.
Từ khóa
o Từ khóa đặc tả đặc tính một method: private, public, protected, final, static, abstract, synchronized.
o Hằng (literal): true, false, null. o Từ khóa liên quan đến method: return, void. o Từ khoá liên quan đến package: package, import. o Từ khóa cho việc quản lý lỗi: try, catch, finally,
throw, throws.
o Từ khóa liên quan đến đối tượng: new, extends, implements, class, instanceof, this, super.
Quy ước đặt tên
o Phương thức:
Ví dụ: ComputerArea
- Bắt đầu bằng ký tự thường. - Từ đầu tiên viết thường, viết hoa ký tự đầu tiên của các từ còn lại. - VD: timMax, area(), readFile(),… o Tên lớp: Viết hoa ký tự đầu của mỗi từ o Tên hằng: Viết hoa tất cả các ký tự Ví dụ: PI
Biến
o Biến là vùng nhớ dùng để lưu trữ các giá trị của
chương trình.
o Mỗi biến gắn liền với một kiểu dữ liệu và một định
danh duy nhất gọi là tên biến.
o Tên biến thông thường là một chuỗi các ký tự, ký số. - Tên biến phải bắt đầu bằng một chữ cái, một dấu gạch dưới (_) hay dấu $. - Tên biến không được trùng với các từ khóa . - Tên biến không có khoảng trắng ở giữa tên. o Biến phân biệt chữ hoa và chữ thường
Biến
o Cách khai báo: o Ví dụ: int radius; int area = 5; o Gán giá trị cho biến: o Biến toàn cục (công cộng - public): là biến có thể truy xuất ở khắp nơi trong chương trình, thường được khai báo dùng từ khóa public, hoặc đặt chúng trong một class.
o Biến cục bộ: là biến chỉ có thể truy xuất trong khối lệnh
nó khai báo.
Biến
myVariable
Tên biến
Giá trị
100
101
102
103
104
105
106
Địa chỉ
• Ví dụ: int x; x = 20; int y = 10; int z = x+y; char c; float p, q;
Biến
int j = 1; // biến cục bộ // i, j có thể truy cập từ đây return j;
int j = 2; // biến cục bộ // i, j có thể truy cập từ đây return j;
int i; // biến thành viên (toàn cục) int first(){ } int second(){ }
public class MyClass{ }
Chú thích
int i; // biến thành viên (toàn cục) int first(){ int j = 1; /* biến cục bộ i, j có thể truy cập từ đây */ return j; }
public class MyClass{ }
o Có 2 cách chú thích: // Chú thích trên 1 dòng /* Chú thích trên nhiều dòng */
Các kiểu dữ liệu
o Kiểu dữ liệu cơ sở
Số nguyên: byte, short, int, long Số thực: float, double Boolean Kí tự: Char
o Kiểu dữ liệu tham chiếu
Mảng (Array), Chuỗi (String) Lớp (Class) Kiểu giao tiếp (interface).
Các kiểu dữ liệu cơ sở
Kiểu luận lý
boolean
Kiểu ký tự
char
byte
Kiểu cơ sở
short
Kiểu nguyên
int
Kiểu số
long
float
Kiểu thực
double
Các kiểu dữ liệu cơ sở
Kiểu số nguyên
o Bốn kiểu số nguyên khác nhau là: byte, short, int,
o Kiểu mặc định của các số nguyên là kiểu int. o Không có kiểu số nguyên không dấu. o VD:
int x = 0; long y=100; int a=1, b, c;
long.
Kiểu số nguyên
o Không thể chuyển biến kiểu int và kiểu boolean
như trong ngôn ngữ C/C++ boolean b = false; if (b == 0){ System.out.println("Xin chao"); }
o Lúc biên dịch, đoạn chương trình trên sẽ báo lỗi vì chúng ta không được so sánh biến kiểu boolean với biến kiểu int.
Kiểu số nguyên
Một số lưu ý đối với các phép toán trên số nguyên: o Nếu hai toán hạng kiểu long thì kết quả là kiểu long. Một trong hai toán hạng không phải kiểu long sẽ được chuyển thành kiểu long trước khi thực hiện phép toán.
o Nếu hai toán hạng đầu không phải kiểu long thì
phép tính sẽ thực hiện với kiểu int.
o Các toán hạng kiểu byte hay short sẽ được chuyển
sang kiểu int trước khi thực hiện phép toán.
Kiểu dấu chấm động (kiểu thực)
o Gồm kiểu float và double o Kiểu float có kích thước 4 byte và giá trị mặc định
là 0.0f
o Kiểu double có kích thước 8 byte và giá trị mặc
định là 0.0d
o Khai báo và khởi tạo giá trị cho các biến kiểu dấu
chấm động: float x = 100.0/7; double y = 1.56E6;
Kiểu dấu chấm động (kiểu thực)
Một số lưu ý với các phép toán trên số dấu chấm động: o Nếu mỗi toán hạng đều có kiểu dấu chấm động thì phép toán chuyển thành phép toán dấu chấm động. o Nếu có một toán hạng là double thì các toán hạng còn lại sẽ được chuyển thành kiểu double trước khi thực hiện phép toán.
o Biến kiểu float và double có thể ép chuyển sang
kiểu dữ liệu khác (trừ kiểu boolean).
Kiểu ký tự (Char)
Unicode
o Kiểu char có thể tất cả: 216 = 65536 ký tự
khác nhau, từ '\u0000' đến '\uFFFF‘.
o Giá trị mặc định là null.
o Có kích thước là 2 bytes. o Chỉ dùng để biểu diễn các ký tự trong bộ mã
Kiểu luận lý (boolean)
ngược lại.
o Chỉ nhận hai giá trị: true hoặc false o Giá trị mặc định: false o Không thể chuyển thành kiểu nguyên và
Hằng
o Hằng là một giá trị bất biến trong chương trình.
o Tên hằng được đặt theo qui ước giống như tên biến.
o Cấu trúc:
final
Hằng
o Với các kiểu như long, float, double chúng ta cần phải
thêm hậu tố tương ứng vào sau giá trị biến.
o Hằng số nguyên: Long thêm l hoặc L o Hằng số thực: Float thêm f hoặc F, Double thêm d
hoặc D. o Ví dụ: final long l=100l; final float f=34.123F; final double d=12.1213d;
Hằng
o Hằng Booean: có 2 hằng boolean là true, false o Hằng chuỗi: là tập hợp các ký tự đặt giữa hai dấu
nháy “”.
o Một chuỗi không có ký tự nào là một hằng chuỗi
rỗng.
o VD: “Hello World” o Hằng chuỗi không phải là kiểu dữ liệu cơ sở nhưng vẫn được khai báo và sử dụng trong chương trình.
Hằng
o Hằng ký tự: là 1 ký tự đơn nằm giữa 2 dấu ngoặc
đơn.
o VD: final char a='a'; o Một số hằng ký tự đặc biệt
Lệnh và khối lệnh
o Mỗi câu lệnh kết thúc bằng dấu (;)
o Các câu lệnh có thể nối lại với nhau tạo thành một
khối lệnh. Khối lệnh đặt trong cặp dấu {}
o Khối lệnh có thể lồng nhau.
o Bên trong một khối lệnh có thể chứa một hay nhiều
lệnh hoặc chứa các khối lệnh khác.
Lệnh và khối lệnh
• Ví dụ 1:
int max = a; if ( b > max)
max = b;
private int timGiaTriMax(int a, int b){ { } return max; }
• Ví dụ 2:
System.out.print("Hello World!!!");
public class HelloWorld{
public static void main(String args[]){ }}
Toán tử số học
Toán tử trên bit
Toán tử
Ý nghĩa
& | ^ << >> >>> ~
AND OR XOR Dịch trái Dịch phải Dịch phải và điền 0 vào bit trống Bù bit
Toán tử quan hệ và logic
Toán tử
Ý nghĩa
== != > < >= <= || && !
So sánh bằng So sánh khác So sánh lớn hơn So sánh nhỏ hơn So sánh lớn hơn hay bằng So sánh nhỏ hơn hay bằng OR (biểu thức logic) AND (biểu thức logic) NOT (biểu thức logic)
Toán tử gán
Giải thích
Toán tử Ví dụ = int c=3, d=5, c=4;
+= -= *= /= %= c+=7 d-=4 e*=5 f/=3 g%=9 c=c+7 d=d-4 e=e*5 f=f/3 g=g%9
Toán tử ép kiểu
o Khi gặp phải sự không tương thích kiểu dữ liệu chúng ta phải tiến hành chuyển đổi kiểu dữ liệu cho biến hoặc biểu thức.
o Chuyển kiểu dữ liệu này sang kiểu dữ liệu khác.
Toán tử ép kiểu
o Cú pháp:
o Ép kiểu rộng (ngầm định) - Từ kiểu nhỏ sang kiểu lớn. - Không mất mát thông tin - VD: int a = 10; float b = a; o Ép kiểu hẹp (tường minh) - Từ kiểu lớn sang kiểu nhỏ. - Có khả năng mất mát thông tin. - VD: float fNum = 2.2;
int iCount = (int) fNum
Toán tử điều kiện
o Cú pháp
<điều kiện> ?
Thứ tự ưu tiên
o Thứ tự ưu tiên từ trái qua phải và từ trên xuống dưới
như bảng sau:
Thứ tự ưu tiên
Biểu thức gán
o Cú pháp:
o Tính giá trị
nhớ của
o Kiểu của
Ví dụ về phép toán
x = 10; y = 20; int z = x+y; System.out.println("x = " + x); System.out.println("y = " + y); System.out.println("z = x + y =" + z); System.out.println("So nho hon la so:" + Math.min(x, y)); char c = 80; System.out.println("ky tu c la: " + c);
import java.lang.*; import java.io.*; class VariableDemo{
static int x, y; public static void main(String[] args){ }
}

