intTypePromotion=1
ADSENSE

Giáo trình Lập trình Java (Nghề: Lập trình máy tính - Trình độ Cao đẳng) - Trường Cao đẳng Nghề An Giang

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:70

17
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mục tiêu của Giáo trình Lập trình Java là giúp các bạn hiểu biết về ngôn ngữ lập trình Java, lập trình hướng đối tượng trong Java; trình bày được các mô hình lập trình giao diện, xử lý sự kiện trong Java; trình bày được các bước lập trinh truy xuất cơ sở dữ liệu. Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Giáo trình Lập trình Java (Nghề: Lập trình máy tính - Trình độ Cao đẳng) - Trường Cao đẳng Nghề An Giang

  1. ỦY BAN NHÂN DÂN TỈNH AN GIANG TRƢỜNG CAO ĐẲNG NGHỀ AN GIANG GIÁO TRÌNH MÔ ĐUN: Lập Trình Java NGÀNH/NGHỀ: LẬP TRÌNH MÁY TÍNH TRÌNH ĐỘ: CAO ĐẲNG (Ban hành theo Quyết định số: /QĐ-CĐN, ngày tháng năm 20 của Hiệu trưởng trường Cao đẳng nghề An Giang) An Giang, Năm ban hành:
  2. TUYÊN BỐ BẢN QUYỀN Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể đƣợc phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo. Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm. LỜI GIỚI THIỆU Ngôn ngữ lập trình java ra đời và đƣợc các nhà nghiên cứu của Công ty Sun Microsystem giới thiệu vào năm 1995. Sau khi ra đời không lâu, ngôn ngữ lập trình này đã đƣợc sử dụng rộng rãi và phổ biến đối với các lập trình viên chuyên nghiệp cũng nhƣ các nhà phát triển phần mềm. Gần đây ngôn ngữ lập trình, công nghệ java đã đƣợc đƣa vào giảng dạy ở các cơ sở đào tạo lập trình viên chuyên nghiệp. Tài liệu này sẽ giúp chúng ta tìm hiểu về java và cách viết một ứng dụng bằng ngôn ngữ này. An Giang, ngày tháng năm 20… Tham gia biên soạn 1. Ths. Vũ Trường Duy 2…………… 3. …………. 2
  3. MỤC LỤC LỜI GIỚI THIỆU ...................................................................................................... 2 GIÁO TRÌNH MÔ ĐUN .......................................................................................... 5 BÀI 1: THIẾT LẬP MÔI TRƢỜNG LẬP TRÌNH JAVA ....................................... 8 I/ Cài đặt môi trƣờng lập trình Java. ...................................................................... 8 II/ Biên dịch, chạy chƣơng trình. ........................................................................... 9 Bài tập: ................................................................................................................. 10 BÀI 2: JAVA CƠ BẢN ........................................................................................... 11 I/ Cấu trúc cơ bản một chƣơng trình viết bằng Java. ........................................... 11 II/ Hằng, biến, kiểu dữ liệu, toán tử, từ khóa. ...................................................... 11 III/ Các cấu trúc điều khiển. ................................................................................. 15 IV/ Mảng và chuỗi trong Java. ............................................................................. 17 Bài tập: ................................................................................................................. 21 BÀI 3: HƢỚNG ĐỐI TƢỢNG TRONG JAVA ..................................................... 22 I/ Lớp trong Java .................................................................................................. 22 II/ Tính kế thừa..................................................................................................... 26 III/ Các ví dụ minh họa. ....................................................................................... 26 Bài tập: ................................................................................................................. 30 BÀI 4: LẬP TRÌNH GIAO DIỆN .......................................................................... 32 I/ Giới thiệu thiết kế giao diện trong Java............................................................ 32 II/ Các thành phần (Component).......................................................................... 32 III/ Các đối tƣợng khung chứa (Containers). ....................................................... 41 IV/ Các bộ quản lý trình bày (Layout managers). ............................................... 44 Bài tập: ................................................................................................................. 50 BÀI 5: LẬP TRÌNH SỰ KIỆN ............................................................................... 51 I/ Các ví dụ mở đầu. ............................................................................................. 51 II/ Mô hình xử lý sự kiện trong Java .................................................................... 54 III. Các bộ lắng nghe sự kiện. .............................................................................. 56 IV. Các thành phần component nâng cao. ........................................................... 58 3
  4. V/ Xử lý sự kiện chuột. ........................................................................................ 59 VI/ Xử lý sự kiện bàn phím.................................................................................. 59 Bài tập: ................................................................................................................. 60 BÀI 6: XỬ LÝ NGOẠI LỆ ..................................................................................... 61 I/ Xử lý lỗi trong Java. ......................................................................................... 61 II. Các lớp ngoại lệ (Exceptions). ........................................................................ 61 III/ Xây dựng một lớp ngoại lệ. ........................................................................... 62 Bài tập: ................................................................................................................. 63 BÀI 7: KẾT NỐI CƠ SỞ DỮ LIỆU ....................................................................... 64 I/ Các trình điều khiển JDBC. .............................................................................. 64 II/ Các bƣớc lập trình truy xuất cơ sở dữ liệu. ..................................................... 65 III/ Các đối tƣợng trong lập trình cơ sở dữ liệu. .................................................. 65 IV/ Xử lý và trình bày dữ liệu. ............................................................................. 66 Bài tập: ................................................................................................................. 68 CÁC THUẬT NGỮ CHUYÊN MÔN .................................................................... 70 4
  5. GIÁO TRÌNH MÔ ĐUN Tên mô đun : LẬP TRÌNH JAVA Mã mô đun: MĐ23 Thời gian thực hiện mô đun: 75 giờ (Lý thuyết: 20 giờ, thực hành, thí nghiệm, thảo luận: 53giờ, bài tập: ..... giờ, kiểm tra: 2 giờ). I. VỊ TRÍ, TÍNH CHẤT CỦA MÔ ĐUN 1. Vị trí: thuộc nhóm Mô đun chuyên môn nghề 2. Tính chất: Là Mô đun chuyên môn bắt buộc trong ngành lập trình máy tính hệ Cao đẳng 3. Ý nghĩa và vai trò của mô đun: Mô đun này cung cấp cho sinh viên các kiến thức cơ bản về lập trình Java, bao gồm: các kiểu dữ liệu, các phép toán, các cấu trúc điều khiển, khái niệm về lập trình hƣớng đối tƣợng, tạo và sử dụng lớp. Mô đun cũng bao gồm các kiến thức để viết các ứng dụng giao diện ngƣời dùng, truy xuất cơ sở dữ liệu. II. MỤC TIÊU CỦA MÔ ĐUN 1. Kiến thức: + Hiểu biết về ngôn ngữ lập trình Java, lập trình hƣớng đối tƣợng trong Java. + Trình bày đƣợc các mô hình lập trình giao diện, xử lý sự kiện ừong Java. + Trình bày đƣợc các bƣớc lập trinh truy xuất cơ sở dữ liệu. 2. Kỹ năng: + Sử dụng đƣợc một ngôn ngữ lập trình hƣớng đối tƣợng cụ thể (Java). + Sử dụng đƣợc môi trƣờng phát triển phần mềm tích họp (IDE) phục vụ cho việc lập trình bang Java. + Có đƣợc các kỹ năng sử dụng ngôn ngữ Java để lập trình dòng lệnh, lập trình giao diện đồ họa, lập trình sự kiện, lập trình truy xuất cơ sở dữ liệu. 3. Năng lực tự chủ và trách nhiệm. + Cẩn thận, tỉ mỉ, tự giác học tập và nghiên cứu. III. NỘI DUNG MÔ ĐUN Thời gian (giờ) Số Thực hành, thí Tên các bài trong mô đun Tổng Lý Kiểm TT nghiệm, thảo số thuyết tra luận, bài tập 1 Bài mở đầu: 4 1 3 Bài 1: Thiết lập môi trƣờng lập trình Java 1. Cài đặt môi trƣờng lập trình Java. 2. Biên dịch, chạy chƣơng trình. 5
  6. 2 Bài 2: Java cơ bản 12 3 9 1. Cấu trúc cơ bản một chƣơng trình viết bằng Java. 2. Hằng, biến, kiểu dữ liệu, toán tử, từ khóa. 3. Các cấu trúc điều khiển. 4. Mảng và chuỗi trong Java. 3 Bài 3: Hƣớng đối tƣợng trong 12 3 9 Java 1. Lớp trong Java. 2. Tính kế thừa. 3. Các ví dụ minh họa. 4 Bài 4: Lập trình giao diện 16 4 12 1. Giới thiệu thiết kế giao diện trong Java. 2. Các thành phần (component). 3. Các đối tƣợng khung chứa (containers). 4. Các bộ quản lý trình bày (layout managers). 5 Bài 5: Lập trình sự kiện 16 4 11 1 1. Các ví dụ mở đầu. 2. Mô hình xử lý sự kiện trong Java 3. Các bộ lắng nghe sự kiện. 4. Các thành phần component nâng cao. 5. Xử lý sự kiện chuột. 6. Xử lý sự kiện bàn phím. 6 Bài 6: Xử lý ngoại lệ 4 1 3 1. Xử lý lỗi trong Java. 2. Các lớp ngoại lệ (exceptions). 3. Xây dựng một lớp ngoại lệ. 7 Bài 7: Kết nối cơ sở dữ liệu 8 3 4 1 1. Các trình điều khiển JDBC. 2. Các bƣớc lập trình truy xuất cơ sở dữ liệu. 4. Các đối tƣợng trong lập trình cơ sở dữ liệu. 5. Xử lý và trình bày dữ liệu. 6
  7. 8 Ôn tập 3 1 2 Cộng 75 20 53 2 7
  8. BÀI 1: THIẾT LẬP MÔI TRƢỜNG LẬP TRÌNH JAVA Mục tiêu: - Cài đặt đƣợc môi trƣờng lập trình Java. - Biên dịch và chạy đƣợc một chƣơng trình Java. Nội dung chính: I/ Cài đặt môi trƣờng lập trình Java. 1/ Các phần mềm cần chuẩn bị: - JDK 1.6 (jdk-6u11-windows-i586-p) - JDK DOC 1.6 (jdk-6u10-docs) Tải về từ trang web: http://java.sun.com/javase/downloads/index.jsp - JCreator 4.5 Tải về từ trang web: http://www.jcreator.com/download.htm - Nếu không dùng một IDE nhƣ JCreator để soạn thảo, dịch và thực thi thì ta có thể dùng trình soạn thảo văn bản nhƣ NotePad để soạn thảo. 2/ Trình tự cài đặt: Nên cài đặt theo trình tự sau: - Cài JDK 1.6 - Thiết lập biến môi trƣờng PATH, CLASPATH - Cài JDK Doc 1.6 - JCreator 4.5 - Thiết lập cho JCreator chỉ vào bộ JDK Doc 1.6 đã cài đặt Cài JDK 1.6 - Phần này hƣớng dẫn cài trong hệ điều hành Windows 7 (đối với các hệ điều hành khác của hãng Microsoft thì cách cài cũng tƣơng tự). - Tạo thƣ mục C:\Java để cài. Nếu không thì để JDK cài ngầm định vào C:\Program Files\Java\jdk1.6.0_11 - Nhấp đúp vào source JDK 1.6 để cài. - Thiết lập biến môi trƣờng PATH chỉ đến thƣ mục BIN của thƣ mục mà ta mới cài JDK. - Thiết lập biến môi trƣờng CLASSPATH chỉ đến thƣ mục chƣa các lớp của ngƣời dùng. Từ bản JDK 1.4 về sau, ta không cần quan tâm đến biến CLASSPATH nữa. Thiết lập biến môi trƣờng Path Trong Windows, nhấp Start/run gõ vào sysedit. Trong cửa sổ AUTOEXEC.BAT gõ chuỗi “set PATH=“ chỉ đến thƣ mục BIN của JDK mới cài đặt. Ví dụ: set PATH=C:\Program Files\Java\jdk1.6.0_11\bin Sau đó save và đóng cửa sổ sysedit lại rồi khởi động lại máy. Cài đặt JDK DOC JDK Doc là là tài liệu trợ giúp tra cứu các lớp và các phƣơng thức của Java. JDK Doc cũng trợ giúp tra hàm và lớp khi soạn thảo trong JCreator. Source của JDK Doc ở dạng file nén. Ta tiến hành giải nén nó vào cùng thƣ mục đã cài JDK. Cài đặt JCreator 4.5 Sau khi download source JCreator và ta tiến hành cài đặt nó. 8
  9. II/ Biên dịch, chạy chƣơng trình. 1/ Viết một chƣơng trình đơn giản Dùng JCreator viết và thực thi chƣơng trình có tên là HelloWorldApp Bƣớc 1: Tạo một empty project Trên menu của JCreator chọn File/New/Project/Empty Project/Next Đặt tên cho project ở ô Name. Chọn thƣ mục chứa project ở ô Location. Nhấn Finish. 9
  10. Bƣớc 3: Soạn thảo mã nguồn, dịch và thực thi Bài tập: Hãy cài đặt môi trƣờng lập trình Java. 10
  11. BÀI 2: JAVA CƠ BẢN Mục tiêu: - Trình bày đƣợc cấu trúc cơ bản của một chƣơng trình viết bằng Java. - Mô tả đƣợc hằng và biến dùng trong chƣơng trình. - Sử dụng đƣợc quy tắc cú pháp của ngôn ngữ lập trình. - Vận dụng đƣợc các cấu trúc điều khiển, cấu trúc lặp vào lập trình. - Sử dụng đƣợc mảng và chuỗi trong lập trình Java. Nội dung chính: I/ Cấu trúc cơ bản một chƣơng trình viết bằng Java. Phƣơng thức main(): là điểm bắt đầu thực thi một ứng dụng. - Mỗi ứng dụng Java phải chứa một phƣơng thức main có dạng nhƣ sau: public static void main(String[] args) - Phƣơng thức main chứa ba bổ từ đặc tả sau:  public: chỉ ra rằng phƣơng thức main có thể đƣợc gọi bởi bất kỳ đối tƣợng nào.  static: chỉ ra rằng phƣơng thức main là một phƣơng thức lớp.  void: chỉ ra rằng phƣơng thức main sẽ không trả về bất kỳ một giá trị nào. II/ Hằng, biến, kiểu dữ liệu, toán tử, từ khóa. 1/ Từ khóa (keyword) - Từ khóa cho các kiểu dữ liệu cơ bản: byte, short, int, long, float, double, char, boolean. - Từ khóa cho phát biểu lặp: do, while, for, break, continue. - Từ khóa cho phát biểu rẽ nhánh: if, else, switch, case, default, break. 11
  12. - Từ khóa đặc tả đặc tính một method: private, public, protected, final, static, abstract, synchronized. - Hằng (literal): true, false, null. - Từ khóa liên quan đến method: return, void. - Từ khoá liên quan đến package: package, import. - Từ khóa cho việc quản lý lỗi: try, catch, finally, throw, throws. - Từ khóa liên quan đến đối tƣợng: new, extends, implements, class, instanceof, this, super. 2/ Định danh (identifier) - Định danh là dùng biểu diễn tên của biến, của phƣơng thức, của lớp. - Trong Java, định danh có thể sử dụng ký tự chữ, ký tự số và ký tự dấu. - Ký tự đầu tiên phải là ký tự chữ, dấu gạch dƣới (_), hoặc dấu dollar ($). - Có sự phân biệt giữa ký tự chữ hoa và chữ thƣờng. Ví dụ: Hello, _prime, var8, tvLang 3/ Biến (variable) - Biến là vùng nhớ dùng để lƣu trữ các giá trị của chƣơng trình. - 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. - Tên biến thông thƣờng là một chuỗi các ký tự (Unicode), ký số. - Tên biến phải bắt đầu bằng một chữ cái, một dấu gạch dƣới hay dấu dollar. - Tên biến không đƣợc trùng với các từ khóa (xem lại các từ khóa trong java). - Tên biến không có khoảng trắng ở giữa tên. - Trong java, biến có thể đƣợc khai báo ở bất kỳ nơi đâu trong chƣơng trình. - Cách khai báo ; = ; - Gán giá trị cho biến = ; - Biến công cộng (toàn cục): là biến có thể truy xuất ở khắp nơi trong chƣơng trình, thƣờng đƣợc khai báo dùng từ khóa public, hoặc đặt chúng trong một class. - Biến cục bộ: là biến chỉ có thể truy xuất trong khối lệnh nó khai báo 4/ Kiểu dữ liệu (data type) Gồm các kiểu dữ liệu sau: • Kiểu dữ liệu cơ sở (Primitive data type) • Kiểu dữ liệu tham chiếu hay dẫn xuất (reference data type) • Kiểu dữ liệu cơ sở của Java bao gồm các nhóm sau: số nguyên, số thực, ký tự, kiểu luận lý (logic) • Kiểu dữ liệu tham chiếu là các kiểu dữ liệu đối tƣợng. Ví dụ nhƣ: String, Byte, Character, Double, Boolean, Integer, Long, Short, Font,… và các lớp do ngƣời dùng định nghĩa. - Kiểu dữ liệu cơ sở  Kiểu số nguyên • Bốn kiểu số nguyên khác nhau là: byte, short, int, long • Kiểu mặc định của các số nguyên là kiểu int • Không có kiểu số nguyên không dấu 12
  13. • Không thể chuyển biến kiểu int và kiểu boolean nhƣ trong ngôn ngữ C/C++ Ví dụ: int x = 0; long y=100; int a=1,b,c;  Kiểu dấu chấm động: • Kiểu float có kích thƣớc 4 byte và giá trị mặc định là 0.0f • Kiểu double có kích thƣớc 8 byte và giá trị mặc định là 0.0d • Khai báo và khởi tạo giá trị cho các biến kiểu dấu chấm động: Ví dụ: float x = 100.0/7; double y = 1.56E6;  Kiểu ký tự • Biểu diễn các ký tự trong bộ mã Unicode • 216 = 65536 ký tự khác nhau : từ '\u0000' đến '\uFFFF'  Kiểu luận lý (boolean) • Hai giá trị: true hoặc false • Giá trị mặc định: false • Không thể chuyển thành kiểu nguyên và ngƣợc lại - Toán tử ép kiểu: = (kiểu_dữ_liệu) ; Ví dụ: float fNum = 2.2; int iCount = (int) fNum • Ép kiểu rộng (widening conversion): từ kiểu nhỏ sang kiểu lớn (không mất mát thông tin) • Ép kiểu hẹp (narrow conversion): từ kiểu lớn sang kiểu nhỏ (có khả năng mất mát thông tin) 4/ Hằng (literal) - Hằng là một giá trị bất biến trong chƣơng trình - Tên hằng đƣợc đặt theo qui ƣớc giống nhƣ tên biến - Tiếp vĩ ngữ: l, L, f, F, d, D Ví dụ: int i=1; long i=1L; - Hằng ký tự: là một ký tự đơn nằm giữa 2 dấu nháy đơn. - Hằng chuỗi: là tập hợp các ký tự đƣợc đặt giữa hai dấu nháy kép “”. Một hằng chuỗi không có ký tự nào là một hằng chuỗi rỗng. Ví dụ: “Hello Wolrd” 5/ Toán tử (operator) - Toán tử số học 13
  14. Toán tử Ý nghĩa + Cộng - Trừ * Nhân / Chia nguyên % Chia dƣ ++ Tăng 1 -- Giảm 1 - Toán tử quan hệ & logic Toán tử Ý nghĩa == So sánh bằng != So sánh khác > So sánh lớn hơn < So sánh nhỏ hơn >= So sánh lớn hơn hay bằng 14
  15. Ví dụ: int x = 10; int y = 20; int Z = (x
  16. public class TestSwitch { public static void main(String[] args) { char c; String str=JOptionPane.showInputDialog(null,"Nhap vao ky tu?"); c = str.charAt(0); switch(c) { case 'a': case 'e': case 'i': case 'o': case 'u': System.out.println("Ky tu nay la nguyen am"); break; default: System.out.println("Ky tu nay la phu am"); } System.exit(0); // kết thúc chƣơng trình } } 3/ Vòng lặp while while () ; Ví dụ: // Tính tổng các số lẻ từ 1 đến 100 int tong = 0, i = 1; while (i
  17. } while (i
  18. class ArrayDemo { public static void main(String args[]) { int arrInt[] = new int[10]; int i; for(i = 0; i < 10; i = i+1) arrInt[i] = i; for(i = 0; i < 10; i = i+1) System.out.println("This is arrInt[" + i +"]: " + arrInt[i]); } } Ví dụ 3: Tìm phần tử có giá trị nhỏ nhất (Min) và lớn nhất (Max) trong một mảng. class MinMax2 { public static void main(String args[]) { int nums[] = { 99, -10, 100123, 18, -978, 5623, 463, -9, 287, 49 }; int min, max; min = max = nums[0]; for(int i=1; i < 10; i++) { if(nums[i] < min) min = nums[i]; if(nums[i] > max) max = nums[i]; } System.out.println("Min and max: " + min + " " + max); } } Ví dụ 4: Nhập và xuất giá trị của các phần tử trong một mảng hai chiều. class TwoD_Arr { public static void main(String args[]) { int t, i; int table[][] = new int[3][4]; for(t=0; t < 3; ++t) { for(i=0; i < 4; ++i) { table[t][i] = (t*4)+i+1; System.out.print(table[t][i] + “ "); 18
  19. } System.out.println(); } } } 2/ Chuỗi trong java (string) - Trong những ngôn ngữ lập trình khác (C chẳng hạn), một chuỗi đƣợc xem nhƣ một mảng các ký tự. - Trong java thì khác, java cung cấp một lớp String để làm việc với đối tƣợng dữ liệu chuỗi cùng các thao tác trên đối tƣợng dữ liệu này. - Tạo đối tƣợng chuỗi class StringDemo { public static void main(String args[]) { // Tao chuoi bang nhieu cach khac nhau String str1 = new String("Chuoi trong java la nhung Objects."); String str2 = "Chung duoc xay dung bang nhieu cach khac nhau."; String str3 = new String(str2); System.out.println(str1); System.out.println(str2); System.out.println(str3); } } - Minh họa một số thao tác cơ bản trên chuỗi // Chuong trinh minh hoa cac thao tac tren chuoi ky tu class StrOps { public static void main(String args[]) { String str1 = "Java la chon lua so mot cho lap trinh ung dung Web."; String str2 = new String(str1); String str3 = "Java ho tro doi tuong String de xu ly chuoi"; int result, idx; char ch; System.out.println("str1:" + str1); System.out.println("str2:" + str2); System.out.println("str3:" + str3); System.out.println("Chieu dai cua chuoi str1 la:" + str1.length()); // Hien thi chuoi str1, moi lan mot ky tu. System.out.println(); for(int i=0; i < str1.length(); i++) System.out.print(str1.charAt(i)); System.out.println(); 19
  20. if(str1.equals(str2)) System.out.println("str1 == str2"); else System.out.println("str1 != str2"); if(str1.equals(str3)) System.out.println("str1 == str3"); else System.out.println("str1 != str3"); result = str1.compareTo(str3); if(result == 0) System.out.println("str1 = str3 "); else if(result < 0) System.out.println("str1 < str3"); else System.out.println("str1 > str3"); // Tao chuoi moi cho str4 String str4 = "Mot Hai Ba Mot"; idx = str4.indexOf("Mot"); System.out.println("str4:" + str4); System.out.println( "Vi tri xuat hien dau tien cua chuoi con 'Mot' trong str4: " + idx); idx = str4.lastIndexOf("Mot"); System.out.println("Vi tri xuat hien sau cung cua chuoi con 'Mot' trong str4:" + idx); } } - Lấy chuỗi con của một chuỗi class SubStr { public static void main(String args[]) { String orgstr = "Mot Hai Ba Bon"; // Lay chuoi con dung ham // public String substring(int beginIndex, int // endIndex) String substr = orgstr.substring(4, 7); System.out.println("Chuoi goc: " + orgstr); System.out.println("Chuoi con: " + substr); } } - Mảng các chuỗi class StringArray { 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD


ERROR:connection to 10.20.1.100:9312 failed (errno=113, msg=No route to host)
ERROR:connection to 10.20.1.100:9312 failed (errno=113, msg=No route to host)

 

Đồng bộ tài khoản
2=>2