Java Simplified / Session 2 / 1 of 28
Bài 2
Tìm hiểu cơ bản về ngôn ngữ
lập trình Java
Bài 02 / 2 of 46
Nội dung chính
Dịch một chương trình java
Tìm hiểu cơ bản về java
Kiểu dữ liệu
Arrays
Toán tử
Chuỗi ký tự thay thế
Bài 02 / 3 of 46
Một ví dụ chương trình java
// This is a simple program called First.java
class First
{
public static void main (String [] args)
{
System.out.println ("My first program in Java ");
}
}
Bài 02 / 4 of 46
Phân tích chương trình Java
Ký hiệu // dùng để ghi chú thích trong source code
Dòng “class First” mô tả một lớp là “First”
public static void main (String [] args)
Đây là main method, nơi mà chương trình bắt đầu được
thực thi.
System.out.println (“My first program in
java”);
Dòng này hiển thị chuỗi My first program in java lên màn
hình
Bài 02 / 5 of 46
Biên dịch và thực thi chương trình
The java compiler creates a file called 'First.class'
that contains the byte codes
Để chạy chương trình, một trình thông dịch java sẽ thực
thi mã bytecode
Bài 02 / 6 of 46
Truyền tham số dòng lệnh
class CommLineArg
{
public static void main (String [] pargs)
{
System.out.println("These are the arguments
passed to the main method.");
System.out.println(pargs [0]);
System.out.println(pargs [1]);
System.out.println(pargs [2]);
}
}
Bài 02 / 7 of 46
Truyền tham số dòng lệnh
Output
Bài 02 / 8 of 46
Cơ bản về ngôn ngữ Java
Lớp & Phương thức
Kiểu dữ liệu
Biến
Toán tử
Các cấu trúc điều khiển
Bài 02 / 9 of 46
Lớp trong Java
Cú pháp khai báo một lớp
class Classname
{
var_datatype variablename;
:
met_datatype methodname(parameter_list)
:
}
Bài 02 / 10 of 46
Ví dụ về một lớp
Bài 02 / 11 of 46
Các kiểu dữ liệu
byte (8 bit)
char (16 bit)
boolean (1 bit)
short (16)
int (32)
long (64)
float (32)
double (64)
Array
Class
Interface
Bài 02 / 12 of 46
Ép kiểu
Trong việc ép kiểu, một kiểu dữ liệu này có thể được
chuyển đổi thành kiểu dữ liệu khác.
Ví dụ
float c = 34.89675f;
int b = (int)c + 10;
Bài 02 / 13 of 46
Kiểu tự động và ép kiểu
Có 2 kiểu dữ liệu chuyển đổi: tự động và ép kiểu.
Khi một kiểu dữ liệu được gán cho biến của kiểu dữ liệu
khác thì nó sẽ tự động thay thế kiểu cho phù hợp
2 kiểu dữ liệu so sánh được
Kiểu đích phải có kích thước lớn hơn kiểu
nguồn
Ép kiểu là khi ta muốn chuyển từ kiểu dữ liệu này sang
kiểu dữ liệu khác
Ví dụ: float c = 34.89675f;
int b = (int)c + 10;
Bài 02 / 14 of 46
Các quy tắc khi chuyển kiểu
Các giá trị kiểu byte và short đều chuyển về
kiểu int
Trong một biểu thức có một toán tử là long thì toàn bộ
biểu thức nhận giá trị kiểu long
Nếu một toán tử là float thì toàn bộ biểu thức là float.
Nếu một toán tử là double thì toàn bộ biểu thức là
double .
Bài 02 / 15 of 46
Biến
Có 3 thành phần cần quan tâm khi khai báo biến
Kiểu dữ liệu
Tên biến
Giá trị khởi tạo (tùy chọn)
Cú pháp
datatype identifier [=value][,
identifier[=value] ];
Bài 02 / 16 of 46
Ví dụ
Output
class DynVar
{
public static void main(String [] args)
{
double len = 5.0, wide = 7.0;
double num = Math.sqrt(len * len + wide * wide);
System.out.println("Value of num after dynamic initialization
is " + num);
}
}
Bài 02 / 17 of 46
Phạm vi và vòng đời của biến
Biến có thể được mô tả bên trong một khối lệnh.
Một khối lệnh bắt đầu với dấu ngoặc nhọn { và kết thúc
với ngoặc đóng }.
Một khối là một phạm vi
Một phạm vi mới được tạo ra khi một khối mới được tạo
Phạm vi sẽ xác định tầm ảnh hưởng của đối tượng
Phạm vi cũng xác định vòng đời của đối tượng
Bài 02 / 18 of 46
Ví dụ
class ScopeVar
{
public static void main(String [] args)
{
int num = 10;
if ( num == 10)
{
// num is available in inner scope
int num1 = num * num;
System.out.println("Value of num and num1 are " + num + "
" + num1);
}
//num1 = 10; ERROR ! num1 is not known
System.out.println("Value of num is " + num);
}
}
Output
Bài 02 / 19 of 46
Khai báo mảng
Có 3 cách khai báo mảng:
datatype identifier [ ];
datatype identifier [ ] = new datatype[size];
datatype identifier [ ] = {value1,value2,
….valueN};
Bài 02 / 20 of 46
Ví dụ về mảng một chiều
class ArrDemo
{
public static void main(String [] arg)
{
double nums[] = {10.1, 11.3, 12.5,13.7, 14.9};
System.out.println(" The value at location 3 is : " +
nums[3]);
}
}
Output
Bài 02 / 21 of 46
Ví dụ về mảng nhiều chiều
class MultiArrayDemo
{
public static void main ( String [] arg)
{
int multi[][] = new int [4][];
multi[0] = new int[1];
multi[1] = new int[2];
multi[2] = new int[3];
multi[3] = new int[4];
int num = 0;
for (int count = 0; count < 4; count++)
{
for (int ctr = 0; ctr < count+1; ctr++)
{
multi[count][ctr] = num;
num++;
}
}
for (int count = 0; count < 4; count++)
{
for (int ctr = 0; ctr < count+1; ctr++)
{
System.out.print(multi[count][ctr] + " ");
System.out.println();
}
}
}
}
Output
Bài 02 / 22 of 46
Toán tử
Toán tử số học
Toán tử với bit
Toán tử quan hệ
Toán tử logic
Toán tử điều kiện
Toán tử gán
Bài 02 / 23 of 46
Toán tử số học
Các toán hạng của các toán tử số học phải có kiểu dữ liệu
dạng số
Các toán hạng kiểu boolean không bao giờ được sử dụng
nhưng các toán hạng kiểu kí tự thì được phép
Các toán tử sử dụng biểu thức toán học
Bao gồm: +, -, *, /, %, ++, , +=, -=, *=, /=, %=
Bài 02 / 24 of 46
Example
class ArithmeticOp
{
public static void main ( String [] arg)
{
int num = 5, num1 = 12, num2 = 20, result;
result = num + num1;
System.out.println("Sum of num and num1 is : (num + num1) " + result);
result = num % num1;
System.out.println("Modulus of num and num1 is : (num % num1) " + result);
result *= num2;
System.out.println("Product of result and num2 is : (result *= num2) " + result);
System.out.println("Value of num before the operation is : " + num);
num ++;
System.out.println("Value of num after ++ operation is : " + num);
double num3 = 25.75, num4 = 14.25, res;
res = num3 - num4;
System.out.println("num3 – num4 is : " +res);
res -= 2.50;
System.out.println("res -= 2.50 " + res);
System.out.println("Value of res before operation is : "+ res);
res ;
System.out.println("Value of res after operation is : " + res);
}
}
Output
Bài 02 / 25 of 46
Toán tử kiểu bit
Toán tử bit cho phép ta thao tác từng bit trên kiểu dữ liệu
nguyên thủy
Nó thực hiện trên 2 bit ở vị trí tương đương trên 2 toán
hạng và trả về kết quả mới.
Một số toán tử: ~, &, |, ^, >>, <<