SlideShare a Scribd company logo
1 of 187
Download to read offline
Lập trình JAVA
Biên soạn: ZendVN
Hướng dẫn: Lưu Trường Hải Lân
Hỗ trợ Skype: zendvn.support
Chương 01:
1. Tổng quan lập trình JAVA
2. Biến số, hằng số và kiểu dữ liệu
3. Toán tử và hàm toán học
4. Phát biểu điều kiện
5. Sử dụng Vòng lặp
6. Ứng dụng máy tính bỏ túi
7. Ứng dụng Game “Đi tìm ẩn số”
8. Ứng dụng tháp hình
9. Ứng dụng mô phỏng máy ATM
10. Tình huống thực hành có đáp án
Chương 01:
1. Tổng quan lập trình JAVA
2. Biến số, hằng số và kiểu dữ liệu
3. Toán tử và hàm toán học
4. Phát biểu điều kiện
5. Sử dụng Vòng lặp
6. Ứng dụng máy tính bỏ túi
7. Ứng dụng Game “Đi tìm ẩn số”
8. Ứng dụng tháp hình
9. Ứng dụng mô phỏng máy ATM
10. Tình huống thực hành có đáp án
Chương 01:
Phần 01 - Tổng quan lập trình JAVA
JAVA là gì ?
• JAVA là ngôn ngữ lập trình hướng đối tượng do Sun Microsystem sáng lập
• JAVA được tạo ra với tiêu chí “Write Once, Run Anywher”
(Chương trình Java nhờ có máy ảo Java nên có thể
thực thi được trên nhiều nền tảng khác nhau,
không phụ thuộc vào phần cứng, hệ điều hành, …)
Tại sao là JAVA ?
• Ngôn ngữ lập trình hướng đối tượng dễ tiếp cận
• Tài liệu phong phú đa dạng (API, source, documents, article, ebook, video, …)
• Khá nhiệu công cụ hỗ trợ lập trình: Netbeans, Eclipe, …
• Hoàn toàn miễn phí và có cộng đồng phát triển rộng lớn
• Xuất hiện ở khắp nơi: web, mobile, desktop, …
Phần mềm học JAVA
Bộ cài đặt JDK (Java Development Kit)
Môi trường phát triển IDE (Integrated Development Environment)
• http://www.oracle.com/technetwork/java/javase/downloads/index.html
• Netbeans
• Eclipse
• JCreator
• Máy ảo JAVA (Java Virtual Machine)
Hello World!
Khởi tạo và thực thi project trong Eclipe
Thực thi tập tin .java bằng CMD (Command Line)
• Tạo project JAVA
• Thực thi tập tin JAVA
• Thiết lập biến môi trường
• Biên dịch và thực thi tập tin java: javac, java
Chương 01:
1. Tổng quan lập trình JAVA
2. Biến số, hằng số và kiểu dữ liệu
3. Toán tử và hàm toán học
4. Phát biểu điều kiện
5. Sử dụng Vòng lặp
6. Ứng dụng máy tính bỏ túi
7. Ứng dụng Game “Đi tìm ẩn số”
8. Ứng dụng tháp hình
9. Ứng dụng mô phỏng máy ATM
10. Tình huống thực hành có đáp án
Chương 01:
Phần 02 – Biến, hằng và kiểu dữ liệu
Biến là gì ?
• Biến là một vùng nhớ dùng để lưu trữ giá trị mà giá trị đó có thể thay đổi
khi chương trình thực thi.
• 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
Cú pháp khai báo biến
Cú pháp: [Kiểu dữ liệu] [Tên biến]
1. Khai báo biến
2. Hiển thị biến (in biến)
3. Khởi tạo (gán) giá trị ban đầu cho biến
• Bắt đầu bằng một chữ cái hoặc ký tự
gạch dưới (_)
• Chỉ bao gồm các ký tự chữ, ký tự số và
ký tự gạch dưới
• Không chứa ký tự khoảng trắng trong
tên biến
• Phân biệt chữ hoa và chữ thường
• Không trùng với từ khóa trong JAVA
int, char
Hằng số
• Khác với biến, hằng số là giá trị không thể thay đổi được (bất biến)
• Cú pháp: final [Kiểu dữ liệu] [Tên hằng số] = [Giá trị]
• Quy tắt đặt tên hằng số tương tự như quy tắt đặt tên cho biến số
• Thống nhất hằng số sẽ được thể hiện ở dạng chữ in hoa + underscore
final int YOUR_BIRTHDAY = 1989;
Kiểu dữ liệu
Ngoài kiểu dữ liệu int và char đã tiếp xúc thì trong JAVA còn có kiểu dữ liệu
nào nữa hay không ?
Trong Java kiểu dữ liệu được chia thành hai loại:
• Các kiểu dữ liệu nguyên thủy (primitive): byte, short, int, long, float,
double, boolean, char và String
• Các kiểu dữ liệu tham chiếu (reference): array, class, interface
Kiểu dữ liệu nguyên thủy
Reference https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
Kiểu
Độ
dài
(bit)
Phạm vi biểu diễn
giá trị
byte 8 -128 đến 127
char 16 ‘u0000’ to ‘uffff’
boolean 1 “True” hoặc “False”
short 16 -32768 đến 32767
Kiểu
Độ
dài
(bit)
Phạm vi biểu diễn giá trị
int 32 -2,147,483,648 đến +2,147,483,648
long 64
-9,223,372,036’854,775,808 đến
+9,223,372,036’854,775,808
float 32
-3.40292347E+38 đến
+3.40292347E+38
double 64
-1,79769313486231570E+308 đến
+1,79769313486231570E+308
Chuyển đổi kiểu dữ liệu
• Nới rộng (widening): chuyển đổi kiểu có kích thước nhỏ sang kiểu có kích
thước lớn (không làm mất thông tin)
• Thu hẹp (narrowwing): chuyển đổi kiểu có kích thước lớn sang kiểu có kích
thước nhỏ (làm mất thông tin)
int var1 = 12;
double var2 = 1.23;
int var3 = var1 + (int)var2; // Sự thu nhỏ (narrowwing)
double var4 = (double)var1 + var2; // Sự nới rộng (widening)
Chương 01:
1. Tổng quan lập trình JAVA
2. Biến số, hằng số và kiểu dữ liệu
3. Toán tử và hàm toán học
4. Phát biểu điều kiện
5. Sử dụng Vòng lặp
6. Ứng dụng máy tính bỏ túi
7. Ứng dụng Game “Đi tìm ẩn số”
8. Ứng dụng tháp hình
9. Ứng dụng mô phỏng máy ATM
10. Tình huống thực hành có đáp án
Chương 01:
Phần 03 – Toán tử và hàm toán học
Trong JAVA có các loại toán tử nào ?
• Toán tử số học + - * / %
• Toán tử gán += -= *= /= %=
• Toán tử ++ --
• Toán tử so sánh > < >= <= == !=
• Toán tử logic && || !
• Toán tử dịch bit
Hàm toán học
• Số lớn nhất (max), số nhỏ nhất (min), căn bậc 2 (sqrt), lũy thừa (pow)
• Làm tròn số: tròn lên (ceil), tròn xuống (floor), tròn gần nhất (round)
• Phát sinh số ngẫu nhiên trong khoảng 0 đến 1 (random)
1. Tìm số lớn nhất trong 3 số tự nhiên cho trước
2. Phát sinh số tự nhiên ngẫu nhiên nằm trong khoảng từ 14 đến 19
Chương 01:
1. Tổng quan lập trình JAVA
2. Biến số, hằng số và kiểu dữ liệu
3. Toán tử và hàm toán học
4. Phát biểu điều kiện
5. Sử dụng Vòng lặp
6. Ứng dụng máy tính bỏ túi
7. Ứng dụng Game “Đi tìm ẩn số”
8. Ứng dụng tháp hình
9. Ứng dụng mô phỏng máy ATM
10. Tình huống thực hành có đáp án
Chương 01:
Phần 04 – Phát biểu điều kiện
Phát biểu điều kiện là gì ?
• Phát biểu điều kiện (câu điều kiện) là các phát biểu giúp chúng ta thực
hiện những hành động khác nhau theo những điều kiện khác nhau
• Phát biểu điều kiện được sử dụng rất thường xuyên đối với bất kỳ ngôn
ngữ lập trình nào
Có mấy loại câu điều kiện trong JAVA?
Câu điều kiện IF … ELSE
Câu điều kiện SWITCH
• Câu điều kiện IF
• Câu điều kiện IF … ELSE
• Câu điều kiện IF … ELSE IF … ELSE
Chương 01:
1. Tổng quan lập trình JAVA
2. Biến số, hằng số và kiểu dữ liệu
3. Toán tử và hàm toán học
4. Phát biểu điều kiện
5. Sử dụng Vòng lặp
6. Ứng dụng máy tính bỏ túi
7. Ứng dụng Game “Đi tìm ẩn số”
8. Ứng dụng tháp hình
9. Ứng dụng mô phỏng máy ATM
10. Tình huống thực hành có đáp án
Chương 01:
Phần 05 – Sử dụng vòng lặp
Vòng lặp trong JAVA
Sử dụng vòng lặp khi: Một đoạn mã lệnh trong chương trình được thực
hiện lặp đi lặp lại cho đến khi thỏa mãn một điều kiện nào đó
Các vòng lặp thường sử dụng trong JAVA
• For
• While
• Do ... While
Break & Continue
Câu lệnh break được sử dụng để nhảy ra khỏi một vòng lặp.
Câu lệnh continue có chức năng
dừng vòng lặp tại giá trị đó và
nhảy sang giá trị khác trong vòng
lặp
Chương 01:
1. Tổng quan lập trình JAVA
2. Biến số, hằng số và kiểu dữ liệu
3. Toán tử và hàm toán học
4. Phát biểu điều kiện
5. Sử dụng Vòng lặp
6. Ứng dụng máy tính bỏ túi
7. Ứng dụng Game “Đi tìm ẩn số”
8. Ứng dụng tháp hình
9. Ứng dụng mô phỏng máy ATM
10. Tình huống thực hành có đáp án
Chương 01:
Phần 06
Xây dựng ứng dụng máy tính bỏ túi
Xây dựng ứng dụng máy tính bỏ túi
Chương 01:
1. Tổng quan lập trình JAVA
2. Biến số, hằng số và kiểu dữ liệu
3. Toán tử và hàm toán học
4. Phát biểu điều kiện
5. Sử dụng Vòng lặp
6. Ứng dụng máy tính bỏ túi
7. Ứng dụng Game “Đi tìm ẩn số”
8. Ứng dụng tháp hình
9. Ứng dụng mô phỏng máy ATM
10. Tình huống thực hành có đáp án
Chương 01:
Phần 07
Xây dựng ứng dụng Game “Đi tìm ẩn số”
Xây dựng ứng dụng game “Đi tìm ẩn số”
Chương 01:
1. Tổng quan lập trình JAVA
2. Biến số, hằng số và kiểu dữ liệu
3. Toán tử và hàm toán học
4. Phát biểu điều kiện
5. Sử dụng Vòng lặp
6. Ứng dụng máy tính bỏ túi
7. Ứng dụng Game “Đi tìm ẩn số”
8. Ứng dụng tháp hình
9. Ứng dụng mô phỏng máy ATM
10. Tình huống thực hành có đáp án
Chương 01:
Phần 08
Sử dụng vòng lặp xử lý các tháp hình
*
* *
* * *
* * * *
* * * * *
* * * * *
* * * *
* * *
* *
*
*
* *
* * *
* * * *
* * * * *
* * * * *
* * * *
* * *
* *
*
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1
212
32123
4321234
543212345
* * * * *
* *
* *
* *
* * * * *
*
* * *
* * * * *
* * * * * * *
Sử dụng vòng lặp xử lý các tháp hình
Chương 01:
1. Tổng quan lập trình JAVA
2. Biến số, hằng số và kiểu dữ liệu
3. Toán tử và hàm toán học
4. Phát biểu điều kiện
5. Sử dụng Vòng lặp
6. Ứng dụng máy tính bỏ túi
7. Ứng dụng Game “Đi tìm ẩn số”
8. Ứng dụng tháp hình
9. Ứng dụng mô phỏng máy ATM
10. Tình huống thực hành có đáp án
Chương 01:
Phần 09: Mô phỏng máy ATM
Mô phỏng máy ATM
Chương 01:
1. Tổng quan lập trình JAVA
2. Biến số, hằng số và kiểu dữ liệu
3. Toán tử và hàm toán học
4. Phát biểu điều kiện
5. Sử dụng Vòng lặp
6. Ứng dụng máy tính bỏ túi
7. Ứng dụng Game “Đi tìm ẩn số”
8. Ứng dụng tháp hình
9. Ứng dụng mô phỏng máy ATM
10. Tình huống thực hành có đáp án
Chương 01:
Phần 10: Tình huống thực hành
Sử dụng vòng lặp xử lý các tháp hình
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
*
***
*****
*******
*********
***********
*********
*******
*****
***
*
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
Chương 02:
1. Class & Object
2. Property & Method
3. Overloading method
4. Constructor
5. Inheritance
6. Overriding method
7. Access Modifier
8. Static variable & static method
9. Xây dựng class Fraction
10. Tình huống thực hành có đáp án
Chương 02:
1. Class & Object
2. Property & Method
3. Overloading method
4. Constructor
5. Inheritance
6. Overriding method
7. Access Modifier
8. Static variable & static method
9. Xây dựng class Fraction
10. Tình huống thực hành có đáp án
Chương 02:
Phần 1 – Class & Object
Lập trình hướng thủ tục & hướng đối tượng
Lập trình hướng thủ tục
• Giải quyết vấn đề từng bước đến khi đạt yêu cầu
• Lập trình từ trên xuống
• Lập trình theo hàm  chỉ tạo ra hàm xử lý khi gặp vấn đề nào đó
Lập trình hướng đối tượng
• Dựa trên nền tảng các lớp đã xây dựng sẵn
• Xác định trước các chức năng cần phải thực hiện
Lập trình hướng đối tượng
• OOP – Object oriented programming là kiểu lập trình lấy đối tượng làm
nền tảng
• Đơn giản hóa việc phát triển chương trình
• Tạo ra các chương trình có tình mềm dẻo và linh động cao
• Dễ dàng phát triển, bảo trì và nâng cấp.
Phân biệt Class & Object
Class chỉ một cái gì đó chung chung, object là một cái cụ thể
• Công thức làm bánh quy là một Class  bánh quy là một Object
• Con gái là một Class  Hồng là một Object
• Con mèo là một Class  Con mèo Mimi nhà tôi là một Object
• Bản vẽ là một Class  Ngôi nhà của tôi là một Object
Khai báo Class
package chap02.oop;
public class Main {
public static void main(String[] args) {
System.out.println("Main.main");
}
}
class Student {
}
Tạo class Student nằm trong Main.java
 Thêm từ khóa public vào trước class Student ?
Khởi tạo đối tượng của Class
package chap02.oop;
public class Main {
public static void main(String[] args) {
Student studentOne = new Student();
Student studentTwo = new Student();
}
}
Tạo class Student nằm trong Main.java
 Tách class Student thành 1 file riêng (cùng package)
 Tách class Student thành 1 file riêng (khác package)
Chương 02:
1. Class & Object
2. Property & Method
3. Overloading method
4. Constructor
5. Inheritance
6. Overriding method
7. Access Modifier
8. Static variable & static method
9. Xây dựng class Fraction
10. Tình huống thực hành có đáp án
Chương 02:
Phần 2 – Property & Method
Hiểu thế nào về Property & Method
Property (Thuộc tính)
• Là các đặc điểm, đặc tính của một lớp
Method (Phương thức)
• Là các hành động có thể được thực hiện từ lớp
• Phương thức cũng giống như hàm, nhưng là hàm riêng của lớp
Ví dụ về phương thức và thuộc tính
Xét Object “Sinh viên Yến Trang”
• Đặc điểm: tóc dài, má lúng đồng tiền, cao 1.7 m, …  thuộc tính
• Hành động: ăn, ngủ, dạy anh văn, đánh đàn, …  phương thức
Xét Object “Con cún Ken nhà tôi”
• Đặc điểm: lông xoăn, màu xám, đuôi ngắn, …  thuộc tính
• Hành động: ăn, ngủ, bắt chuột, …  phương thức
Khai báo property
public class Student {
public String name;
public String code;
public int birthday;
}
Access modifiers
(phạm vi truy xuất)
Data type
(kiểu dữ liệu)
Property
(tên của thuộc tính)
 Truy cập và gán giá trị cho các thuộc tính
Truy cập và gán giá trị cho các thuộc tính
public static void main(String[] args) {
Student studentOne = new Student();
studentOne.birthday = 1994;
studentOne.name = "John";
studentOne.code = "S001";
System.out.println("birthday: " + studentOne.birthday);
System.out.println("name: " + studentOne.name);
System.out.println("code: " + studentOne.code);
}
Phương thức getter và setter
public static void main(String[] args) {
Student studentOne = new Student();
studentOne.birthday = 1994;
studentOne.name = "John";
studentOne.code = "S001";
System.out.println("birthday: " + studentOne.birthday);
System.out.println("name: " + studentOne.name);
System.out.println("code: " + studentOne.code);
}
setter
getter
Khai báo method
public class People {
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
[access] [data] [method] ([param], […]) {
// your code here
}
Chương 02:
1. Class & Object
2. Property & Method
3. Overloading method
4. Constructor
5. Inheritance
6. Overriding method
7. Access Modifier
8. Static variable & static method
9. Xây dựng class Fraction
10. Tình huống thực hành có đáp án
Chương 02:
Phần 3 – Overloading Method
Overloading method (nạp chồng phương thức)
Overloading method là những phương thức nằm trong cùng một class có
cùng tên nhưng khác các tham số (khác kiểu dữ liệu, khác số lượng tham số)
public void setCode(String code) {}
public void setCode() {}
public void setCode(String first, int last) {}
public void setCode(int code) {}
Chương 02:
1. Class & Object
2. Property & Method
3. Overloading method
4. Constructor
5. Inheritance
6. Overriding method
7. Access Modifier
8. Static variable & static method
9. Xây dựng class Fraction
10. Tình huống thực hành có đáp án
Chương 02:
Phần 4 – Constructor
Constructor (phương thức khởi tạo)
• Contructor được gọi tự động và được gọi đầu tiên khi một object được
khởi tạo
• Contructor không có giá trị trả về, có thể có tham số hoặc không có
• Constructor phải có cùng tên với lớp
• Constructor có thể bị nạp chồng (overloading)
• Nếu một class chưa khai báo constructor thì sẽ được JAVA cung cấp một
constructor mặc định (default constructor).
Constructor (phương thức khởi tạo)
public class Student{
public String name;
public Student(){
System.out.println("Constructor 1");
this.setName("John");
}
public Student(String name){
System.out.println("Constructor 2");
this.setName(name);
}
}
Chương 02:
1. Class & Object
2. Property & Method
3. Overloading method
4. Constructor
5. Inheritance
6. Overriding method
7. Access Modifier
8. Static variable & static method
9. Xây dựng class Fraction
10. Tình huống thực hành có đáp án
Chương 02:
Phần 5 – Inheritance
Tình huống
Student
--------------------
+ name
+ code
+ score
--------------------
getName
setName (String name)
getCode ()
setCode (String code)
showInfo ()
getScore ()
setScore (Double score)
Teacher
--------------------
+ name
+ code
+ salary
--------------------
getName
setName (String name)
getCode ()
setCode (String code)
showInfo ()
getSalary ()
setSalary (Double score)
Person
--------------------
+ name
+ code
--------------------
getName
setName (String name)
getCode ()
setCode (String code)
showInfo ()
Tình huống
Student
--------------------
+ score
--------------------
getScore ()
setScore (Double score)
Teacher
--------------------
+ salary
--------------------
getSalary ()
setSalary (Double score)
Person
--------------------
+ name
+ code
--------------------
getName
setName (String name)
getCode ()
setCode (String code)
showInfo ()
Inheritance (sự kế thừa)
Student kế thừa từ Person được biểu diễn qua từ khóa extends
class Student extends Person{
}
• Student gọi là class con (subclass), Person gọi là class cha (superclass)
• Student nếu đã kế thừa từ Person thì không thể kế thừa thêm lớp khác
Chống kế thừa
final public class Person{
}
• Từ khóa final cho biết Person là lớp hằng  không lớp nào có thể kế
thừa từ lớp Person được nữa
Chương 02:
1. Class & Object
2. Property & Method
3. Overloading method
4. Constructor
5. Inheritance
6. Overriding method
7. Access Modifier
8. Static variable & static method
9. Xây dựng class Fraction
10. Tình huống thực hành có đáp án
Chương 02:
Phần 6 – Overriding
Overriding (sự ghi đè)
• Phương thức đã xuất hiện ở lớp cha và xuất hiện tiếp ở lớp con.
• Khi đối tượng thuộc lớp con gọi phương thức thì sẽ chọn lựa và chạy
theo phương thức trong lớp con.
• Nếu lớp con không có phương thức đó thì mới gọi phương thức đó ở lớp
cha
Overloading vs Overriding
• Xuất hiện: trong cùng lớp
• Tên phương thức: giống nhau
• Số lượng tham số và kiểu dữ liệu của
tham số: có thể khác nhau
• Đa hình (polymorphism) trong quá
trình biên dịch
Overloading (nạp chồng) Overriding (ghi đè)
• Xuất hiện: ở class cha và class con
• Tên phương thức: giống nhau
• Số lượng tham số và kiểu dữ liệu của
tham số: giống nhau
• Đa hình (polymorphism) trong quá
trình thực thi
Chương 02:
1. Class & Object
2. Property & Method
3. Overloading method
4. Constructor
5. Inheritance
6. Overriding method
7. Access Modifier
8. Static variable & static method
9. Xây dựng class Fraction
10. Tình huống thực hành có đáp án
Chương 02:
Phần 7 – Access modifier
Access modifier
Access modifier cấp độ truy cập cho class, property và method
public class Student {}
• Private chỉ truy cập được trong class (property, method)
• Null (rỗng) truy cập trong package (class, property, method)
• Protected truy cập trong package và các subclasses (property, method)
• Public truy cập từ bất kỳ đâu (class, property, method)
Chương 02:
1. Class & Object
2. Property & Method
3. Overloading method
4. Constructor
5. Inheritance
6. Overriding method
7. Access Modifier
8. Static variable & static method
9. Xây dựng class Fraction
10. Tình huống thực hành có đáp án
Chương 02:
Phần 8 – Static variable & Static method
Static keyword
• Static keyword được sử dụng chủ yếu trong việc quản lý bộ nhớ
• Static có thể được áp dụng cho:
• variable (class variable)
• method (class method)
• block
• nested class
Static variable
public class Student{
private String name;
private String college = "CTU";
}
name = John
college = CTU
name = Peter
college = CTU
name = Mary
college = CTU
name = Peter
name = John name = Mary
college = CTU
Static method
• Static method thuộc về lớp không thuộc về đối tượng
• Static method được gọi mà không cần tạo một thể hiện của lớp.
• Static method có thể truy cập và thay đổi giá tị của static variable
• Các property và method không thỏa static thì static method không có
quyền truy cập vào
Chương 02:
1. Class & Object
2. Property & Method
3. Overloading method
4. Constructor
5. Inheritance
6. Overriding method
7. Access Modifier
8. Static variable & static method
9. Xây dựng class Fraction
10. Tình huống thực hành có đáp án
Chương 02:
Phần 9 – Xây dựng class Fraction
Class Fraction
• Nhập phân số (tử số và mẫu số)
• In phân số
• Kiểm tra phân số tối giản
• Tối giản phân số
• Thực hiện phép cộng 2 phân số
• Thực hiện phép trừ 2 phân số
• Thực hiện phép nhân 2 phân số
• Thực hiện phép chia 2 phân số
Class Fraction
Thao tác trên hai phân số
Tối giản phân số
…
Cộng hai phân số
Tìm UCLN của hai số
…
Kiểm tra phân số tối giản
Chương 02:
1. Class & Object
2. Property & Method
3. Overloading method
4. Constructor
5. Inheritance
6. Overriding method
7. Access Modifier
8. Static variable & static method
9. Xây dựng class Fraction
10. Tình huống thực hành có đáp án
Chương 02:
Phần 10 – Tình huống thực hành
Xây dựng class Book
• Nhập thông tin một quyển sách (id, tên và giá tiền của quyển sách đó)
• In thông tin quyển sách
• Cập nhật thông tin quyển sách
Chương 03:
1. Khai báo mảng và truy cập mảng
2. Thao tác trên mảng một chiều
3. Sử dụng Class Arrays
4. Mảng đa chiều và các thao tác trên mảng
5. Tình huống thực hành có đáp án
Chương 03:
1. Khai báo mảng và truy cập mảng
2. Thao tác trên mảng một chiều
3. Sử dụng Class Arrays
4. Mảng đa chiều và các thao tác trên mảng
5. Tình huống thực hành có đáp án
Chương 03:
Phần 1 – Khai báo và truy cập mảng
Tình huống và khái niệm về mảng
• Mảng là một biến đặc biệt và có thể lưu trữ nhiều giá trị khác nhau có
cùng một kiểu dữ liệu
• Một biến thông thường chỉ chứa một giá trị duy nhất, nếu chúng ta
muốn chứa nhiều giá trị trong một biến thì biến đó phải là một mảng
• Lưu trữ tên của một sinh viên nào đó  variable studentA  lưu trữ
tên của 100 sinh viên  100 biến studentX
Các cách khai báo mảng
• int arrOne[];
• int[] arrInt ;
• int[] arrInt = new int[5];
• int arrInt[] = {30, 23, 31, 36, 34};
• String arrString[] = {"Zend 2", "PHP", "Java", "Javascript"};
Zend 2arrString[]  PHP Java Javascript
[0] [1] [2] [3]
Chương 03:
1. Khai báo mảng và truy cập mảng
2. Thao tác trên mảng một chiều
3. Sử dụng Class Arrays
4. Mảng đa chiều và các thao tác trên mảng
5. Tình huống thực hành có đáp án
Chương 03:
Phần 2 – Thao tác trên mảng một chiều
Các thao tác trên mảng
• Truy cập vào các phần tử trên mảng
• Duyệt mảng với vòng lặp for
• Nhập mảng
• Tính tổng các phần tử trong mảng Number
• Tìm giá trị min, max trong mảng Number
Chương 03:
1. Khai báo mảng và truy cập mảng
2. Thao tác trên mảng một chiều
3. Sử dụng Class Arrays
4. Mảng đa chiều và các thao tác trên mảng
5. Tình huống thực hành có đáp án
Chương 03:
Phần 3 – Sử dụng class Arrays
Sử dụng java.util.Arrays
• Sao chép mảng Arrays.copyOf
• Sao chép mảng có chọn lọc Arrays.copyOfRange
• In mảng Arrays.toString
• Sắp xếp mảng Arrays.sort (tang dần, giảm dần)
Chương 03:
1. Khai báo mảng và truy cập mảng
2. Thao tác trên mảng một chiều
3. Sử dụng Class Arrays
4. Mảng đa chiều và các thao tác trên mảng
5. Tình huống thực hành có đáp án
Chương 03:
Phần 4
Mảng đa chiều và các thao tác trên mảng
Mảng đa chiều
• Mảng đa chiều (mảng nhiều chiều) là một mảng mà các phần tử trong
mảng là các mảng khác.
• Mảng hai chiều là mảng được sử dụng nhiều nhất trong số các mảng
nhiều chiều. Mảng hai chiều có số hàng và số cột xác định (thường áp
dụng biểu diễn cho các ma trận)
• int[][] arrMulti = new int[2][3]; // 2 hàng 3 cột
Mảng đa chiều
int[][] arrMulti = { { 2, 9, 1 }, { 3, 6, 7} };
1
[0] [2]
7
9
6
2
3
[1]
[0]
[1]
arrMulti [1] [0]= 3;
arrMulti [1] [1] = 6;
arrMulti [1] [2]= 7;
arrMulti [0] [0] = 2;
arrMulti [0] [1] = 9;
arrMulti [0] [2] = 1;
Các thao tác trên mảng đa chiều
• Truy cập vào các phần tử trên mảng đa chiều
• Duyệt mảng với vòng lặp for
• Nhập và in ma trận
• Tính tổng các phần tử trên một dòng nào đó của ma trận
• Tính tổng các phần tử trên một cột nào đó của ma trận
• Tính tổng các phần tử trên đường chéo của ma trận vuông
• Tìm phần tử lớn nhất trong ma trận
Chương 03:
1. Khai báo mảng và truy cập mảng
2. Thao tác trên mảng một chiều
3. Sử dụng Class Arrays
4. Mảng đa chiều và các thao tác trên mảng
5. Tình huống thực hành có đáp án
Chương 03:
Phần 5 – Tình huống thực hành
Thao tác trên ma trận vuông
Xuất các phần tử nằm phía trên (phía dưới) đường chéo chính
1
7
9
6
2
3
814
Các phần tử nằm trên đường chéo chính: 2 – 6 – 8
 Các phần tử nằm phía trên đường chéo chính: 9 – 1 – 7
 Các phần tử nằm phía dưới đường chéo chính: 3 – 4 – 1
Xây dựng giải thuật để nhập ma trận vuông và thực
hiện hai yêu cầu trên
Thao tác trên ma trận
Tìm các phần tử lớn nhất ở mỗi dòng và tính tổng các phần tử đó
1
7
9
6
2
3
814
Ma trận có 3 dòng:
• Dòng 1 có phần tử lớn nhất: 9
• Dòng 1 có phần tử lớn nhất: 7
• Dòng 1 có phần tử lớn nhất: 8
Tổng: 9 + 7 + 8 = 26
Xây dựng giải thuật để nhập ma trận và thực hiện yêu cầu trên
Thao tác trên ma trận
Sắp xếp ma trận tăng dần
1
7
9
6
2
3
814
Xây dựng giải thuật để nhập ma trận và thực hiện yêu cầu trên
2
6
1
4
1
3
987
1. Exception và xử lý ngoại lệ
2. Sử dụng Try – catch – finally
3. Từ khóa throws và throw
4. Xây dựng ứng dụng BookStore Version 3
Chương 04:
Exception là gì ?
• Exception các bất thường xảy ra khi chương trình thực thi
• Exception nếu không được xử lý tốt sẽ làm cho chương trình bị dừng đột
ngột, mất dữ liệu, ảnh hưởng đến các chương trình khác
• Các nguyên nhân gây ra Exception: input không phù hợp, đọc file khi file
không tồn tại, tràn bộ nhớ, …
Sử dụng Try … catch … finally
try {
// khối lệnh nghi ngờ exception xảy ra
} catch (ArithmeticException e) {
System.out.println("Error: " + e);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Error: " + e);
} catch (Exception e) {
System.out.println("Error: " + e);
} finally {
// Khối lệnh luôn được thực thi
}
Các class thuộc Exception
• ClassNotFoundException | Không tìm thấy Class
• FileNotFoundException | Không tìm thấy file
• ArrayIndexOutOfBoundsException | Vượt quá chỉ mục của mảng
• ArithmeticException | Lỗi thực thi một phép toán
• NumberFormatException | Định dạng số không đúng
• NoSuchMethodException | Sai tên phương thức
• …
1. Kiểu dữ liệu String
2. Sử dụng class StringBuilder
3. Kỹ thuật xử lý chuỗi
4. Regular Expression
5. Kiểm tra sự hợp lệ của dữ liệu với
Regular Expression
6. Kỹ thuật tìm kiếm và thay thế chuỗi
7. Kỹ thuật bóc tách chuỗi
8. Ứng dụng chuẩn hóa chuỗi
9. Ứng dụng chuyển số thành chữ
10. Tình huống thực hành có đáp án
11. BookStore Version 4
Chương 05:
1. Kiểu dữ liệu String
2. Sử dụng class StringBuilder
3. Kỹ thuật xử lý chuỗi
4. Regular Expression
5. Kiểm tra sự hợp lệ của dữ liệu với
Regular Expression
6. Kỹ thuật tìm kiếm và thay thế chuỗi
7. Kỹ thuật bóc tách chuỗi
8. Ứng dụng chuẩn hóa chuỗi
9. Ứng dụng chuyển số thành chữ
10. Tình huống thực hành có đáp án
11. BookStore Version 4
Chương 05:
Kiểu dữ liệu String
• Tìm hiểu kiểu dữ liệu String
• Các trường hợp khởi tạo đối tượng kiểu String
• Chiều dài của chuỗi
• Nối chuỗi
• So sánh chuỗi == hoặc equals hoặc equalsIgnoreCase
• Tạo ra vùng nhớ rác
1. Kiểu dữ liệu String
2. Sử dụng class StringBuilder
3. Kỹ thuật xử lý chuỗi
4. Regular Expression
5. Kiểm tra sự hợp lệ của dữ liệu với
Regular Expression
6. Kỹ thuật tìm kiếm và thay thế chuỗi
7. Kỹ thuật bóc tách chuỗi
8. Ứng dụng chuẩn hóa chuỗi
9. Ứng dụng chuyển số thành chữ
10. Tình huống thực hành có đáp án
11. BookStore Version 4
Chương 05:
Sử dụng class StringBuilder
• Thao tác trên các kiểu dữ liệu String và không tạo ra vùng nhớ rác
• Các phương thướng thông dụng
 append
 insert
 deleteCharAt
 delete
1. Kiểu dữ liệu String
2. Sử dụng class StringBuilder
3. Kỹ thuật xử lý chuỗi
4. Regular Expression
5. Kiểm tra sự hợp lệ của dữ liệu với
Regular Expression
6. Kỹ thuật tìm kiếm và thay thế chuỗi
7. Kỹ thuật bóc tách chuỗi
8. Ứng dụng chuẩn hóa chuỗi
9. Ứng dụng chuyển số thành chữ
10. Tình huống thực hành có đáp án
11. BookStore Version 4
Chương 05:
Kỹ thuật xử lý chuỗi cơ bản
• length() Trả về độ dài chuỗi
• charAt() Lấy ra ký tự nằm ở vị trí index trong chuỗi
• toLowerCase() Chuyển chuỗi sang chữ thường
• toUpperCase() Chuyển chuỗi sang chữ in hoa
• trim() Loại bỏ khoảng trống 2 bên chuỗi
• substring() Trích xuất chuỗi con
1. Kiểu dữ liệu String
2. Sử dụng class StringBuilder
3. Kỹ thuật xử lý chuỗi
4. Regular Expression
5. Kiểm tra sự hợp lệ của dữ liệu với
Regular Expression
6. Kỹ thuật tìm kiếm và thay thế chuỗi
7. Kỹ thuật bóc tách chuỗi
8. Ứng dụng chuẩn hóa chuỗi
9. Ứng dụng chuyển số thành chữ
10. Tình huống thực hành có đáp án
11. BookStore Version 4
Chương 05:
Regular Expression là gì ?
• Regular expresion (RE – biểu thức chính quy) bắt nguồn từ ngôn ngữ Perl, xuất
hiện và được ứng dụng rất nhiều trong các ngôn ngữ lập trình
• Regular expression có thể hiểu đơn giản là một biểu thức dùng để mô tả một mẫu
chuỗi nào đó (mẫu: các chuỗi văn bản tuân theo một quy luật sắp xếp nhất định).
 dd/mm/yyyy là mẫu mô tả ngày tháng năm
 xxxx@gmail.com là mẫu mô tả địa chỉ email
Regular Expression làm được gì ?
• Biểu thức chính quy giúp giảm bớt những dòng mã trong quá trình xử lý chuỗi
bằng những biểu thức ngắn gọn nhưng đem lại kết quả như mong đợi
• Regular expression thường được sử dụng trong các trường hợp
 Kiểm tra giá trị các phần tử của Form
 Xử lý các yêu cầu phức tạp trong chuỗi (bóc tách, thay đổi nội dung, loại bỏ
ký tự, …)
Ký hiệu thường dùng trong RE
STT Ký hiệu Ý nghĩa
1 ^ Tìm kiếm giá trị từ đầu chuỗi nguồn
2 $ Tìm kiếm giá trị từ cuối chuỗi nguồn
3 . Đại diện cho một ký tự bất ký
4  Tìm kiếm các giá trị đặt biệt trong chuỗi (^ $ . / @)
5 [] Tìm tập hợp các ký tự
6 – Lấy các ký tự trong một khoảng nào đó (thường dùng với ký hiệu [])
7 [^]
Nếu một ký tự ^ đứng trước một ký tự hay tập hợp có nghĩa là phủ định
của ký hiệu hay tập hợp đó
8 (A|B|C) Lựa chọn các giá trị A hoặc B hoặc C
Ký hiệu thường dùng trong RE
STT Ký hiệu Ý nghĩa
9 * 0 hoặc nhiều lần xuất hiện
10 + 1 hoặc nhiều lần xuất hiện
11 ? 0 hoặc 1 lần xuất hiện
12 {n,m} Số lần xuất hiện của ký tự từ n đến m lần
13 *? 0 lần xuất hiện
14 +? 1 lần xuất hiện
15 ?? 0 lần xuất hiện
16 w Tương đương [A-z0-9_]
17 W Tương đương [^A-z0-9_]
Ký hiệu thường dùng trong RE
STT Ký hiệu Ý nghĩa
18 s Tập hợp những ký tự khoảng trắng
19 S Tập hợp những ký tự không là ký tự khoảng trắng
20 d [0-9] Tập hợp những ký tự từ 0 đến 9
21 D [^0-9] Tập hợp những ký tự không thuộc từ 0 đến 9
22 A Tìm kiếm giá trị từ đầu chuỗi nguồn
23 Z Tìm kiếm giá trị từ cuối chuỗi nguồn
Kiểm tra ID hợp lệ
1. ID phải có chiều dài là 7 ký tự XXX-YYY
2. XXX phải nằm trong tập hợp các giá trị ký tự A-Z hoặc a-z
3. YYY phải là các giá trị số từ 2 đến 8
Pattern: [A-z]{3}-[2-8]{3}
Kiểm tra tên đăng nhập hợp lệ
1. Tên đăng nhập phải bắt đầu bằng một ký tự hoặc dấu gạch dưới
2. Tên đăng nhập là tập hợp của các ký tự a-z, 0-9 và có thể có các ký tự như dấu
chấm ( . ), dấu gạch dưới ( _ )
3. Độ dài tối thiểu của tên đăng nhập là là 5 ký tự và độ dài tối đa là 32 ký tự
Pattern [A-Za-z_][A-Za-z0-9_.]{4,31}
Kiểm tra địa chỉ website hợp lệ
1. http://www.zend.vn
2. https://www.zend.vn.vn
3. http://zend.vn
4. https://zend.vn
5. www.zend.vn
Pattern ((https?://)(www.)?|www.)[a-z0-9-]{3,20}(.[a-z]{2,4}){1,2}
1. Kiểu dữ liệu String
2. Sử dụng class StringBuilder
3. Kỹ thuật xử lý chuỗi
4. Regular Expression
5. Kiểm tra sự hợp lệ của dữ liệu với
Regular Expression
6. Kỹ thuật tìm kiếm và thay thế chuỗi
7. Kỹ thuật bóc tách chuỗi
8. Ứng dụng chuẩn hóa chuỗi
9. Ứng dụng chuyển số thành chữ
10. Tình huống thực hành có đáp án
11. BookStore Version 4
Chương 05:
Kiểm tra sự hợp lệ của dữ liệu với RE
Sử dụng phương thức matches để kiểm tra chuỗi có trùng khớp với mẫu RE hay
không ?
Ví dụ
• Kiểm tra số tự nhiên hợp lệ
• Kiểm tra ID hợp lệ
• Kiểm tra username hợp lệ
• Kiểm tra địa chỉ website hợp lệ
1. Kiểu dữ liệu String
2. Sử dụng class StringBuilder
3. Kỹ thuật xử lý chuỗi
4. Regular Expression
5. Kiểm tra sự hợp lệ của dữ liệu với
Regular Expression
6. Kỹ thuật tìm kiếm và thay thế chuỗi
7. Kỹ thuật bóc tách chuỗi
8. Ứng dụng chuẩn hóa chuỗi
9. Ứng dụng chuyển số thành chữ
10. Tình huống thực hành có đáp án
11. BookStore Version 4
Chương 05:
Kỹ thuật tìm kiếm và thay thế chuỗi
• replace không kết hợp được với RE
• replaceAll kết hợp được với RE
Bài tập áp dụng
• Java is vory vory oasy!  Java is very very easy!
• kho1a ho5c la65p tri2nh java  khoa hoc lap trinh java
• abcdAB69CD!@#$%^&*()0<>?_{}+21  69021
1. Kiểu dữ liệu String
2. Sử dụng class StringBuilder
3. Kỹ thuật xử lý chuỗi
4. Regular Expression
5. Kiểm tra sự hợp lệ của dữ liệu với
Regular Expression
6. Kỹ thuật tìm kiếm và thay thế chuỗi
7. Kỹ thuật bóc tách chuỗi
8. Ứng dụng chuẩn hóa chuỗi
9. Ứng dụng chuyển số thành chữ
10. Tình huống thực hành có đáp án
11. BookStore Version 4
Chương 05:
Kỹ thuật bóc tách chuỗi
• token chuỗi có giá trị xác định sau khi được bóc tách
• delimiter ký tự xác định dùng để bóc tách chuỗi
Ví dụ
• Java is easy!
 Token: java, is, easy! Delimiter: khoảng trắng
• Java--is--easy!
 Token: java, is, easy! Delimiter: --
Kỹ thuật bóc tách chuỗi
• Scanner: useDelimiter, hasNext, next
• split
• StringTokenizer
Ví dụ
• Java_is_very_very_easy
• Java--is--very--very--easy
• Java--is_very_very--easy
• Java_12_is_233__very_32_very__156_easy
1. Kiểu dữ liệu String
2. Sử dụng class StringBuilder
3. Kỹ thuật xử lý chuỗi
4. Regular Expression
5. Kiểm tra sự hợp lệ của dữ liệu với
Regular Expression
6. Kỹ thuật tìm kiếm và thay thế chuỗi
7. Kỹ thuật bóc tách chuỗi
8. Ứng dụng chuẩn hóa chuỗi
9. Ứng dụng chuyển số thành chữ
10. Tình huống thực hành có đáp án
11. BookStore Version 4
Chương 05:
Ứng dụng chuẩn hóa chuỗi
Chuỗi đạt chuẩn dạng 1.
• Không có khoảng trắng ở đầu và cuối chuỗi
• Giữa các từ trong chuỗi chỉ tồn tại một khoảng trắng duy nhất
• Ký tự đầu tiên trong chuỗi phải là ký tự in hoa
• Các ký tự còn lại phải ở dạng chữ thường
• Hết câu bằng dấu chấm
Ứng dụng chuẩn hóa chuỗi
Chuỗi Đạt Chuẩn Dạng 2.
• Không có khoảng trắng ở đầu và cuối chuỗi
• Giữa các từ trong chuỗi chỉ tồn tại một khoảng trắng duy nhất
• Ký tự đầu tiên trong chuỗi phải là ký tự in hoa,
• Hết câu bằng dấu chấm
• Các ký tự đầu tiên ở mỗi từ phải viết được viết hoa
1. Kiểu dữ liệu String
2. Sử dụng class StringBuilder
3. Kỹ thuật xử lý chuỗi
4. Regular Expression
5. Kiểm tra sự hợp lệ của dữ liệu với
Regular Expression
6. Kỹ thuật tìm kiếm và thay thế chuỗi
7. Kỹ thuật bóc tách chuỗi
8. Ứng dụng chuẩn hóa chuỗi
9. Ứng dụng chuyển số thành chữ
10. Tình huống thực hành có đáp án
11. BookStore Version 4
Chương 05:
Ứng dụng đọc số có 3 chữ số
• 976 = Chín trăm bảy mươi sáu
• 206 = Hai trăm linh sáu
• 115 = Một trăm mười lăm
• 291 = Hai trăm chín mươi mốt
1. Kiểu dữ liệu String
2. Sử dụng class StringBuilder
3. Kỹ thuật xử lý chuỗi
4. Regular Expression
5. Kiểm tra sự hợp lệ của dữ liệu với
Regular Expression
6. Kỹ thuật tìm kiếm và thay thế chuỗi
7. Kỹ thuật bóc tách chuỗi
8. Ứng dụng chuẩn hóa chuỗi
9. Ứng dụng chuyển số thành chữ
10. Tình huống thực hành có đáp án
11. BookStore Version 4
Chương 05:
Kiểm tra email hợp lệ
1. Địa chỉ email phải bắt đầu bằng một ký tự.
2. Địa chỉ email là tập hợp của các ký tự a-z, 0 đến 9 và có thể có các ký tự như dấu
chấm ( . ), dấu gạch dưới ( _ )
3. Độ dài tối thiểu của email là 5 ký tự và độ dài tối đa là 32 ký tự
4. Tên miền của email có thể là tên miền cấp 1 hoặc tên miền cấp 2
Pattern: ^[a-z][a-z0-9_.]{4,31}@[a-z0-9]{2,}(.[a-z0-9]{2,4}){1,2}$
Đọc số nhỏ hơn 999
• 9 chín
• 12 mười hai
• 97 chín mươi bảy
• 875 tám trăm bảy mươi lăm
1. Kiểu dữ liệu String
2. Sử dụng class StringBuilder
3. Kỹ thuật xử lý chuỗi
4. Regular Expression
5. Kiểm tra sự hợp lệ của dữ liệu với
Regular Expression
6. Kỹ thuật tìm kiếm và thay thế chuỗi
7. Kỹ thuật bóc tách chuỗi
8. Ứng dụng chuẩn hóa chuỗi
9. Ứng dụng chuyển số thành chữ
10. Tình huống thực hành có đáp án
11. BookStore Version 4
Chương 05:
Chương 06:
1. Abstract class
2. Interface
3. So sánh Abstract và Interface
4. Sử dụng class Object
5. Giảm thiểu sự phụ thuộc giữa các
class
6. Inner Class trong Java
7. Xây dựng ứng BookStore Version 5
Abstract class
• Abstract class (lớp trừu tượng) là class chứa bộ khung cơ bản, với các thuộc
tính, các phương thức và các phương thức trừu tượng (abstract method
phương thức chưa hoàn thiện: chỉ có tên, kiểu trả về, tham số)
• Các lớp extends từ lớp abstract sẽ có nhiệm vụ hoàn thiện các abstract method
• Abstract class thường được xây dựng bởi kỹ sư thiết kế hệ thống có kinh
nghiệm
Interface
• Interface không phải là class, đây là một mẫu giao diện quy định một số phương
thức bắt buộc cho một class nào đó
• Interface không cho phép định nghĩa rõ cách hoạt động của phương thức, chỉ
dừng lại ở khai báo phương thức, việc định nghĩa các phương thức này sẽ được
thực hiện ở các class con
Sử dụng default và static trong Interface
• Tạo mới một phương thức trong Interface  định nghĩa cách hoạt động của
phương thức này ở các class implements từ Interface đó.
• Sử dụng từ khóa default hoặc static để khi tạo mới một phương thức thì không
cần phải định nghĩa ở tất cả các class implements từ Interface.
• Sử dụng default method thì cần khởi tạo đối tượng <> Sử dụng static method
thì không cần khởi tạo đối tượng
Abstract Class vs Interface
Những điểm giống nhau
• Chứa các abstract methods
• Không khởi tạo trực tiếp đối tượng mà phải thông qua các class con
Abstract Class vs Interface
Abstract class
+ Là một lớp
+ Mỗi method không bắt buộc phải được
định nghĩa ở lớp con
+ Mỗi lớp con chỉ kế thừa từ một lớp abstract,
một lớp abstract có nhiều lớp con
+ Mỗi phương thức abstract có thể ở trạng
thái protected hoặc public
Interface
+ Không phải lớp
+ Mỗi method bắt buộc phải được định nghĩa ở
lớp con
+ Mỗi lớp con kế thừa từ một hoặc nhiều
Interface, một Interface có nhiều lớp con
+ Mỗi phương thức abstract chỉ ở trạng thái
public
Sử dụng class Object
• Tất cả các class trong Java (có sẵn hay do lập trình viên định nghĩa) đều kế thừa
từ class Object
• Sử dụng phương thức toString() để in ra thông tin của một đối tượng nào đó
• Sử dụng phương thức equals() để so sánh các đối tượng với nhau
Tình huống thực tế “Đi công tác”
ZendVN
Vietnam Airline
Taxi Vinasun
Công ty
tin học X
8h ngày 05/07/2015
Khởi hành 19h ngày 04/07
điện thoại đặt xe
Khởi hành 20h ngày 04/07
điện thoại đặt vé
Tình huống thực tế “Đi công tác”
ZendVN
Vietnam Airline
Taxi Vinasun
Công ty
tin học X
8h ngày 05/07/2015
Phòng Quản Lý
Giảm thiểu sự phụ thuộc giữa các Class
• Giảm thiểu sự phụ thuộc giữa các Class tạo ra sự linh hoạt cao và tính dễ bảo trì
cho ứng dụng
• Nếu giảm thiểu tốt sự phụ thuộc sẽ giúp tăng khả năng dung lại và khả năng dễ
đọc của mã nguồn, tạo cho ứng dụng tính mềm dẻo và khả năng nâng cấp bảo
trì trở nên đơn giản và nhanh chóng hơn
Inner Class trong JAVA
Inner Class là một class được khai báo và tồn tại bên trong một class khác
• Tạo nhóm quan hệ giữa các class với nhau
• Các class lồng nhau tăng tính dễ đọc và bảo trì cho ứng dụng
• Mã nguồn gắn gọn và đơn giản hơn
Inner Class trong JAVA
Type Description
Member Inner Class Class nằm trong class và ngoài các method
Anonymous Inner Class
Class ẩn danh, được tạo ra để hiện thực các interface hoặc các
class mở rộng khác
Local Inner Class Class nằm trong method
Static Nested Class Static class được tạo ra bởi một class
Nested Interface Interface được tạo ra bởi một class hoặc interface
Chương 07:
1. Collections bạn là ai ?
2. Sử dụng List Interface
3. Sử dụng Set Interface
4. Sử dụng Map Interface
5. Static methods trong Collections
6. Sử dụng Comparable Interface
7. Sử dụng Comparator Interface
8. So sánh giữa các Collection
9. BookStore Version 5
Chương 07:
1. Collections bạn là ai ?
2. Sử dụng List Interface
3. Sử dụng Set Interface
4. Sử dụng Map Interface
5. Static methods trong Collections
6. Sử dụng Comparable Interface
7. Sử dụng Comparator Interface
8. So sánh giữa các Collection
9. BookStore Version 5
Collections là gì ?
 Nhược điểm của kiểu dữ liệu Array
• Kích thước cố định
• Các phần tử phải cùng kiểu dữ liệu và nằm liền kề nhau trong bộ nhớ
 Collection khắc phục tất cả các nhược điểm trên ngoài ra còn hỗ trợ sẵn các
phương thức: tìm kiếm, sắp xếp, chèn, thao tác, xóa phần tử, ..
 Collection là một công cụ có thể chứa và thao tác với các đối tượng thuộc nhiều
kiểu dữ liệu khác nhau
Collection
Interface Class extends implements
ListVector
QueueDeQueue Set
ArrayList
LinkedList
LinkedHashSet HashSet TreeSetSortedSet
LinkedHashMapHashMap
TreeMap
SortedMapMap
Cấu trúc Collection
Cấu trúc Collection
• Tất cả các class và interface của
Collection đều nằm trong package
java.util
• Các phương thức thường sử dụng
trong Collection
 size()
 add()
 isEmpty()
 remove()
 set()
 get()
Chương 07:
1. Collections bạn là ai ?
2. Sử dụng List Interface
3. Sử dụng Set Interface
4. Sử dụng Map Interface
5. Static methods trong Collections
6. Sử dụng Comparable Interface
7. Sử dụng Comparator Interface
8. So sánh giữa các Collection
9. BookStore Version 5
ArrayList
• Sử dụng một mảng động để lưu trữ các phần tử
• Giá trị các phần tử có thể trùng nhau
• Thứ tự thêm vào các element cũng chính là thứ tự
các phần tử trong ArrayList
• Tìm hiểu các phương thức thông dụng và phương
pháp duyệt các phần tử for và Iterator
ListVector
QueueDeQueue
ArrayList
LinkedList
LinkedList
• Sử dụng “doubly linked list” để lưu trữ các phần tử
• Giá trị các phần tử có thể trùng nhau
• Thứ tự thêm vào các element cũng chính là thứ tự
các phần tử trong LinkedList
• Tìm hiểu phương pháp duyệt các phần tử: for và
Iterator
ListVector
QueueDeQueue
ArrayList
LinkedList
ArrayList vs LinkedList
ArrayList
• Sử dụng mảng động để lưu trữ các
phần tử
• Implement: List
• Better for storing and accessing
data
LinkedList
• Sử dụng “doubly linked list” để lưu
trữ các phần tử
• Implement: List và Dequeue
• Better for manipulating
Chương 07:
1. Collections bạn là ai ?
2. Sử dụng List Interface
3. Sử dụng Set Interface
4. Sử dụng Map Interface
5. Static methods trong Collections
6. Sử dụng Comparable Interface
7. Sử dụng Comparator Interface
8. So sánh giữa các Collection
9. BookStore Version 5
Set Interface
• Lưu trữ các phần tử thuộc nhiều kiểu dữ liệu khác nhau nhưng
các phần tử không được lưu trữ theo chỉ số
• Không chứa các phần tử trùng nhau
• Sự khác biệt giữa List và Set: List có thể chứa những phần tử
có giá trị giống nhau còn Set thì không
• Các class tiến hành tìm hiểu: HashSet, LinkedHashSet, TreeSet
Set
HashSet
SortedSet
LinkedHashSet
TreeSet
• HashSet thứ tự các phần tử được thêm vào
bị thay đổi
• LinkedSet thứ tự các phần tử được thêm vào
đảm bảo được giữ nguyên
• TreeSet thứ tự các phần tử được thêm vào
được sắp xếp theo thứ tự tăng dần
HashSet – LinkedHashSet – TreeSet
Chương 07:
1. Collections bạn là ai ?
2. Sử dụng List Interface
3. Sử dụng Set Interface
4. Sử dụng Map Interface
5. So sánh giữa các Collection
6. Static methods trong Collections
7. Sử dụng Comparable Interface
8. Sử dụng Comparator Interface
9. BookStore Version 5
Map Interface
• Lưu trữ các phần tử thuộc nhiều kiểu dữ liệu khác nhau nhưng
các phần tử là một đối tượng bao gồm key và value
• Không chứa các phần tử có khóa (key) giống nhau
• Các class tiến hành tìm hiểu: HashMap, LinkedHashMap,
TreeMap
Map
HashMap
SortedMap
LinkedHashMap
TreeMap
HashMap – LinkedHashMap - TreeMap
• HashMap thứ tự các phần tử thay đối so với thứ tự insert vào
• LinkedHashMap giữ nguyên thứ tự các phần tử
• Treemap thứ tự các phần tử được sắp xếp theo thứ tự tang dần
của key
Map
HashMap
SortedMap
LinkedHashMap
TreeMap
Chương 07:
1. Collections bạn là ai ?
2. Sử dụng List Interface
3. Sử dụng Set Interface
4. Sử dụng Map Interface
5. So sánh giữa các Collection
6. Static methods trong Collections
7. Sử dụng Comparable Interface
8. Sử dụng Comparator Interface
9. BookStore Version 5
So sánh giữa các Collection
• List có thể tồn tại các phần tử có giá trị trùng nhau
• Set không tồn tại các phần tử có giá trị trùng nhau
• Map không tồn tại các phần tử có key trùng nhau
Tình huống luyện tập
• ArrayList – LinkedList
• HashSet – LinkHashSet – TreeSet
• HashMap – LinkHashMap – TreeMap
• Difference between … and … in Java
• Java … vs …
Chương 07:
1. Collections bạn là ai ?
2. Sử dụng List Interface
3. Sử dụng Set Interface
4. Sử dụng Map Interface
5. So sánh giữa các Collection
6. Static methods trong Collections
7. Sử dụng Comparable Interface
8. Sử dụng Comparator Interface
9. BookStore Version 5
Sử dụng Static methods trong Collections
Sử dụng phương thức static của Collections để thực hiện các yêu cầu sau:
• Sắp xếp danh sách theo thứ tự tăng dần
• Đảo ngược vị trí các phần tử trong một danh sách
• Sắp xếp danh sách theo thứ tự giảm dần
• Tìm kiếm phần tử trong danh sách
• Trộn ngẫu nhiên vị trí các phần tử nằm trong danh sách
Chương 07:
1. Collections bạn là ai ?
2. Sử dụng List Interface
3. Sử dụng Set Interface
4. Sử dụng Map Interface
5. So sánh giữa các Collection
6. Static methods trong Collections
7. Sử dụng Comparable Interface
8. Sử dụng Comparator Interface
9. BookStore Version 5
Sử dụng Colections.sort đối với object
• Exception in thread "main" java.lang.ClassCastException: chap06.collection.Course
cannot be cast to java.lang.Comparable
• Khắc phục bằng cách implements Comparable và định nghĩa phương thức
compareTo()
public class Course implements Comparable{
@Override
public int compareTo(Object obj) {
// your code here
}
}
Chương 07:
1. Collections bạn là ai ?
2. Sử dụng List Interface
3. Sử dụng Set Interface
4. Sử dụng Map Interface
5. So sánh giữa các Collection
6. Static methods trong Collections
7. Sử dụng Comparable Interface
8. Sử dụng Comparator Interface
9. BookStore Version 5
Sử dụng Comparator Interface
• Định nghĩa class XComparator implements từ Comparator
• Sử dụng tham số thứ hai trong Collections.sort()
Chương 08:
1. Generic Method
2. Generic Class
3. Generic Collection
4. Ràng buộc dữ liệu trong Generic
5. Xây dựng ứng dụng BookStore V7
Sử dụng Generic như thế nào
• Generic giúp phát hiện sớm các exception trong lúc biên dịch chương trình
• Generic Methods
• Generic Class
• Generic Collection
Chương 09:
Sử dụng class Pattern và Match trong Java Regex
Sử dụng class Pattern và Match trong Java Regex
J a v a 4 i s 8 9 10 e a s y
Pattern pattern = Pattern.compile("s+");//
Matcher matcher = pattern.matcher("Java is easy");
5
group
start end start end
group

More Related Content

What's hot

Báo cáo xây dựng và phát triển phần mềm
Báo cáo xây dựng và phát triển phần mềmBáo cáo xây dựng và phát triển phần mềm
Báo cáo xây dựng và phát triển phần mềmytthuan
 
Trắc Nghiệm Xác Suất Thống Kê (Có Đáp Án)
Trắc Nghiệm Xác Suất Thống Kê (Có Đáp Án) Trắc Nghiệm Xác Suất Thống Kê (Có Đáp Án)
Trắc Nghiệm Xác Suất Thống Kê (Có Đáp Án) nataliej4
 
Kỹ năng tổ chức sự kiện, hội nghị, hội thảo
Kỹ năng tổ chức sự kiện, hội nghị, hội thảoKỹ năng tổ chức sự kiện, hội nghị, hội thảo
Kỹ năng tổ chức sự kiện, hội nghị, hội thảoTâm Việt Group
 
Thuật toán mã hóa rsa
Thuật toán mã hóa rsaThuật toán mã hóa rsa
Thuật toán mã hóa rsaBảo Điệp
 
04 Des Aes
04 Des Aes04 Des Aes
04 Des Aesmeorambo
 
Hadoop trong triển khai Big Data
Hadoop trong triển khai Big DataHadoop trong triển khai Big Data
Hadoop trong triển khai Big DataNguyễn Duy Nhân
 
Tài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng caoTài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng caoZendVN
 
GS. TSKH. Hồ Tú Bảo: Khoa học dữ liệu và Khoa học dữ liệu trong kinh doanh
GS. TSKH. Hồ Tú Bảo: Khoa học dữ liệu và Khoa học dữ liệu trong kinh doanhGS. TSKH. Hồ Tú Bảo: Khoa học dữ liệu và Khoa học dữ liệu trong kinh doanh
GS. TSKH. Hồ Tú Bảo: Khoa học dữ liệu và Khoa học dữ liệu trong kinh doanhKhoa Quốc tế - ĐHQGHN
 
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformMasterCode.vn
 
Ứng dụng chát realtime android
Ứng dụng chát realtime androidỨng dụng chát realtime android
Ứng dụng chát realtime androidNguyen Thieu
 
Phương pháp học tập và nghiên cứu khoa
Phương pháp học tập và nghiên cứu khoaPhương pháp học tập và nghiên cứu khoa
Phương pháp học tập và nghiên cứu khoaYVANLE
 
HẠ TẦNG KHÓA CÔNG KHAI(PKI)
HẠ TẦNG KHÓA CÔNG KHAI(PKI)HẠ TẦNG KHÓA CÔNG KHAI(PKI)
HẠ TẦNG KHÓA CÔNG KHAI(PKI)ducmanhkthd
 
Kỹ năng làm việc nhóm
Kỹ năng làm việc nhómKỹ năng làm việc nhóm
Kỹ năng làm việc nhómTạ Minh Tân
 
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế website cho giảng viên Việ...
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế  website cho giảng viên Việ...Ứng dụng ngôn ngữ UML trong phân tích và thiết kế  website cho giảng viên Việ...
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế website cho giảng viên Việ...Nguyễn Anh
 
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớnCode Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớnNhật Nguyễn Khắc
 
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...nataliej4
 
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương NamTran Van Cuong
 
Tiếng việt thực hành
Tiếng việt thực hànhTiếng việt thực hành
Tiếng việt thực hànhThảo Nguyễn
 

What's hot (20)

Báo cáo xây dựng và phát triển phần mềm
Báo cáo xây dựng và phát triển phần mềmBáo cáo xây dựng và phát triển phần mềm
Báo cáo xây dựng và phát triển phần mềm
 
Trắc Nghiệm Xác Suất Thống Kê (Có Đáp Án)
Trắc Nghiệm Xác Suất Thống Kê (Có Đáp Án) Trắc Nghiệm Xác Suất Thống Kê (Có Đáp Án)
Trắc Nghiệm Xác Suất Thống Kê (Có Đáp Án)
 
Kỹ năng tổ chức sự kiện, hội nghị, hội thảo
Kỹ năng tổ chức sự kiện, hội nghị, hội thảoKỹ năng tổ chức sự kiện, hội nghị, hội thảo
Kỹ năng tổ chức sự kiện, hội nghị, hội thảo
 
Thuật toán mã hóa rsa
Thuật toán mã hóa rsaThuật toán mã hóa rsa
Thuật toán mã hóa rsa
 
04 Des Aes
04 Des Aes04 Des Aes
04 Des Aes
 
Hadoop trong triển khai Big Data
Hadoop trong triển khai Big DataHadoop trong triển khai Big Data
Hadoop trong triển khai Big Data
 
Luận án: Nghiên cứu phát hiện luật kết hợp hiếm và ứng dụng
Luận án: Nghiên cứu phát hiện luật kết hợp hiếm và ứng dụngLuận án: Nghiên cứu phát hiện luật kết hợp hiếm và ứng dụng
Luận án: Nghiên cứu phát hiện luật kết hợp hiếm và ứng dụng
 
Tài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng caoTài liệu lập trình PHP từ căn bản đến nâng cao
Tài liệu lập trình PHP từ căn bản đến nâng cao
 
GS. TSKH. Hồ Tú Bảo: Khoa học dữ liệu và Khoa học dữ liệu trong kinh doanh
GS. TSKH. Hồ Tú Bảo: Khoa học dữ liệu và Khoa học dữ liệu trong kinh doanhGS. TSKH. Hồ Tú Bảo: Khoa học dữ liệu và Khoa học dữ liệu trong kinh doanh
GS. TSKH. Hồ Tú Bảo: Khoa học dữ liệu và Khoa học dữ liệu trong kinh doanh
 
Bài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winformBài 1 - Làm quen với C# - Lập trình winform
Bài 1 - Làm quen với C# - Lập trình winform
 
Ứng dụng chát realtime android
Ứng dụng chát realtime androidỨng dụng chát realtime android
Ứng dụng chát realtime android
 
Phương pháp học tập và nghiên cứu khoa
Phương pháp học tập và nghiên cứu khoaPhương pháp học tập và nghiên cứu khoa
Phương pháp học tập và nghiên cứu khoa
 
HẠ TẦNG KHÓA CÔNG KHAI(PKI)
HẠ TẦNG KHÓA CÔNG KHAI(PKI)HẠ TẦNG KHÓA CÔNG KHAI(PKI)
HẠ TẦNG KHÓA CÔNG KHAI(PKI)
 
05 Edge Detection - VN.pdf
05 Edge Detection - VN.pdf05 Edge Detection - VN.pdf
05 Edge Detection - VN.pdf
 
Kỹ năng làm việc nhóm
Kỹ năng làm việc nhómKỹ năng làm việc nhóm
Kỹ năng làm việc nhóm
 
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế website cho giảng viên Việ...
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế  website cho giảng viên Việ...Ứng dụng ngôn ngữ UML trong phân tích và thiết kế  website cho giảng viên Việ...
Ứng dụng ngôn ngữ UML trong phân tích và thiết kế website cho giảng viên Việ...
 
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớnCode Refactoring: Thay đổi nhỏ - Lợi ích lớn
Code Refactoring: Thay đổi nhỏ - Lợi ích lớn
 
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
 
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
 
Tiếng việt thực hành
Tiếng việt thực hànhTiếng việt thực hành
Tiếng việt thực hành
 

Viewers also liked

Nền tảng lập trình java (Core java)
Nền tảng lập trình java (Core java)Nền tảng lập trình java (Core java)
Nền tảng lập trình java (Core java)Trần Thiên Đại
 
Tài liệu lập trình jQuery
Tài liệu lập trình jQueryTài liệu lập trình jQuery
Tài liệu lập trình jQueryZendVN
 
Java practice book - Bài tập môn Java
Java practice book - Bài tập môn JavaJava practice book - Bài tập môn Java
Java practice book - Bài tập môn JavaĐộc Cô
 
Nghiên cưú và phát triển Android OS
Nghiên cưú và phát triển Android OSNghiên cưú và phát triển Android OS
Nghiên cưú và phát triển Android OSNguyễn Anh
 
Giới thiệu PHP 7
Giới thiệu PHP 7Giới thiệu PHP 7
Giới thiệu PHP 7ZendVN
 
Tài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xTài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xZendVN
 
Lập trình Android cơ bản bằng tiếng Việt
Lập trình Android cơ bản bằng tiếng ViệtLập trình Android cơ bản bằng tiếng Việt
Lập trình Android cơ bản bằng tiếng Việtlaptrinhandroid
 
OOP in Java - Ver1.1
OOP in Java -  Ver1.1OOP in Java -  Ver1.1
OOP in Java - Ver1.1vdlinh08
 
Bao cao-lap-trinh-android-final
Bao cao-lap-trinh-android-finalBao cao-lap-trinh-android-final
Bao cao-lap-trinh-android-finalle dan
 
Báo Cáo Đề Tài Xây Dựng Phần Mềm Quản Lí Khách Hàng Trên Android
Báo Cáo Đề Tài Xây Dựng Phần Mềm Quản Lí Khách Hàng Trên AndroidBáo Cáo Đề Tài Xây Dựng Phần Mềm Quản Lí Khách Hàng Trên Android
Báo Cáo Đề Tài Xây Dựng Phần Mềm Quản Lí Khách Hàng Trên AndroidDlinh Truong
 
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị androidXây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị androidTrần Võ Khôi Nguyên
 
Kỹ năng soạn thảo những điều cần đạt được
Kỹ năng soạn thảo những điều cần đạt đượcKỹ năng soạn thảo những điều cần đạt được
Kỹ năng soạn thảo những điều cần đạt đượcLe Ngoc Quang
 
Sự phát triển của công nghệ số hoá và lưu trữ điện tử
Sự phát triển của công nghệ số hoá và lưu trữ điện tửSự phát triển của công nghệ số hoá và lưu trữ điện tử
Sự phát triển của công nghệ số hoá và lưu trữ điện tửLe Ngoc Quang
 
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mở
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mởBài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mở
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mởMasterCode.vn
 
Tham dinh-du-an-npv-irr
Tham dinh-du-an-npv-irrTham dinh-du-an-npv-irr
Tham dinh-du-an-npv-irrChuc Cao
 
Nâng cao hiệu quả quản trị tài sản ngắn hạn tại công ty tnhh hệ thống tin học...
Nâng cao hiệu quả quản trị tài sản ngắn hạn tại công ty tnhh hệ thống tin học...Nâng cao hiệu quả quản trị tài sản ngắn hạn tại công ty tnhh hệ thống tin học...
Nâng cao hiệu quả quản trị tài sản ngắn hạn tại công ty tnhh hệ thống tin học...https://www.facebook.com/garmentspace
 
Bài 4: Hệ thống quản lý lịch biểu và tài liệu
Bài 4: Hệ thống quản lý lịch biểu và tài liệuBài 4: Hệ thống quản lý lịch biểu và tài liệu
Bài 4: Hệ thống quản lý lịch biểu và tài liệuMasterCode.vn
 

Viewers also liked (20)

Nền tảng lập trình java (Core java)
Nền tảng lập trình java (Core java)Nền tảng lập trình java (Core java)
Nền tảng lập trình java (Core java)
 
Tài liệu lập trình jQuery
Tài liệu lập trình jQueryTài liệu lập trình jQuery
Tài liệu lập trình jQuery
 
Core java slides
Core java slidesCore java slides
Core java slides
 
Java practice book - Bài tập môn Java
Java practice book - Bài tập môn JavaJava practice book - Bài tập môn Java
Java practice book - Bài tập môn Java
 
Nghiên cưú và phát triển Android OS
Nghiên cưú và phát triển Android OSNghiên cưú và phát triển Android OS
Nghiên cưú và phát triển Android OS
 
Giới thiệu PHP 7
Giới thiệu PHP 7Giới thiệu PHP 7
Giới thiệu PHP 7
 
Tài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.xTài liệu Lập trình Zend Framework 2.x
Tài liệu Lập trình Zend Framework 2.x
 
Lập trình Android cơ bản bằng tiếng Việt
Lập trình Android cơ bản bằng tiếng ViệtLập trình Android cơ bản bằng tiếng Việt
Lập trình Android cơ bản bằng tiếng Việt
 
OOP in Java - Ver1.1
OOP in Java -  Ver1.1OOP in Java -  Ver1.1
OOP in Java - Ver1.1
 
Bao cao-lap-trinh-android-final
Bao cao-lap-trinh-android-finalBao cao-lap-trinh-android-final
Bao cao-lap-trinh-android-final
 
Android
AndroidAndroid
Android
 
Báo Cáo Đề Tài Xây Dựng Phần Mềm Quản Lí Khách Hàng Trên Android
Báo Cáo Đề Tài Xây Dựng Phần Mềm Quản Lí Khách Hàng Trên AndroidBáo Cáo Đề Tài Xây Dựng Phần Mềm Quản Lí Khách Hàng Trên Android
Báo Cáo Đề Tài Xây Dựng Phần Mềm Quản Lí Khách Hàng Trên Android
 
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị androidXây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
 
Đệ Quy, Quay Lui, Nhánh Cận
Đệ Quy, Quay Lui, Nhánh CậnĐệ Quy, Quay Lui, Nhánh Cận
Đệ Quy, Quay Lui, Nhánh Cận
 
Kỹ năng soạn thảo những điều cần đạt được
Kỹ năng soạn thảo những điều cần đạt đượcKỹ năng soạn thảo những điều cần đạt được
Kỹ năng soạn thảo những điều cần đạt được
 
Sự phát triển của công nghệ số hoá và lưu trữ điện tử
Sự phát triển của công nghệ số hoá và lưu trữ điện tửSự phát triển của công nghệ số hoá và lưu trữ điện tử
Sự phát triển của công nghệ số hoá và lưu trữ điện tử
 
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mở
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mởBài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mở
Bài 1: Tìm hiểu về phần mềm miễn phí và phần mềm tự do, nguồn mở
 
Tham dinh-du-an-npv-irr
Tham dinh-du-an-npv-irrTham dinh-du-an-npv-irr
Tham dinh-du-an-npv-irr
 
Nâng cao hiệu quả quản trị tài sản ngắn hạn tại công ty tnhh hệ thống tin học...
Nâng cao hiệu quả quản trị tài sản ngắn hạn tại công ty tnhh hệ thống tin học...Nâng cao hiệu quả quản trị tài sản ngắn hạn tại công ty tnhh hệ thống tin học...
Nâng cao hiệu quả quản trị tài sản ngắn hạn tại công ty tnhh hệ thống tin học...
 
Bài 4: Hệ thống quản lý lịch biểu và tài liệu
Bài 4: Hệ thống quản lý lịch biểu và tài liệuBài 4: Hệ thống quản lý lịch biểu và tài liệu
Bài 4: Hệ thống quản lý lịch biểu và tài liệu
 

Similar to Tài liệu Lập trình Java Core

Java cơ bản
Java cơ bảnJava cơ bản
Java cơ bảnSon Nguyen
 
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfOOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfssuserd01a5c
 
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trìnhHọc lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trìnhCodeGym Đà Nẵng
 
BÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPT
BÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPTBÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPT
BÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPTMasterCode.vn
 
MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON
MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON
MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON Bông Bông
 
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...CodeGym Đà Nẵng
 
Bài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPTBài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPTMasterCode.vn
 
Lect04 functions
Lect04 functionsLect04 functions
Lect04 functionsHồ Lợi
 
bt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdfbt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdfHiNht6
 
Chương 2: HƯỚNG DẪN SỬ DỤNG ARENA
Chương 2: HƯỚNG DẪN SỬ DỤNG ARENAChương 2: HƯỚNG DẪN SỬ DỤNG ARENA
Chương 2: HƯỚNG DẪN SỬ DỤNG ARENALe Nguyen Truong Giang
 
Sơ lược về Java
Sơ lược về JavaSơ lược về Java
Sơ lược về JavaĐiệp Lê
 
Giáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng Yên
Giáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng YênGiáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng Yên
Giáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng YênTrần Thiên Đại
 
[Cntt] bài giảng java khtn hcm
[Cntt] bài giảng java   khtn hcm[Cntt] bài giảng java   khtn hcm
[Cntt] bài giảng java khtn hcmHong Phuoc Nguyen
 
Cac giai phap lap trinh c# final
Cac giai phap lap trinh c# final Cac giai phap lap trinh c# final
Cac giai phap lap trinh c# final Cuong Nguyen Dinh
 

Similar to Tài liệu Lập trình Java Core (20)

Java cơ bản
Java cơ bảnJava cơ bản
Java cơ bản
 
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfOOP_02_Java can ban.pdf
OOP_02_Java can ban.pdf
 
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trìnhHọc lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
Học lập trình cơ bản - Giới thiệu các thuật ngữ trong lập trình
 
BÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPT
BÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPTBÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPT
BÀI 3: Các khái niệm cơ bản trong lập trình - Giáo trình FPT
 
Oop unit 02 java cơ bản
Oop unit 02 java cơ bảnOop unit 02 java cơ bản
Oop unit 02 java cơ bản
 
1. Java cơ bản.pdf
1. Java cơ bản.pdf1. Java cơ bản.pdf
1. Java cơ bản.pdf
 
MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON
MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON
MẠNG NƠRON VÀ QUÁ TRÌNH HỌC CỦA MẠNG NƠRON
 
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
Lập trình cơ bản: Function, khái niệm hàm, phân loại hàm trong Java (có ví dụ...
 
Bài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPTBài 2: Biến và toán tử - Giáo trình FPT
Bài 2: Biến và toán tử - Giáo trình FPT
 
Lect04 functions
Lect04 functionsLect04 functions
Lect04 functions
 
Lap trinhvba
Lap trinhvbaLap trinhvba
Lap trinhvba
 
bt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdfbt-mon-lap-trinh-huong-doi-tuong.pdf
bt-mon-lap-trinh-huong-doi-tuong.pdf
 
6. javascript basic
6. javascript basic6. javascript basic
6. javascript basic
 
Chương 2: HƯỚNG DẪN SỬ DỤNG ARENA
Chương 2: HƯỚNG DẪN SỬ DỤNG ARENAChương 2: HƯỚNG DẪN SỬ DỤNG ARENA
Chương 2: HƯỚNG DẪN SỬ DỤNG ARENA
 
Bai02 java introduction
Bai02 java introductionBai02 java introduction
Bai02 java introduction
 
Sơ lược về Java
Sơ lược về JavaSơ lược về Java
Sơ lược về Java
 
Gt java080102005
Gt java080102005Gt java080102005
Gt java080102005
 
Giáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng Yên
Giáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng YênGiáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng Yên
Giáo trình java Đại Học Sư Phạm Kỹ Thuật Hưng Yên
 
[Cntt] bài giảng java khtn hcm
[Cntt] bài giảng java   khtn hcm[Cntt] bài giảng java   khtn hcm
[Cntt] bài giảng java khtn hcm
 
Cac giai phap lap trinh c# final
Cac giai phap lap trinh c# final Cac giai phap lap trinh c# final
Cac giai phap lap trinh c# final
 

Recently uploaded

Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfVyTng986513
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxAnAn97022
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...Nguyen Thanh Tu Collection
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................TrnHoa46
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...Nguyen Thanh Tu Collection
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdfchuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
chuong-7-van-de-gia-dinh-trong-thoi-ky-qua-do-len-cnxh.pdf
 
powerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptxpowerpoint lịch sử đảng cộng sản việt nam.pptx
powerpoint lịch sử đảng cộng sản việt nam.pptx
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
SÁNG KIẾN ÁP DỤNG CLT (COMMUNICATIVE LANGUAGE TEACHING) VÀO QUÁ TRÌNH DẠY - H...
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
1 - MÃ LỖI SỬA CHỮA BOARD MẠCH BẾP TỪ.pdf
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................Đề cương môn giải phẫu......................
Đề cương môn giải phẫu......................
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 7 GLOBAL SUCCESS (2 CỘ...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 

Tài liệu Lập trình Java Core

  • 1. Lập trình JAVA Biên soạn: ZendVN Hướng dẫn: Lưu Trường Hải Lân Hỗ trợ Skype: zendvn.support
  • 2. Chương 01: 1. Tổng quan lập trình JAVA 2. Biến số, hằng số và kiểu dữ liệu 3. Toán tử và hàm toán học 4. Phát biểu điều kiện 5. Sử dụng Vòng lặp 6. Ứng dụng máy tính bỏ túi 7. Ứng dụng Game “Đi tìm ẩn số” 8. Ứng dụng tháp hình 9. Ứng dụng mô phỏng máy ATM 10. Tình huống thực hành có đáp án
  • 3. Chương 01: 1. Tổng quan lập trình JAVA 2. Biến số, hằng số và kiểu dữ liệu 3. Toán tử và hàm toán học 4. Phát biểu điều kiện 5. Sử dụng Vòng lặp 6. Ứng dụng máy tính bỏ túi 7. Ứng dụng Game “Đi tìm ẩn số” 8. Ứng dụng tháp hình 9. Ứng dụng mô phỏng máy ATM 10. Tình huống thực hành có đáp án
  • 4. Chương 01: Phần 01 - Tổng quan lập trình JAVA
  • 5. JAVA là gì ? • JAVA là ngôn ngữ lập trình hướng đối tượng do Sun Microsystem sáng lập • JAVA được tạo ra với tiêu chí “Write Once, Run Anywher” (Chương trình Java nhờ có máy ảo Java nên có thể thực thi được trên nhiều nền tảng khác nhau, không phụ thuộc vào phần cứng, hệ điều hành, …)
  • 6. Tại sao là JAVA ? • Ngôn ngữ lập trình hướng đối tượng dễ tiếp cận • Tài liệu phong phú đa dạng (API, source, documents, article, ebook, video, …) • Khá nhiệu công cụ hỗ trợ lập trình: Netbeans, Eclipe, … • Hoàn toàn miễn phí và có cộng đồng phát triển rộng lớn • Xuất hiện ở khắp nơi: web, mobile, desktop, …
  • 7. Phần mềm học JAVA Bộ cài đặt JDK (Java Development Kit) Môi trường phát triển IDE (Integrated Development Environment) • http://www.oracle.com/technetwork/java/javase/downloads/index.html • Netbeans • Eclipse • JCreator • Máy ảo JAVA (Java Virtual Machine)
  • 8. Hello World! Khởi tạo và thực thi project trong Eclipe Thực thi tập tin .java bằng CMD (Command Line) • Tạo project JAVA • Thực thi tập tin JAVA • Thiết lập biến môi trường • Biên dịch và thực thi tập tin java: javac, java
  • 9. Chương 01: 1. Tổng quan lập trình JAVA 2. Biến số, hằng số và kiểu dữ liệu 3. Toán tử và hàm toán học 4. Phát biểu điều kiện 5. Sử dụng Vòng lặp 6. Ứng dụng máy tính bỏ túi 7. Ứng dụng Game “Đi tìm ẩn số” 8. Ứng dụng tháp hình 9. Ứng dụng mô phỏng máy ATM 10. Tình huống thực hành có đáp án
  • 10. Chương 01: Phần 02 – Biến, hằng và kiểu dữ liệu
  • 11. Biến là gì ? • Biến là một vùng nhớ dùng để lưu trữ giá trị mà giá trị đó có thể thay đổi khi chương trình thực thi. • 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
  • 12. Cú pháp khai báo biến Cú pháp: [Kiểu dữ liệu] [Tên biến] 1. Khai báo biến 2. Hiển thị biến (in biến) 3. Khởi tạo (gán) giá trị ban đầu cho biến • Bắt đầu bằng một chữ cái hoặc ký tự gạch dưới (_) • Chỉ bao gồm các ký tự chữ, ký tự số và ký tự gạch dưới • Không chứa ký tự khoảng trắng trong tên biến • Phân biệt chữ hoa và chữ thường • Không trùng với từ khóa trong JAVA int, char
  • 13. Hằng số • Khác với biến, hằng số là giá trị không thể thay đổi được (bất biến) • Cú pháp: final [Kiểu dữ liệu] [Tên hằng số] = [Giá trị] • Quy tắt đặt tên hằng số tương tự như quy tắt đặt tên cho biến số • Thống nhất hằng số sẽ được thể hiện ở dạng chữ in hoa + underscore final int YOUR_BIRTHDAY = 1989;
  • 14. Kiểu dữ liệu Ngoài kiểu dữ liệu int và char đã tiếp xúc thì trong JAVA còn có kiểu dữ liệu nào nữa hay không ? Trong Java kiểu dữ liệu được chia thành hai loại: • Các kiểu dữ liệu nguyên thủy (primitive): byte, short, int, long, float, double, boolean, char và String • Các kiểu dữ liệu tham chiếu (reference): array, class, interface
  • 15. Kiểu dữ liệu nguyên thủy Reference https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html Kiểu Độ dài (bit) Phạm vi biểu diễn giá trị byte 8 -128 đến 127 char 16 ‘u0000’ to ‘uffff’ boolean 1 “True” hoặc “False” short 16 -32768 đến 32767 Kiểu Độ dài (bit) Phạm vi biểu diễn giá trị int 32 -2,147,483,648 đến +2,147,483,648 long 64 -9,223,372,036’854,775,808 đến +9,223,372,036’854,775,808 float 32 -3.40292347E+38 đến +3.40292347E+38 double 64 -1,79769313486231570E+308 đến +1,79769313486231570E+308
  • 16. Chuyển đổi kiểu dữ liệu • Nới rộng (widening): chuyển đổi kiểu có kích thước nhỏ sang kiểu có kích thước lớn (không làm mất thông tin) • Thu hẹp (narrowwing): chuyển đổi kiểu có kích thước lớn sang kiểu có kích thước nhỏ (làm mất thông tin) int var1 = 12; double var2 = 1.23; int var3 = var1 + (int)var2; // Sự thu nhỏ (narrowwing) double var4 = (double)var1 + var2; // Sự nới rộng (widening)
  • 17. Chương 01: 1. Tổng quan lập trình JAVA 2. Biến số, hằng số và kiểu dữ liệu 3. Toán tử và hàm toán học 4. Phát biểu điều kiện 5. Sử dụng Vòng lặp 6. Ứng dụng máy tính bỏ túi 7. Ứng dụng Game “Đi tìm ẩn số” 8. Ứng dụng tháp hình 9. Ứng dụng mô phỏng máy ATM 10. Tình huống thực hành có đáp án
  • 18. Chương 01: Phần 03 – Toán tử và hàm toán học
  • 19. Trong JAVA có các loại toán tử nào ? • Toán tử số học + - * / % • Toán tử gán += -= *= /= %= • Toán tử ++ -- • Toán tử so sánh > < >= <= == != • Toán tử logic && || ! • Toán tử dịch bit
  • 20. Hàm toán học • Số lớn nhất (max), số nhỏ nhất (min), căn bậc 2 (sqrt), lũy thừa (pow) • Làm tròn số: tròn lên (ceil), tròn xuống (floor), tròn gần nhất (round) • Phát sinh số ngẫu nhiên trong khoảng 0 đến 1 (random) 1. Tìm số lớn nhất trong 3 số tự nhiên cho trước 2. Phát sinh số tự nhiên ngẫu nhiên nằm trong khoảng từ 14 đến 19
  • 21. Chương 01: 1. Tổng quan lập trình JAVA 2. Biến số, hằng số và kiểu dữ liệu 3. Toán tử và hàm toán học 4. Phát biểu điều kiện 5. Sử dụng Vòng lặp 6. Ứng dụng máy tính bỏ túi 7. Ứng dụng Game “Đi tìm ẩn số” 8. Ứng dụng tháp hình 9. Ứng dụng mô phỏng máy ATM 10. Tình huống thực hành có đáp án
  • 22. Chương 01: Phần 04 – Phát biểu điều kiện
  • 23. Phát biểu điều kiện là gì ? • Phát biểu điều kiện (câu điều kiện) là các phát biểu giúp chúng ta thực hiện những hành động khác nhau theo những điều kiện khác nhau • Phát biểu điều kiện được sử dụng rất thường xuyên đối với bất kỳ ngôn ngữ lập trình nào
  • 24. Có mấy loại câu điều kiện trong JAVA? Câu điều kiện IF … ELSE Câu điều kiện SWITCH • Câu điều kiện IF • Câu điều kiện IF … ELSE • Câu điều kiện IF … ELSE IF … ELSE
  • 25. Chương 01: 1. Tổng quan lập trình JAVA 2. Biến số, hằng số và kiểu dữ liệu 3. Toán tử và hàm toán học 4. Phát biểu điều kiện 5. Sử dụng Vòng lặp 6. Ứng dụng máy tính bỏ túi 7. Ứng dụng Game “Đi tìm ẩn số” 8. Ứng dụng tháp hình 9. Ứng dụng mô phỏng máy ATM 10. Tình huống thực hành có đáp án
  • 26. Chương 01: Phần 05 – Sử dụng vòng lặp
  • 27. Vòng lặp trong JAVA Sử dụng vòng lặp khi: Một đoạn mã lệnh trong chương trình được thực hiện lặp đi lặp lại cho đến khi thỏa mãn một điều kiện nào đó Các vòng lặp thường sử dụng trong JAVA • For • While • Do ... While
  • 28. Break & Continue Câu lệnh break được sử dụng để nhảy ra khỏi một vòng lặp. Câu lệnh continue có chức năng dừng vòng lặp tại giá trị đó và nhảy sang giá trị khác trong vòng lặp
  • 29. Chương 01: 1. Tổng quan lập trình JAVA 2. Biến số, hằng số và kiểu dữ liệu 3. Toán tử và hàm toán học 4. Phát biểu điều kiện 5. Sử dụng Vòng lặp 6. Ứng dụng máy tính bỏ túi 7. Ứng dụng Game “Đi tìm ẩn số” 8. Ứng dụng tháp hình 9. Ứng dụng mô phỏng máy ATM 10. Tình huống thực hành có đáp án
  • 30. Chương 01: Phần 06 Xây dựng ứng dụng máy tính bỏ túi
  • 31. Xây dựng ứng dụng máy tính bỏ túi
  • 32. Chương 01: 1. Tổng quan lập trình JAVA 2. Biến số, hằng số và kiểu dữ liệu 3. Toán tử và hàm toán học 4. Phát biểu điều kiện 5. Sử dụng Vòng lặp 6. Ứng dụng máy tính bỏ túi 7. Ứng dụng Game “Đi tìm ẩn số” 8. Ứng dụng tháp hình 9. Ứng dụng mô phỏng máy ATM 10. Tình huống thực hành có đáp án
  • 33. Chương 01: Phần 07 Xây dựng ứng dụng Game “Đi tìm ẩn số”
  • 34. Xây dựng ứng dụng game “Đi tìm ẩn số”
  • 35. Chương 01: 1. Tổng quan lập trình JAVA 2. Biến số, hằng số và kiểu dữ liệu 3. Toán tử và hàm toán học 4. Phát biểu điều kiện 5. Sử dụng Vòng lặp 6. Ứng dụng máy tính bỏ túi 7. Ứng dụng Game “Đi tìm ẩn số” 8. Ứng dụng tháp hình 9. Ứng dụng mô phỏng máy ATM 10. Tình huống thực hành có đáp án
  • 36. Chương 01: Phần 08 Sử dụng vòng lặp xử lý các tháp hình
  • 37. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 212 32123 4321234 543212345 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Sử dụng vòng lặp xử lý các tháp hình
  • 38. Chương 01: 1. Tổng quan lập trình JAVA 2. Biến số, hằng số và kiểu dữ liệu 3. Toán tử và hàm toán học 4. Phát biểu điều kiện 5. Sử dụng Vòng lặp 6. Ứng dụng máy tính bỏ túi 7. Ứng dụng Game “Đi tìm ẩn số” 8. Ứng dụng tháp hình 9. Ứng dụng mô phỏng máy ATM 10. Tình huống thực hành có đáp án
  • 39. Chương 01: Phần 09: Mô phỏng máy ATM
  • 41. Chương 01: 1. Tổng quan lập trình JAVA 2. Biến số, hằng số và kiểu dữ liệu 3. Toán tử và hàm toán học 4. Phát biểu điều kiện 5. Sử dụng Vòng lặp 6. Ứng dụng máy tính bỏ túi 7. Ứng dụng Game “Đi tìm ẩn số” 8. Ứng dụng tháp hình 9. Ứng dụng mô phỏng máy ATM 10. Tình huống thực hành có đáp án
  • 42. Chương 01: Phần 10: Tình huống thực hành
  • 43. Sử dụng vòng lặp xử lý các tháp hình 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1 * *** ***** ******* ********* *********** ********* ******* ***** *** * 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1
  • 44. Chương 02: 1. Class & Object 2. Property & Method 3. Overloading method 4. Constructor 5. Inheritance 6. Overriding method 7. Access Modifier 8. Static variable & static method 9. Xây dựng class Fraction 10. Tình huống thực hành có đáp án
  • 45. Chương 02: 1. Class & Object 2. Property & Method 3. Overloading method 4. Constructor 5. Inheritance 6. Overriding method 7. Access Modifier 8. Static variable & static method 9. Xây dựng class Fraction 10. Tình huống thực hành có đáp án
  • 46. Chương 02: Phần 1 – Class & Object
  • 47. Lập trình hướng thủ tục & hướng đối tượng Lập trình hướng thủ tục • Giải quyết vấn đề từng bước đến khi đạt yêu cầu • Lập trình từ trên xuống • Lập trình theo hàm  chỉ tạo ra hàm xử lý khi gặp vấn đề nào đó Lập trình hướng đối tượng • Dựa trên nền tảng các lớp đã xây dựng sẵn • Xác định trước các chức năng cần phải thực hiện
  • 48. Lập trình hướng đối tượng • OOP – Object oriented programming là kiểu lập trình lấy đối tượng làm nền tảng • Đơn giản hóa việc phát triển chương trình • Tạo ra các chương trình có tình mềm dẻo và linh động cao • Dễ dàng phát triển, bảo trì và nâng cấp.
  • 49. Phân biệt Class & Object Class chỉ một cái gì đó chung chung, object là một cái cụ thể • Công thức làm bánh quy là một Class  bánh quy là một Object • Con gái là một Class  Hồng là một Object • Con mèo là một Class  Con mèo Mimi nhà tôi là một Object • Bản vẽ là một Class  Ngôi nhà của tôi là một Object
  • 50. Khai báo Class package chap02.oop; public class Main { public static void main(String[] args) { System.out.println("Main.main"); } } class Student { } Tạo class Student nằm trong Main.java  Thêm từ khóa public vào trước class Student ?
  • 51. Khởi tạo đối tượng của Class package chap02.oop; public class Main { public static void main(String[] args) { Student studentOne = new Student(); Student studentTwo = new Student(); } } Tạo class Student nằm trong Main.java  Tách class Student thành 1 file riêng (cùng package)  Tách class Student thành 1 file riêng (khác package)
  • 52. Chương 02: 1. Class & Object 2. Property & Method 3. Overloading method 4. Constructor 5. Inheritance 6. Overriding method 7. Access Modifier 8. Static variable & static method 9. Xây dựng class Fraction 10. Tình huống thực hành có đáp án
  • 53. Chương 02: Phần 2 – Property & Method
  • 54. Hiểu thế nào về Property & Method Property (Thuộc tính) • Là các đặc điểm, đặc tính của một lớp Method (Phương thức) • Là các hành động có thể được thực hiện từ lớp • Phương thức cũng giống như hàm, nhưng là hàm riêng của lớp
  • 55. Ví dụ về phương thức và thuộc tính Xét Object “Sinh viên Yến Trang” • Đặc điểm: tóc dài, má lúng đồng tiền, cao 1.7 m, …  thuộc tính • Hành động: ăn, ngủ, dạy anh văn, đánh đàn, …  phương thức Xét Object “Con cún Ken nhà tôi” • Đặc điểm: lông xoăn, màu xám, đuôi ngắn, …  thuộc tính • Hành động: ăn, ngủ, bắt chuột, …  phương thức
  • 56. Khai báo property public class Student { public String name; public String code; public int birthday; } Access modifiers (phạm vi truy xuất) Data type (kiểu dữ liệu) Property (tên của thuộc tính)  Truy cập và gán giá trị cho các thuộc tính
  • 57. Truy cập và gán giá trị cho các thuộc tính public static void main(String[] args) { Student studentOne = new Student(); studentOne.birthday = 1994; studentOne.name = "John"; studentOne.code = "S001"; System.out.println("birthday: " + studentOne.birthday); System.out.println("name: " + studentOne.name); System.out.println("code: " + studentOne.code); }
  • 58. Phương thức getter và setter public static void main(String[] args) { Student studentOne = new Student(); studentOne.birthday = 1994; studentOne.name = "John"; studentOne.code = "S001"; System.out.println("birthday: " + studentOne.birthday); System.out.println("name: " + studentOne.name); System.out.println("code: " + studentOne.code); } setter getter
  • 59. Khai báo method public class People { public String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } [access] [data] [method] ([param], […]) { // your code here }
  • 60. Chương 02: 1. Class & Object 2. Property & Method 3. Overloading method 4. Constructor 5. Inheritance 6. Overriding method 7. Access Modifier 8. Static variable & static method 9. Xây dựng class Fraction 10. Tình huống thực hành có đáp án
  • 61. Chương 02: Phần 3 – Overloading Method
  • 62. Overloading method (nạp chồng phương thức) Overloading method là những phương thức nằm trong cùng một class có cùng tên nhưng khác các tham số (khác kiểu dữ liệu, khác số lượng tham số) public void setCode(String code) {} public void setCode() {} public void setCode(String first, int last) {} public void setCode(int code) {}
  • 63. Chương 02: 1. Class & Object 2. Property & Method 3. Overloading method 4. Constructor 5. Inheritance 6. Overriding method 7. Access Modifier 8. Static variable & static method 9. Xây dựng class Fraction 10. Tình huống thực hành có đáp án
  • 64. Chương 02: Phần 4 – Constructor
  • 65. Constructor (phương thức khởi tạo) • Contructor được gọi tự động và được gọi đầu tiên khi một object được khởi tạo • Contructor không có giá trị trả về, có thể có tham số hoặc không có • Constructor phải có cùng tên với lớp • Constructor có thể bị nạp chồng (overloading) • Nếu một class chưa khai báo constructor thì sẽ được JAVA cung cấp một constructor mặc định (default constructor).
  • 66. Constructor (phương thức khởi tạo) public class Student{ public String name; public Student(){ System.out.println("Constructor 1"); this.setName("John"); } public Student(String name){ System.out.println("Constructor 2"); this.setName(name); } }
  • 67. Chương 02: 1. Class & Object 2. Property & Method 3. Overloading method 4. Constructor 5. Inheritance 6. Overriding method 7. Access Modifier 8. Static variable & static method 9. Xây dựng class Fraction 10. Tình huống thực hành có đáp án
  • 68. Chương 02: Phần 5 – Inheritance
  • 69. Tình huống Student -------------------- + name + code + score -------------------- getName setName (String name) getCode () setCode (String code) showInfo () getScore () setScore (Double score) Teacher -------------------- + name + code + salary -------------------- getName setName (String name) getCode () setCode (String code) showInfo () getSalary () setSalary (Double score) Person -------------------- + name + code -------------------- getName setName (String name) getCode () setCode (String code) showInfo ()
  • 70. Tình huống Student -------------------- + score -------------------- getScore () setScore (Double score) Teacher -------------------- + salary -------------------- getSalary () setSalary (Double score) Person -------------------- + name + code -------------------- getName setName (String name) getCode () setCode (String code) showInfo ()
  • 71. Inheritance (sự kế thừa) Student kế thừa từ Person được biểu diễn qua từ khóa extends class Student extends Person{ } • Student gọi là class con (subclass), Person gọi là class cha (superclass) • Student nếu đã kế thừa từ Person thì không thể kế thừa thêm lớp khác
  • 72. Chống kế thừa final public class Person{ } • Từ khóa final cho biết Person là lớp hằng  không lớp nào có thể kế thừa từ lớp Person được nữa
  • 73. Chương 02: 1. Class & Object 2. Property & Method 3. Overloading method 4. Constructor 5. Inheritance 6. Overriding method 7. Access Modifier 8. Static variable & static method 9. Xây dựng class Fraction 10. Tình huống thực hành có đáp án
  • 74. Chương 02: Phần 6 – Overriding
  • 75. Overriding (sự ghi đè) • Phương thức đã xuất hiện ở lớp cha và xuất hiện tiếp ở lớp con. • Khi đối tượng thuộc lớp con gọi phương thức thì sẽ chọn lựa và chạy theo phương thức trong lớp con. • Nếu lớp con không có phương thức đó thì mới gọi phương thức đó ở lớp cha
  • 76. Overloading vs Overriding • Xuất hiện: trong cùng lớp • Tên phương thức: giống nhau • Số lượng tham số và kiểu dữ liệu của tham số: có thể khác nhau • Đa hình (polymorphism) trong quá trình biên dịch Overloading (nạp chồng) Overriding (ghi đè) • Xuất hiện: ở class cha và class con • Tên phương thức: giống nhau • Số lượng tham số và kiểu dữ liệu của tham số: giống nhau • Đa hình (polymorphism) trong quá trình thực thi
  • 77. Chương 02: 1. Class & Object 2. Property & Method 3. Overloading method 4. Constructor 5. Inheritance 6. Overriding method 7. Access Modifier 8. Static variable & static method 9. Xây dựng class Fraction 10. Tình huống thực hành có đáp án
  • 78. Chương 02: Phần 7 – Access modifier
  • 79. Access modifier Access modifier cấp độ truy cập cho class, property và method public class Student {} • Private chỉ truy cập được trong class (property, method) • Null (rỗng) truy cập trong package (class, property, method) • Protected truy cập trong package và các subclasses (property, method) • Public truy cập từ bất kỳ đâu (class, property, method)
  • 80. Chương 02: 1. Class & Object 2. Property & Method 3. Overloading method 4. Constructor 5. Inheritance 6. Overriding method 7. Access Modifier 8. Static variable & static method 9. Xây dựng class Fraction 10. Tình huống thực hành có đáp án
  • 81. Chương 02: Phần 8 – Static variable & Static method
  • 82. Static keyword • Static keyword được sử dụng chủ yếu trong việc quản lý bộ nhớ • Static có thể được áp dụng cho: • variable (class variable) • method (class method) • block • nested class
  • 83. Static variable public class Student{ private String name; private String college = "CTU"; } name = John college = CTU name = Peter college = CTU name = Mary college = CTU name = Peter name = John name = Mary college = CTU
  • 84. Static method • Static method thuộc về lớp không thuộc về đối tượng • Static method được gọi mà không cần tạo một thể hiện của lớp. • Static method có thể truy cập và thay đổi giá tị của static variable • Các property và method không thỏa static thì static method không có quyền truy cập vào
  • 85. Chương 02: 1. Class & Object 2. Property & Method 3. Overloading method 4. Constructor 5. Inheritance 6. Overriding method 7. Access Modifier 8. Static variable & static method 9. Xây dựng class Fraction 10. Tình huống thực hành có đáp án
  • 86. Chương 02: Phần 9 – Xây dựng class Fraction
  • 87. Class Fraction • Nhập phân số (tử số và mẫu số) • In phân số • Kiểm tra phân số tối giản • Tối giản phân số • Thực hiện phép cộng 2 phân số • Thực hiện phép trừ 2 phân số • Thực hiện phép nhân 2 phân số • Thực hiện phép chia 2 phân số
  • 88. Class Fraction Thao tác trên hai phân số Tối giản phân số … Cộng hai phân số Tìm UCLN của hai số … Kiểm tra phân số tối giản
  • 89. Chương 02: 1. Class & Object 2. Property & Method 3. Overloading method 4. Constructor 5. Inheritance 6. Overriding method 7. Access Modifier 8. Static variable & static method 9. Xây dựng class Fraction 10. Tình huống thực hành có đáp án
  • 90. Chương 02: Phần 10 – Tình huống thực hành
  • 91. Xây dựng class Book • Nhập thông tin một quyển sách (id, tên và giá tiền của quyển sách đó) • In thông tin quyển sách • Cập nhật thông tin quyển sách
  • 92. Chương 03: 1. Khai báo mảng và truy cập mảng 2. Thao tác trên mảng một chiều 3. Sử dụng Class Arrays 4. Mảng đa chiều và các thao tác trên mảng 5. Tình huống thực hành có đáp án
  • 93. Chương 03: 1. Khai báo mảng và truy cập mảng 2. Thao tác trên mảng một chiều 3. Sử dụng Class Arrays 4. Mảng đa chiều và các thao tác trên mảng 5. Tình huống thực hành có đáp án
  • 94. Chương 03: Phần 1 – Khai báo và truy cập mảng
  • 95. Tình huống và khái niệm về mảng • Mảng là một biến đặc biệt và có thể lưu trữ nhiều giá trị khác nhau có cùng một kiểu dữ liệu • Một biến thông thường chỉ chứa một giá trị duy nhất, nếu chúng ta muốn chứa nhiều giá trị trong một biến thì biến đó phải là một mảng • Lưu trữ tên của một sinh viên nào đó  variable studentA  lưu trữ tên của 100 sinh viên  100 biến studentX
  • 96. Các cách khai báo mảng • int arrOne[]; • int[] arrInt ; • int[] arrInt = new int[5]; • int arrInt[] = {30, 23, 31, 36, 34}; • String arrString[] = {"Zend 2", "PHP", "Java", "Javascript"}; Zend 2arrString[]  PHP Java Javascript [0] [1] [2] [3]
  • 97. Chương 03: 1. Khai báo mảng và truy cập mảng 2. Thao tác trên mảng một chiều 3. Sử dụng Class Arrays 4. Mảng đa chiều và các thao tác trên mảng 5. Tình huống thực hành có đáp án
  • 98. Chương 03: Phần 2 – Thao tác trên mảng một chiều
  • 99. Các thao tác trên mảng • Truy cập vào các phần tử trên mảng • Duyệt mảng với vòng lặp for • Nhập mảng • Tính tổng các phần tử trong mảng Number • Tìm giá trị min, max trong mảng Number
  • 100. Chương 03: 1. Khai báo mảng và truy cập mảng 2. Thao tác trên mảng một chiều 3. Sử dụng Class Arrays 4. Mảng đa chiều và các thao tác trên mảng 5. Tình huống thực hành có đáp án
  • 101. Chương 03: Phần 3 – Sử dụng class Arrays
  • 102. Sử dụng java.util.Arrays • Sao chép mảng Arrays.copyOf • Sao chép mảng có chọn lọc Arrays.copyOfRange • In mảng Arrays.toString • Sắp xếp mảng Arrays.sort (tang dần, giảm dần)
  • 103. Chương 03: 1. Khai báo mảng và truy cập mảng 2. Thao tác trên mảng một chiều 3. Sử dụng Class Arrays 4. Mảng đa chiều và các thao tác trên mảng 5. Tình huống thực hành có đáp án
  • 104. Chương 03: Phần 4 Mảng đa chiều và các thao tác trên mảng
  • 105. Mảng đa chiều • Mảng đa chiều (mảng nhiều chiều) là một mảng mà các phần tử trong mảng là các mảng khác. • Mảng hai chiều là mảng được sử dụng nhiều nhất trong số các mảng nhiều chiều. Mảng hai chiều có số hàng và số cột xác định (thường áp dụng biểu diễn cho các ma trận) • int[][] arrMulti = new int[2][3]; // 2 hàng 3 cột
  • 106. Mảng đa chiều int[][] arrMulti = { { 2, 9, 1 }, { 3, 6, 7} }; 1 [0] [2] 7 9 6 2 3 [1] [0] [1] arrMulti [1] [0]= 3; arrMulti [1] [1] = 6; arrMulti [1] [2]= 7; arrMulti [0] [0] = 2; arrMulti [0] [1] = 9; arrMulti [0] [2] = 1;
  • 107. Các thao tác trên mảng đa chiều • Truy cập vào các phần tử trên mảng đa chiều • Duyệt mảng với vòng lặp for • Nhập và in ma trận • Tính tổng các phần tử trên một dòng nào đó của ma trận • Tính tổng các phần tử trên một cột nào đó của ma trận • Tính tổng các phần tử trên đường chéo của ma trận vuông • Tìm phần tử lớn nhất trong ma trận
  • 108. Chương 03: 1. Khai báo mảng và truy cập mảng 2. Thao tác trên mảng một chiều 3. Sử dụng Class Arrays 4. Mảng đa chiều và các thao tác trên mảng 5. Tình huống thực hành có đáp án
  • 109. Chương 03: Phần 5 – Tình huống thực hành
  • 110. Thao tác trên ma trận vuông Xuất các phần tử nằm phía trên (phía dưới) đường chéo chính 1 7 9 6 2 3 814 Các phần tử nằm trên đường chéo chính: 2 – 6 – 8  Các phần tử nằm phía trên đường chéo chính: 9 – 1 – 7  Các phần tử nằm phía dưới đường chéo chính: 3 – 4 – 1 Xây dựng giải thuật để nhập ma trận vuông và thực hiện hai yêu cầu trên
  • 111. Thao tác trên ma trận Tìm các phần tử lớn nhất ở mỗi dòng và tính tổng các phần tử đó 1 7 9 6 2 3 814 Ma trận có 3 dòng: • Dòng 1 có phần tử lớn nhất: 9 • Dòng 1 có phần tử lớn nhất: 7 • Dòng 1 có phần tử lớn nhất: 8 Tổng: 9 + 7 + 8 = 26 Xây dựng giải thuật để nhập ma trận và thực hiện yêu cầu trên
  • 112. Thao tác trên ma trận Sắp xếp ma trận tăng dần 1 7 9 6 2 3 814 Xây dựng giải thuật để nhập ma trận và thực hiện yêu cầu trên 2 6 1 4 1 3 987
  • 113. 1. Exception và xử lý ngoại lệ 2. Sử dụng Try – catch – finally 3. Từ khóa throws và throw 4. Xây dựng ứng dụng BookStore Version 3 Chương 04:
  • 114. Exception là gì ? • Exception các bất thường xảy ra khi chương trình thực thi • Exception nếu không được xử lý tốt sẽ làm cho chương trình bị dừng đột ngột, mất dữ liệu, ảnh hưởng đến các chương trình khác • Các nguyên nhân gây ra Exception: input không phù hợp, đọc file khi file không tồn tại, tràn bộ nhớ, …
  • 115. Sử dụng Try … catch … finally try { // khối lệnh nghi ngờ exception xảy ra } catch (ArithmeticException e) { System.out.println("Error: " + e); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Error: " + e); } catch (Exception e) { System.out.println("Error: " + e); } finally { // Khối lệnh luôn được thực thi }
  • 116. Các class thuộc Exception • ClassNotFoundException | Không tìm thấy Class • FileNotFoundException | Không tìm thấy file • ArrayIndexOutOfBoundsException | Vượt quá chỉ mục của mảng • ArithmeticException | Lỗi thực thi một phép toán • NumberFormatException | Định dạng số không đúng • NoSuchMethodException | Sai tên phương thức • …
  • 117. 1. Kiểu dữ liệu String 2. Sử dụng class StringBuilder 3. Kỹ thuật xử lý chuỗi 4. Regular Expression 5. Kiểm tra sự hợp lệ của dữ liệu với Regular Expression 6. Kỹ thuật tìm kiếm và thay thế chuỗi 7. Kỹ thuật bóc tách chuỗi 8. Ứng dụng chuẩn hóa chuỗi 9. Ứng dụng chuyển số thành chữ 10. Tình huống thực hành có đáp án 11. BookStore Version 4 Chương 05:
  • 118. 1. Kiểu dữ liệu String 2. Sử dụng class StringBuilder 3. Kỹ thuật xử lý chuỗi 4. Regular Expression 5. Kiểm tra sự hợp lệ của dữ liệu với Regular Expression 6. Kỹ thuật tìm kiếm và thay thế chuỗi 7. Kỹ thuật bóc tách chuỗi 8. Ứng dụng chuẩn hóa chuỗi 9. Ứng dụng chuyển số thành chữ 10. Tình huống thực hành có đáp án 11. BookStore Version 4 Chương 05:
  • 119. Kiểu dữ liệu String • Tìm hiểu kiểu dữ liệu String • Các trường hợp khởi tạo đối tượng kiểu String • Chiều dài của chuỗi • Nối chuỗi • So sánh chuỗi == hoặc equals hoặc equalsIgnoreCase • Tạo ra vùng nhớ rác
  • 120. 1. Kiểu dữ liệu String 2. Sử dụng class StringBuilder 3. Kỹ thuật xử lý chuỗi 4. Regular Expression 5. Kiểm tra sự hợp lệ của dữ liệu với Regular Expression 6. Kỹ thuật tìm kiếm và thay thế chuỗi 7. Kỹ thuật bóc tách chuỗi 8. Ứng dụng chuẩn hóa chuỗi 9. Ứng dụng chuyển số thành chữ 10. Tình huống thực hành có đáp án 11. BookStore Version 4 Chương 05:
  • 121. Sử dụng class StringBuilder • Thao tác trên các kiểu dữ liệu String và không tạo ra vùng nhớ rác • Các phương thướng thông dụng  append  insert  deleteCharAt  delete
  • 122. 1. Kiểu dữ liệu String 2. Sử dụng class StringBuilder 3. Kỹ thuật xử lý chuỗi 4. Regular Expression 5. Kiểm tra sự hợp lệ của dữ liệu với Regular Expression 6. Kỹ thuật tìm kiếm và thay thế chuỗi 7. Kỹ thuật bóc tách chuỗi 8. Ứng dụng chuẩn hóa chuỗi 9. Ứng dụng chuyển số thành chữ 10. Tình huống thực hành có đáp án 11. BookStore Version 4 Chương 05:
  • 123. Kỹ thuật xử lý chuỗi cơ bản • length() Trả về độ dài chuỗi • charAt() Lấy ra ký tự nằm ở vị trí index trong chuỗi • toLowerCase() Chuyển chuỗi sang chữ thường • toUpperCase() Chuyển chuỗi sang chữ in hoa • trim() Loại bỏ khoảng trống 2 bên chuỗi • substring() Trích xuất chuỗi con
  • 124. 1. Kiểu dữ liệu String 2. Sử dụng class StringBuilder 3. Kỹ thuật xử lý chuỗi 4. Regular Expression 5. Kiểm tra sự hợp lệ của dữ liệu với Regular Expression 6. Kỹ thuật tìm kiếm và thay thế chuỗi 7. Kỹ thuật bóc tách chuỗi 8. Ứng dụng chuẩn hóa chuỗi 9. Ứng dụng chuyển số thành chữ 10. Tình huống thực hành có đáp án 11. BookStore Version 4 Chương 05:
  • 125. Regular Expression là gì ? • Regular expresion (RE – biểu thức chính quy) bắt nguồn từ ngôn ngữ Perl, xuất hiện và được ứng dụng rất nhiều trong các ngôn ngữ lập trình • Regular expression có thể hiểu đơn giản là một biểu thức dùng để mô tả một mẫu chuỗi nào đó (mẫu: các chuỗi văn bản tuân theo một quy luật sắp xếp nhất định).  dd/mm/yyyy là mẫu mô tả ngày tháng năm  xxxx@gmail.com là mẫu mô tả địa chỉ email
  • 126. Regular Expression làm được gì ? • Biểu thức chính quy giúp giảm bớt những dòng mã trong quá trình xử lý chuỗi bằng những biểu thức ngắn gọn nhưng đem lại kết quả như mong đợi • Regular expression thường được sử dụng trong các trường hợp  Kiểm tra giá trị các phần tử của Form  Xử lý các yêu cầu phức tạp trong chuỗi (bóc tách, thay đổi nội dung, loại bỏ ký tự, …)
  • 127. Ký hiệu thường dùng trong RE STT Ký hiệu Ý nghĩa 1 ^ Tìm kiếm giá trị từ đầu chuỗi nguồn 2 $ Tìm kiếm giá trị từ cuối chuỗi nguồn 3 . Đại diện cho một ký tự bất ký 4 Tìm kiếm các giá trị đặt biệt trong chuỗi (^ $ . / @) 5 [] Tìm tập hợp các ký tự 6 – Lấy các ký tự trong một khoảng nào đó (thường dùng với ký hiệu []) 7 [^] Nếu một ký tự ^ đứng trước một ký tự hay tập hợp có nghĩa là phủ định của ký hiệu hay tập hợp đó 8 (A|B|C) Lựa chọn các giá trị A hoặc B hoặc C
  • 128. Ký hiệu thường dùng trong RE STT Ký hiệu Ý nghĩa 9 * 0 hoặc nhiều lần xuất hiện 10 + 1 hoặc nhiều lần xuất hiện 11 ? 0 hoặc 1 lần xuất hiện 12 {n,m} Số lần xuất hiện của ký tự từ n đến m lần 13 *? 0 lần xuất hiện 14 +? 1 lần xuất hiện 15 ?? 0 lần xuất hiện 16 w Tương đương [A-z0-9_] 17 W Tương đương [^A-z0-9_]
  • 129. Ký hiệu thường dùng trong RE STT Ký hiệu Ý nghĩa 18 s Tập hợp những ký tự khoảng trắng 19 S Tập hợp những ký tự không là ký tự khoảng trắng 20 d [0-9] Tập hợp những ký tự từ 0 đến 9 21 D [^0-9] Tập hợp những ký tự không thuộc từ 0 đến 9 22 A Tìm kiếm giá trị từ đầu chuỗi nguồn 23 Z Tìm kiếm giá trị từ cuối chuỗi nguồn
  • 130. Kiểm tra ID hợp lệ 1. ID phải có chiều dài là 7 ký tự XXX-YYY 2. XXX phải nằm trong tập hợp các giá trị ký tự A-Z hoặc a-z 3. YYY phải là các giá trị số từ 2 đến 8 Pattern: [A-z]{3}-[2-8]{3}
  • 131. Kiểm tra tên đăng nhập hợp lệ 1. Tên đăng nhập phải bắt đầu bằng một ký tự hoặc dấu gạch dưới 2. Tên đăng nhập là tập hợp của các ký tự a-z, 0-9 và có thể có các ký tự như dấu chấm ( . ), dấu gạch dưới ( _ ) 3. Độ dài tối thiểu của tên đăng nhập là là 5 ký tự và độ dài tối đa là 32 ký tự Pattern [A-Za-z_][A-Za-z0-9_.]{4,31}
  • 132. Kiểm tra địa chỉ website hợp lệ 1. http://www.zend.vn 2. https://www.zend.vn.vn 3. http://zend.vn 4. https://zend.vn 5. www.zend.vn Pattern ((https?://)(www.)?|www.)[a-z0-9-]{3,20}(.[a-z]{2,4}){1,2}
  • 133. 1. Kiểu dữ liệu String 2. Sử dụng class StringBuilder 3. Kỹ thuật xử lý chuỗi 4. Regular Expression 5. Kiểm tra sự hợp lệ của dữ liệu với Regular Expression 6. Kỹ thuật tìm kiếm và thay thế chuỗi 7. Kỹ thuật bóc tách chuỗi 8. Ứng dụng chuẩn hóa chuỗi 9. Ứng dụng chuyển số thành chữ 10. Tình huống thực hành có đáp án 11. BookStore Version 4 Chương 05:
  • 134. Kiểm tra sự hợp lệ của dữ liệu với RE Sử dụng phương thức matches để kiểm tra chuỗi có trùng khớp với mẫu RE hay không ? Ví dụ • Kiểm tra số tự nhiên hợp lệ • Kiểm tra ID hợp lệ • Kiểm tra username hợp lệ • Kiểm tra địa chỉ website hợp lệ
  • 135. 1. Kiểu dữ liệu String 2. Sử dụng class StringBuilder 3. Kỹ thuật xử lý chuỗi 4. Regular Expression 5. Kiểm tra sự hợp lệ của dữ liệu với Regular Expression 6. Kỹ thuật tìm kiếm và thay thế chuỗi 7. Kỹ thuật bóc tách chuỗi 8. Ứng dụng chuẩn hóa chuỗi 9. Ứng dụng chuyển số thành chữ 10. Tình huống thực hành có đáp án 11. BookStore Version 4 Chương 05:
  • 136. Kỹ thuật tìm kiếm và thay thế chuỗi • replace không kết hợp được với RE • replaceAll kết hợp được với RE Bài tập áp dụng • Java is vory vory oasy!  Java is very very easy! • kho1a ho5c la65p tri2nh java  khoa hoc lap trinh java • abcdAB69CD!@#$%^&*()0<>?_{}+21  69021
  • 137. 1. Kiểu dữ liệu String 2. Sử dụng class StringBuilder 3. Kỹ thuật xử lý chuỗi 4. Regular Expression 5. Kiểm tra sự hợp lệ của dữ liệu với Regular Expression 6. Kỹ thuật tìm kiếm và thay thế chuỗi 7. Kỹ thuật bóc tách chuỗi 8. Ứng dụng chuẩn hóa chuỗi 9. Ứng dụng chuyển số thành chữ 10. Tình huống thực hành có đáp án 11. BookStore Version 4 Chương 05:
  • 138. Kỹ thuật bóc tách chuỗi • token chuỗi có giá trị xác định sau khi được bóc tách • delimiter ký tự xác định dùng để bóc tách chuỗi Ví dụ • Java is easy!  Token: java, is, easy! Delimiter: khoảng trắng • Java--is--easy!  Token: java, is, easy! Delimiter: --
  • 139. Kỹ thuật bóc tách chuỗi • Scanner: useDelimiter, hasNext, next • split • StringTokenizer Ví dụ • Java_is_very_very_easy • Java--is--very--very--easy • Java--is_very_very--easy • Java_12_is_233__very_32_very__156_easy
  • 140. 1. Kiểu dữ liệu String 2. Sử dụng class StringBuilder 3. Kỹ thuật xử lý chuỗi 4. Regular Expression 5. Kiểm tra sự hợp lệ của dữ liệu với Regular Expression 6. Kỹ thuật tìm kiếm và thay thế chuỗi 7. Kỹ thuật bóc tách chuỗi 8. Ứng dụng chuẩn hóa chuỗi 9. Ứng dụng chuyển số thành chữ 10. Tình huống thực hành có đáp án 11. BookStore Version 4 Chương 05:
  • 141. Ứng dụng chuẩn hóa chuỗi Chuỗi đạt chuẩn dạng 1. • Không có khoảng trắng ở đầu và cuối chuỗi • Giữa các từ trong chuỗi chỉ tồn tại một khoảng trắng duy nhất • Ký tự đầu tiên trong chuỗi phải là ký tự in hoa • Các ký tự còn lại phải ở dạng chữ thường • Hết câu bằng dấu chấm
  • 142. Ứng dụng chuẩn hóa chuỗi Chuỗi Đạt Chuẩn Dạng 2. • Không có khoảng trắng ở đầu và cuối chuỗi • Giữa các từ trong chuỗi chỉ tồn tại một khoảng trắng duy nhất • Ký tự đầu tiên trong chuỗi phải là ký tự in hoa, • Hết câu bằng dấu chấm • Các ký tự đầu tiên ở mỗi từ phải viết được viết hoa
  • 143. 1. Kiểu dữ liệu String 2. Sử dụng class StringBuilder 3. Kỹ thuật xử lý chuỗi 4. Regular Expression 5. Kiểm tra sự hợp lệ của dữ liệu với Regular Expression 6. Kỹ thuật tìm kiếm và thay thế chuỗi 7. Kỹ thuật bóc tách chuỗi 8. Ứng dụng chuẩn hóa chuỗi 9. Ứng dụng chuyển số thành chữ 10. Tình huống thực hành có đáp án 11. BookStore Version 4 Chương 05:
  • 144. Ứng dụng đọc số có 3 chữ số • 976 = Chín trăm bảy mươi sáu • 206 = Hai trăm linh sáu • 115 = Một trăm mười lăm • 291 = Hai trăm chín mươi mốt
  • 145. 1. Kiểu dữ liệu String 2. Sử dụng class StringBuilder 3. Kỹ thuật xử lý chuỗi 4. Regular Expression 5. Kiểm tra sự hợp lệ của dữ liệu với Regular Expression 6. Kỹ thuật tìm kiếm và thay thế chuỗi 7. Kỹ thuật bóc tách chuỗi 8. Ứng dụng chuẩn hóa chuỗi 9. Ứng dụng chuyển số thành chữ 10. Tình huống thực hành có đáp án 11. BookStore Version 4 Chương 05:
  • 146. Kiểm tra email hợp lệ 1. Địa chỉ email phải bắt đầu bằng một ký tự. 2. Địa chỉ email là tập hợp của các ký tự a-z, 0 đến 9 và có thể có các ký tự như dấu chấm ( . ), dấu gạch dưới ( _ ) 3. Độ dài tối thiểu của email là 5 ký tự và độ dài tối đa là 32 ký tự 4. Tên miền của email có thể là tên miền cấp 1 hoặc tên miền cấp 2 Pattern: ^[a-z][a-z0-9_.]{4,31}@[a-z0-9]{2,}(.[a-z0-9]{2,4}){1,2}$
  • 147. Đọc số nhỏ hơn 999 • 9 chín • 12 mười hai • 97 chín mươi bảy • 875 tám trăm bảy mươi lăm
  • 148. 1. Kiểu dữ liệu String 2. Sử dụng class StringBuilder 3. Kỹ thuật xử lý chuỗi 4. Regular Expression 5. Kiểm tra sự hợp lệ của dữ liệu với Regular Expression 6. Kỹ thuật tìm kiếm và thay thế chuỗi 7. Kỹ thuật bóc tách chuỗi 8. Ứng dụng chuẩn hóa chuỗi 9. Ứng dụng chuyển số thành chữ 10. Tình huống thực hành có đáp án 11. BookStore Version 4 Chương 05:
  • 149. Chương 06: 1. Abstract class 2. Interface 3. So sánh Abstract và Interface 4. Sử dụng class Object 5. Giảm thiểu sự phụ thuộc giữa các class 6. Inner Class trong Java 7. Xây dựng ứng BookStore Version 5
  • 150. Abstract class • Abstract class (lớp trừu tượng) là class chứa bộ khung cơ bản, với các thuộc tính, các phương thức và các phương thức trừu tượng (abstract method phương thức chưa hoàn thiện: chỉ có tên, kiểu trả về, tham số) • Các lớp extends từ lớp abstract sẽ có nhiệm vụ hoàn thiện các abstract method • Abstract class thường được xây dựng bởi kỹ sư thiết kế hệ thống có kinh nghiệm
  • 151. Interface • Interface không phải là class, đây là một mẫu giao diện quy định một số phương thức bắt buộc cho một class nào đó • Interface không cho phép định nghĩa rõ cách hoạt động của phương thức, chỉ dừng lại ở khai báo phương thức, việc định nghĩa các phương thức này sẽ được thực hiện ở các class con
  • 152. Sử dụng default và static trong Interface • Tạo mới một phương thức trong Interface  định nghĩa cách hoạt động của phương thức này ở các class implements từ Interface đó. • Sử dụng từ khóa default hoặc static để khi tạo mới một phương thức thì không cần phải định nghĩa ở tất cả các class implements từ Interface. • Sử dụng default method thì cần khởi tạo đối tượng <> Sử dụng static method thì không cần khởi tạo đối tượng
  • 153. Abstract Class vs Interface Những điểm giống nhau • Chứa các abstract methods • Không khởi tạo trực tiếp đối tượng mà phải thông qua các class con
  • 154. Abstract Class vs Interface Abstract class + Là một lớp + Mỗi method không bắt buộc phải được định nghĩa ở lớp con + Mỗi lớp con chỉ kế thừa từ một lớp abstract, một lớp abstract có nhiều lớp con + Mỗi phương thức abstract có thể ở trạng thái protected hoặc public Interface + Không phải lớp + Mỗi method bắt buộc phải được định nghĩa ở lớp con + Mỗi lớp con kế thừa từ một hoặc nhiều Interface, một Interface có nhiều lớp con + Mỗi phương thức abstract chỉ ở trạng thái public
  • 155. Sử dụng class Object • Tất cả các class trong Java (có sẵn hay do lập trình viên định nghĩa) đều kế thừa từ class Object • Sử dụng phương thức toString() để in ra thông tin của một đối tượng nào đó • Sử dụng phương thức equals() để so sánh các đối tượng với nhau
  • 156. Tình huống thực tế “Đi công tác” ZendVN Vietnam Airline Taxi Vinasun Công ty tin học X 8h ngày 05/07/2015 Khởi hành 19h ngày 04/07 điện thoại đặt xe Khởi hành 20h ngày 04/07 điện thoại đặt vé
  • 157. Tình huống thực tế “Đi công tác” ZendVN Vietnam Airline Taxi Vinasun Công ty tin học X 8h ngày 05/07/2015 Phòng Quản Lý
  • 158. Giảm thiểu sự phụ thuộc giữa các Class • Giảm thiểu sự phụ thuộc giữa các Class tạo ra sự linh hoạt cao và tính dễ bảo trì cho ứng dụng • Nếu giảm thiểu tốt sự phụ thuộc sẽ giúp tăng khả năng dung lại và khả năng dễ đọc của mã nguồn, tạo cho ứng dụng tính mềm dẻo và khả năng nâng cấp bảo trì trở nên đơn giản và nhanh chóng hơn
  • 159. Inner Class trong JAVA Inner Class là một class được khai báo và tồn tại bên trong một class khác • Tạo nhóm quan hệ giữa các class với nhau • Các class lồng nhau tăng tính dễ đọc và bảo trì cho ứng dụng • Mã nguồn gắn gọn và đơn giản hơn
  • 160. Inner Class trong JAVA Type Description Member Inner Class Class nằm trong class và ngoài các method Anonymous Inner Class Class ẩn danh, được tạo ra để hiện thực các interface hoặc các class mở rộng khác Local Inner Class Class nằm trong method Static Nested Class Static class được tạo ra bởi một class Nested Interface Interface được tạo ra bởi một class hoặc interface
  • 161. Chương 07: 1. Collections bạn là ai ? 2. Sử dụng List Interface 3. Sử dụng Set Interface 4. Sử dụng Map Interface 5. Static methods trong Collections 6. Sử dụng Comparable Interface 7. Sử dụng Comparator Interface 8. So sánh giữa các Collection 9. BookStore Version 5
  • 162. Chương 07: 1. Collections bạn là ai ? 2. Sử dụng List Interface 3. Sử dụng Set Interface 4. Sử dụng Map Interface 5. Static methods trong Collections 6. Sử dụng Comparable Interface 7. Sử dụng Comparator Interface 8. So sánh giữa các Collection 9. BookStore Version 5
  • 163. Collections là gì ?  Nhược điểm của kiểu dữ liệu Array • Kích thước cố định • Các phần tử phải cùng kiểu dữ liệu và nằm liền kề nhau trong bộ nhớ  Collection khắc phục tất cả các nhược điểm trên ngoài ra còn hỗ trợ sẵn các phương thức: tìm kiếm, sắp xếp, chèn, thao tác, xóa phần tử, ..  Collection là một công cụ có thể chứa và thao tác với các đối tượng thuộc nhiều kiểu dữ liệu khác nhau
  • 164. Collection Interface Class extends implements ListVector QueueDeQueue Set ArrayList LinkedList LinkedHashSet HashSet TreeSetSortedSet LinkedHashMapHashMap TreeMap SortedMapMap Cấu trúc Collection
  • 165. Cấu trúc Collection • Tất cả các class và interface của Collection đều nằm trong package java.util • Các phương thức thường sử dụng trong Collection  size()  add()  isEmpty()  remove()  set()  get()
  • 166. Chương 07: 1. Collections bạn là ai ? 2. Sử dụng List Interface 3. Sử dụng Set Interface 4. Sử dụng Map Interface 5. Static methods trong Collections 6. Sử dụng Comparable Interface 7. Sử dụng Comparator Interface 8. So sánh giữa các Collection 9. BookStore Version 5
  • 167. ArrayList • Sử dụng một mảng động để lưu trữ các phần tử • Giá trị các phần tử có thể trùng nhau • Thứ tự thêm vào các element cũng chính là thứ tự các phần tử trong ArrayList • Tìm hiểu các phương thức thông dụng và phương pháp duyệt các phần tử for và Iterator ListVector QueueDeQueue ArrayList LinkedList
  • 168. LinkedList • Sử dụng “doubly linked list” để lưu trữ các phần tử • Giá trị các phần tử có thể trùng nhau • Thứ tự thêm vào các element cũng chính là thứ tự các phần tử trong LinkedList • Tìm hiểu phương pháp duyệt các phần tử: for và Iterator ListVector QueueDeQueue ArrayList LinkedList
  • 169. ArrayList vs LinkedList ArrayList • Sử dụng mảng động để lưu trữ các phần tử • Implement: List • Better for storing and accessing data LinkedList • Sử dụng “doubly linked list” để lưu trữ các phần tử • Implement: List và Dequeue • Better for manipulating
  • 170. Chương 07: 1. Collections bạn là ai ? 2. Sử dụng List Interface 3. Sử dụng Set Interface 4. Sử dụng Map Interface 5. Static methods trong Collections 6. Sử dụng Comparable Interface 7. Sử dụng Comparator Interface 8. So sánh giữa các Collection 9. BookStore Version 5
  • 171. Set Interface • Lưu trữ các phần tử thuộc nhiều kiểu dữ liệu khác nhau nhưng các phần tử không được lưu trữ theo chỉ số • Không chứa các phần tử trùng nhau • Sự khác biệt giữa List và Set: List có thể chứa những phần tử có giá trị giống nhau còn Set thì không • Các class tiến hành tìm hiểu: HashSet, LinkedHashSet, TreeSet Set HashSet SortedSet LinkedHashSet TreeSet
  • 172. • HashSet thứ tự các phần tử được thêm vào bị thay đổi • LinkedSet thứ tự các phần tử được thêm vào đảm bảo được giữ nguyên • TreeSet thứ tự các phần tử được thêm vào được sắp xếp theo thứ tự tăng dần HashSet – LinkedHashSet – TreeSet
  • 173. Chương 07: 1. Collections bạn là ai ? 2. Sử dụng List Interface 3. Sử dụng Set Interface 4. Sử dụng Map Interface 5. So sánh giữa các Collection 6. Static methods trong Collections 7. Sử dụng Comparable Interface 8. Sử dụng Comparator Interface 9. BookStore Version 5
  • 174. Map Interface • Lưu trữ các phần tử thuộc nhiều kiểu dữ liệu khác nhau nhưng các phần tử là một đối tượng bao gồm key và value • Không chứa các phần tử có khóa (key) giống nhau • Các class tiến hành tìm hiểu: HashMap, LinkedHashMap, TreeMap Map HashMap SortedMap LinkedHashMap TreeMap
  • 175. HashMap – LinkedHashMap - TreeMap • HashMap thứ tự các phần tử thay đối so với thứ tự insert vào • LinkedHashMap giữ nguyên thứ tự các phần tử • Treemap thứ tự các phần tử được sắp xếp theo thứ tự tang dần của key Map HashMap SortedMap LinkedHashMap TreeMap
  • 176. Chương 07: 1. Collections bạn là ai ? 2. Sử dụng List Interface 3. Sử dụng Set Interface 4. Sử dụng Map Interface 5. So sánh giữa các Collection 6. Static methods trong Collections 7. Sử dụng Comparable Interface 8. Sử dụng Comparator Interface 9. BookStore Version 5
  • 177. So sánh giữa các Collection • List có thể tồn tại các phần tử có giá trị trùng nhau • Set không tồn tại các phần tử có giá trị trùng nhau • Map không tồn tại các phần tử có key trùng nhau Tình huống luyện tập • ArrayList – LinkedList • HashSet – LinkHashSet – TreeSet • HashMap – LinkHashMap – TreeMap • Difference between … and … in Java • Java … vs …
  • 178. Chương 07: 1. Collections bạn là ai ? 2. Sử dụng List Interface 3. Sử dụng Set Interface 4. Sử dụng Map Interface 5. So sánh giữa các Collection 6. Static methods trong Collections 7. Sử dụng Comparable Interface 8. Sử dụng Comparator Interface 9. BookStore Version 5
  • 179. Sử dụng Static methods trong Collections Sử dụng phương thức static của Collections để thực hiện các yêu cầu sau: • Sắp xếp danh sách theo thứ tự tăng dần • Đảo ngược vị trí các phần tử trong một danh sách • Sắp xếp danh sách theo thứ tự giảm dần • Tìm kiếm phần tử trong danh sách • Trộn ngẫu nhiên vị trí các phần tử nằm trong danh sách
  • 180. Chương 07: 1. Collections bạn là ai ? 2. Sử dụng List Interface 3. Sử dụng Set Interface 4. Sử dụng Map Interface 5. So sánh giữa các Collection 6. Static methods trong Collections 7. Sử dụng Comparable Interface 8. Sử dụng Comparator Interface 9. BookStore Version 5
  • 181. Sử dụng Colections.sort đối với object • Exception in thread "main" java.lang.ClassCastException: chap06.collection.Course cannot be cast to java.lang.Comparable • Khắc phục bằng cách implements Comparable và định nghĩa phương thức compareTo() public class Course implements Comparable{ @Override public int compareTo(Object obj) { // your code here } }
  • 182. Chương 07: 1. Collections bạn là ai ? 2. Sử dụng List Interface 3. Sử dụng Set Interface 4. Sử dụng Map Interface 5. So sánh giữa các Collection 6. Static methods trong Collections 7. Sử dụng Comparable Interface 8. Sử dụng Comparator Interface 9. BookStore Version 5
  • 183. Sử dụng Comparator Interface • Định nghĩa class XComparator implements từ Comparator • Sử dụng tham số thứ hai trong Collections.sort()
  • 184. Chương 08: 1. Generic Method 2. Generic Class 3. Generic Collection 4. Ràng buộc dữ liệu trong Generic 5. Xây dựng ứng dụng BookStore V7
  • 185. Sử dụng Generic như thế nào • Generic giúp phát hiện sớm các exception trong lúc biên dịch chương trình • Generic Methods • Generic Class • Generic Collection
  • 186. Chương 09: Sử dụng class Pattern và Match trong Java Regex
  • 187. Sử dụng class Pattern và Match trong Java Regex J a v a 4 i s 8 9 10 e a s y Pattern pattern = Pattern.compile("s+");// Matcher matcher = pattern.matcher("Java is easy"); 5 group start end start end group