Lập trình Kotlin toàn tập

271 353 0
Lập trình Kotlin toàn tập

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giáo trình Lập trình Kotlin toàn tập với thầy Trần Duy Thanh. Kotlin và Java là song kiếm hợp bích, để học tốt Kotlin thì theo Tui các bạn nên học tốt Java trước. Hai ngôn ngữ này sẽ tương hỗ cho nhau trong quá trình viết mã lệnh. Google đã công Kotlin trở thành ngôn ngữ chính thống cho việc triển khai các dự án Android, do đó tương lai nó có tiềm năng rất lớn. Các bạn cố gắng học tốt Kotlin, Tui đã chủ ý biên soạn theo thứ tự từ thấp lên cao do đó các bạn nên học theo từng bài. Nắm vững Kotlin tốt sẽ tạo cơ hội trong tương lai cho các bạn, vì tương lai sẽ có làn sóng mạnh mẽ về tuyển dụng lập trình viên Android với Kotlin.

Tài liệu Lập trình Kotlin tồn tập Thơng tin tác giả:      Trần Duy Thanh (Profile https://duythanhcse.wordpress.com/contact/ ) Blog chia sẻ kiến thức: http://duythanhcse.wordpress.com/ Website khóa học trực tuyến: https://communityuni.com/ Phone: 0987773061 Email: duythanhcse@gmail.com TPHCM-2017 1|P a g e Mục Lục Lời giới thiệu Bài 1: Có nên học Kotlin? Bài 2-Cài đặt cơng cụ lập trình Kotlin 10 Bài 3-Tạo ứng dụng Kotlin 20 Bài 4-Cách xuất liệu hình Kotlin 27 Bài – Các cách ghi quan trọng lập trình Kotlin 29 Bài 6-Kiểu liệu cách khai báo biến Kotlin 32 Bài – Ép kiểu liệu Kotlin 35 Bài – Các toán tử quan trọng Kotlin 38 Bài 9- Nhập liệu từ bàn phím với Kotlin 47 Bài 10- Cấu trúc điều khiển if else Kotlin 51 Bài 11-Biểu thức when Kotlin 56 Bài 12-Vòng lặp for Kotlin 62 Bài 13-Vòng lặp while Kotlin 69 Bài 14-Vòng lặp while Kotlin 73 Bài 15-Xử lý biệt lệ Kotlin 78 Bài 16-Cách gỡ lỗi Kotlin công cụ Debug 82 Bài 17-Các thư viện quan trọng thường dùng Kotlin 89 Bài 18- Xử lý chuỗi Kotlin 98 Bài 19- Xử lý mảng chiều Kotlin 106 Bài 20- Xử lý mảng hai chiều Kotlin 111 Bài 21-Collections Kotlin 115 Bài 22-Lập trình hướng đối tượng Kotlin – phần 121 Bài 23-Lập trình hướng đối tượng Kotlin – phần 129 Bài 24-Lập trình hướng đối tượng Kotlin – phần 139 Bài 25-Lập trình hướng đối tượng Kotlin – phần 146 Bài 26-Lập trình hướng đối tượng Kotlin – phần 150 Bài 27-Alias chế gom rác tự động Kotlin-OOP phần 157 Bài 28-Extensions Method Kotlin-OOP phần 162 Bài 29-Xử lý Text File Kotlin .167 2|P a g e Bài 30-Xử lý Serialize File Kotlin .172 Bài 31-Xử lý XML File Kotlin .176 Bài 32-Xử lý JSon Kotlin – Bài 182 Bài 33-Xử lý JSon Kotlin – Bài 190 Bài 34-Đọc JSon tỉ giá hối đoái Ngân Hàng Đông Á Kotlin – Bài .196 Bài 35-Thiết kế giao diện Kotlin – phần 202 Bài 36-Thiết kế giao diện Kotlin – phần 208 Bài 37-Thiết kế giao diện Kotlin – phần 214 Bài 38-Thiết kế giao diện Kotlin – phần 224 Bài 39-Thiết kế giao diện Kotlin – phần 255 Bài 40-Kết xuất Executable cho Kotlin [Kết thúc khóa học Kotlin] 263 Tài liệu tham khảo 271 3|P a g e Lời giới thiệu Theo nhiều lời đề nghị người, Tui soạn thảo lại lập trình Kotlin Blog https://duythanhcse.wordpress.com/kotlin/kotlin-co-ban-den-nang-cao/ thành Ebook để giúp bạn dễ học máy Kotlin Java song kiếm hợp bích, để học tốt Kotlin theo Tui bạn nên học tốt Java trước Hai ngôn ngữ tương hỗ cho q trình viết mã lệnh Google cơng Kotlin trở thành ngơn ngữ thống cho việc triển khai dự án Android, tương lai có tiềm lớn Các bạn cố gắng học tốt Kotlin, Tui chủ ý biên soạn theo thứ tự từ thấp lên cao bạn nên học theo Nắm vững Kotlin tốt tạo hội tương lai cho bạn, tương lai có sóng mạnh mẽ tuyển dụng lập trình viên Android với Kotlin Trong trình biên soạn khơng tránh khỏi sai sót, q độc giả vui lòng hoan hỉ lượng thứ gửi thư góp ý cho: Trần Duy Thanh (duythanhcse@gmail.com) để phiên sau chu đáo Nếu quý độc giả có share dùng làm tài liệu cho trung tâm, trường học… vui lòng ghi rõ nguồn gốc tài liệu Xin chân thành cảm ơn Trần Duy Thanh 4|P a g e Bài 1: Có nên học Kotlin? Mấy ngày tên Kotlin tạo nên địa chấn làm rung chuyển giới công nghệ, bạn xem phim “Đường Sơn Đại Địa Chấn” chưa? phim vô hay cướp nước mắt khán giả Kotlin làm điều ngược lại, lan tỏa khơng biết nụ cười cho giới lập trình viên nhiều tiện ích mà đem lại Đặc biệt ngày 17/05/2017 vừa Google công bố Kotlin trở thành ngôn ngữ lập trình Android thống giáo, từ phiên Android Studio 3.0 lập trình viên tung hồnh! Và Tui dự đốn rằng: Trong tương lai có sóng mạnh mẽ tuyển dụng lập trình viên Android ngơn ngữ Kotlin, cơng ty khát nhân lực, bạn cần nhanh chóng nghiên cứu Kotlin để đầu công nghệ Nếu bạn bảo lưu quan điểm Chậm Mà Chắc, Tui nghĩ khơng Thời đại khác xưa rồi, bạn phải Nhanh Mà Chắc người ta được, đừng chờ Kotlin q phổ biến lúc bạn người đến sau Hãy chiến đấu từ để đầu công nghệ! Hi hi hi, nghe tới bạn Đã Ghiền Kotlin chưa? Ngày xưa Tui học Văn dốt lớp, toàn bị 4.5 điểm, nên cố gắng viết chút giới thiệu Kotlin ha – nhìn hình Toptal nói Java già cỗi 5|P a g e Kotlin có nhiều ưu điểm, Tui liệt kê số để bạn tham khảo (dĩ nhiên bạn tìm hiểu thêm): Ngắn gọn nào?  Ta dễ dàng viết POJO (Plain Old Java Object) dòng : data class Customer(val name: String, val email: String, val company: String)  Ta dùng Lambda để lọc liệu cách nhanh chóng: val positiveNumbers = list.filter { it > }  Ta tạo đối tượng SingleTon: object ThisIsASingleton { val companyName: String = "https://ssoftinc.com/" } Và nhiều cách viết ngắn gọn khác nữa, bạn tham khảo thêm http://kotlinlang.org/ An tồn nào? Kotlin tự động kiểm tra lỗi biễn dịch Null pointer exception, hành vi tập liệu null, tự động ép kiểu cách xác cho ta, ví dụ so sánh: 6|P a g e Đa nào? Phải nói Kotlin làm multiplatform applications Có thể build Kotlin cho Server-side , cho Android, cho Javascript, Native… Khả tương tác nào? Kotlin sử dụng 100% thư viện từ JVM, dễ dàng từ Kotlin triệu gọi Java từ Java triệu gọi Kotlin Giúp Lập trình viên khơng lo lắng việc chuyển đổi coding, tăng khả tương tác mạnh mẽ hệ thống Ngồi Kotlin dễ dàng lập trình nhiều cơng cụ khác nhau: Website, Eclipse, Netbeans, Android Studio, JetBrains… Tài liệu lập trình phong phú, cộng đồng hỗ trợ Kotlin ngày không ngừng phát triển Các sách Lập trình viên nghiên cứu: 1.Kotlin in Action 7|P a g e Cuốn sách có 11 chương, giúp bạn hiểu rõ Kotlin từ tới nâng 2.Kotlin for Android Developers Sách dành cho rành Kotlin, tiếp tục phát triển Kotlin bên Android (phần đầu dạy Kotlin), xé nhỏ thành 26 chương giúp ta dễ dàng học 3.Modern Web Development with Kotlin 8|P a g e Cuốn sách dạy Web với Kotin, đặc biệt EcmaScript chuẩn nhất, Json….Các bạn quan tâm học, khoảng 115 trang 4.Programming Kotlin Cuốn tương tự, giúp ta học tốt Kotlin Bố trí thành 13 chương (420 pages ) bạn bám theo để học 5.Fundamental Kotlin Cuốn sách hay, bạn tham khảo Chúc bạn nhanh chóng học tốt Kotlin, hẹn gặp bạn sau Trần Duy Thanh (https://ssoftinc.com/) 9|P a g e Bài 2-Cài đặt cơng cụ lập trình Kotlin Ở Tui trình bày lý nên học Kotlin, Trong Tui hướng dẫn bạn cách cài đặt công cụ lập trình Kotlin Để lập trình Kotlin bạn sử dụng Website để thử nghiệm online https://try.kotlinlang.org/ Hoặc cài đặt phần mềm IntelliJ IDEA , Eclipse Neon , Command Line Compiler , Build Tools (Ant, Maven, Gradle, Griffon (external support)) Bài Tui hướng dẫn cách cài đặt phần mềm IntelliJ IDEA để lập trình Kotlin (vì xuyên suốt hướng dẫn lập trình Kotlin Tui dùng công cụ để minh họa) Trước tiên bạn cần cài JDK vào máy trước (Kotlin chạy JVM, cài 1.8 trở lên), khóa học Kotlin thường dành cho rành Java Bước bạn tự xử Có trường hợp để tải phần mềm IntelliJ IDEA: 1.Nếu bạn lập trình viên bình thường 2.Nếu bạn Teacher Student (dành cho Education) Bây Tui hướng dẫn chi tiết trường hợp tải phần mềm Trường hợp 1: Nếu bạn lập trình viên bình thường Các bạn tải Community IntelliJ IDEA link sau: http://www.jetbrains.com/idea/download/index.html 10 | P a g e Chỉnh pnMain có layout manager BorderLayout, kéo JScrollPane vào phần Center => sau kéo JTree vào bên JScrollPane Nhớ chọn JTree checked Custom Create để hàm createUIComponents() Sau Chỉnh sửa source code NhanSuPanel, giả lập số liệu: package communityuni.com.ui; import communityuni.com.model.NhanVien; import communityuni.com.model.PhongBan; import javax.swing.*; import javax.swing.tree.DefaultMutableTreeNode; import java.util.ArrayList; import java.util.List; /** * Created by cafe on 04/06/2017 */ public class NhanSuPanel { private JPanel pnMain; private JTree treePhongBan; DefaultMutableTreeNode root; List<PhongBan>database=null; private void loadSampleDatabaseToGUI() { 257 | P a g e root=new DefaultMutableTreeNode("http://communityuni.com"); treePhongBan=new JTree(root); for (int i=0;i<database.size();i++) { PhongBan pb=database.get(i); DefaultMutableTreeNode pbNode=new DefaultMutableTreeNode(pb); root.add(pbNode); for (int j=0;j<pb.getNhanViens().size();j++) { NhanVien nv=pb.getNhanViens().get(j); DefaultMutableTreeNode nvNode=new DefaultMutableTreeNode(nv); pbNode.add(nvNode); } } } private void createSampleDatabase() { database=new ArrayList<>(); PhongBan pns=new PhongBan(1,"Phòng tổ chức hành PhongBan phc=new PhongBan(2,"Phòng Kế hoạch tài PhongBan pkhcn=new PhongBan(3,"Phòng Khách hàng nhân"); PhongBan pkhdn=new PhongBan(4,"Phòng Khách hàng nghiệp"); chánh"); chính"); cá doanh database.add(pns);database.add(phc);database.add(pkhcn);database add(pkhdn); pns.getNhanViens().add(new NhanVien(1,"Trần Thị Giải")); pns.getNhanViens().add(new NhanVien(2,"Nguyễn Thị Thoát")); pns.getNhanViens().add(new NhanVien(3,"Hồ Văn Hạnh")); pns.getNhanViens().add(new NhanVien(4,"Đinh Thị Phúc")); phc.getNhanViens().add(new NhanVien(5,"Trần Văn Yên")); phc.getNhanViens().add(new NhanVien(6,"Hoàng thị Giấc")); phc.getNhanViens().add(new NhanVien(7,"Nguyễn Ngọc Ngàn")); phc.getNhanViens().add(new NhanVien(8,"Ma Văn Thu")); } public JPanel getPnMain() { return pnMain; 258 | P a g e } private void createUIComponents() { createSampleDatabase(); loadSampleDatabaseToGUI(); } } Chạy chương trình lên ta có giao diện Tui cung cấp Bây để gán kiện cho JTree ta bấm chuột phải vào JTree chọn Create Listener: Sau chọn TreeSelectionListener: 259 | P a g e Chọn valueChanged hình Select Methods to Implement: Nhấn OK ta thấy kiện xuất hiện: public NhanSuPanel() { treePhongBan.addTreeSelectionListener(new TreeSelectionListener() { @Override public void valueChanged(TreeSelectionEvent e) { } }); } 260 | P a g e Bổ sung coding để kiểm tra Node nhấn: public NhanSuPanel() { treePhongBan.addTreeSelectionListener(new TreeSelectionListener() { @Override public void valueChanged(TreeSelectionEvent e) { DefaultMutableTreeNode node= (DefaultMutableTreeNode) treePhongBan.getLastSelectedPathComponent(); switch (node.getLevel()) { case 0: JOptionPane.showMessageDialog(null,"Bạn nhấn Root="+node.getUserObject()); break; case 1: PhongBan pb= (PhongBan) node.getUserObject(); JOptionPane.showMessageDialog(null,pb.getTen()); break; case 2: NhanVien nv= (NhanVien) node.getUserObject(); JOptionPane.showMessageDialog(null,nv.getTen()); break; } } }); } Như ta dùng treePhongBan.getLastSelectedPathComponent(); để biết Node chọn, dùng node.getLevel() để lấy xác cấp (thực lấy đối tượng), ứng với level ta kiểm tra để lấy Đối tượng 261 | P a g e Như Tui hướng dẫn xong cách dùng JTree Kotlin bạn nhớ kế hợp với JTable để hiển thị chi tiết liệu Các bạn tải source code đây: http://www.mediafire.com/file/goj6bdooxe2h3bq/HocGUIPhan5.rar Hẹn gặp bạn cuối cùng, 40 khóa học Kotlin Chúc bạn thành công! Trần Duy Thanh (http://ssoftinc.com/) 262 | P a g e Bài 40-Kết xuất Executable cho Kotlin [Kết thúc khóa học Kotlin] Chào bạn! Chúng ta Say Goodbye ngơn ngữ lập trình Kotlin nhé, Tui phải Busy cho nhiều tasks khác Toàn giảng Kotlin Tui tổng hợp link https://duythanhcse.wordpress.com/kotlin/kotlin-co-ban-den-nang-cao/ bạn vào học Ráng học cho tốt tới Android Studio 3.0 đời đính lập trình Kotlin For Android, Tui gọi tắt KfA Nếu bạn học tới 40 tức trước nhiều người số bước Theo Tui tham khảo từ nhiều nguồn, tương lai bùng nổ dự án liên quan tới Machine Learning (Máy học) Có nhiều ngơn ngữ để lập trình cho Machine Learning chẳng hạn Python, R, Matlab… Nhiều Đại Học lớn giới dùng ngơn ngữ lập trình Python vào giảng dạy kỹ thuật lập trình thay cho C++ Java… Trước Tui có viết số Python https://duythanhcse.wordpress.com/python/ Busy phải tạm Pause, Nếu bạn trẻ, khỏe, nhanh nhẹn(xấu trai được) tiếp tục nghiên cứu Python, R để sau có nhiều hội tham gia dự án Machine Learning OK OK OK Giờ Tui kết thúc khóa học Kotlin với hướng dẫn cách Kết xuất Kotlin Jar file để người sử dụng bấm phát chạy mà không cần mở công cụ lập trình IntelliZ IDEA cung cấp sẵn cho Tool để làm điều này, vô đơn giản đến mức nghĩ Cách làm chi tiết sau: 1)Bước 1: Chọn Project đó, hướng dẫn Tui chọn Quản Lý Sản Phẩm link https://duythanhcse.wordpress.com/2017/06/04/bai-38-thiet-ke-giao-dientrong-kotlin-phan-4/ Tui hướng dẫn thêm cách tạo class có chứa hàm main để chạy: -Cách Cũ làm (tập tin AppTestSanPhamUI.kt): 263 | P a g e package communityuni.com.test import communityuni.com.ui.SanPhamUI /** * Created by cafe on 04/06/2017 */ fun main(args: Array) { var gui:SanPhamUI= SanPhamUI("Trần Duy Thanh- Chương trình quản lý Sản phẩm") gui.showWindow() } -Cách Ta tạo thành lớp theo cấu trúc dùng companion object notation @JvmStatic: package communityuni.com.test import communityuni.com.ui.SanPhamUI /** * Created by cafe on 06/06/2017 */ class SanPhamApp { companion object { @JvmStatic fun main(args: Array) { var gui: SanPhamUI = SanPhamUI("Trần Duy ThanhChương trình quản lý Sản phẩm") gui.showWindow() } } } Vì lại phải biết thêm cách để chạy hàm main? Bạn làm nhiều biết (thiên bất khả lộ) 2)Bước 2: Vào File/ chọn Project Structure: 264 | P a g e 3)Bước 3: Chọn artifacts/ bấm vào dấu + màu xanh / chọn JAR/ chọn From Modules with dependencies… Lúc hình yêu cầu chọn Main Class xuất hiện: 265 | P a g e Ta bấm vào nút chọn Main Class: bạn chọn (2 cách tạo hàm main mà Tui trình bày trên) nhấn nút OK Bấm OK tiếp: 266 | P a g e Mục tên jar tạo ra, mục nơi lưu trữ Jar Ta chọn OK để quay lại hình Tiến hành chạy lại phần mềm ta thấy tạo thư mục artifacts out folder: Vào bên artifacts có thư mục lưu file jar HocGUIPhan4_jar: Vào bên thư mục ta thấy file jar: 267 | P a g e Bạn double click để chạy lên: Bạn thấy tiêu hình khơng? Project Tui hướng dẫn trước có hình ảnh, hình ảnh lưu thư mục hinh, bạn cần chép thư mục vào chỗ file jar OK: Bây chạy lại file jar ta có kết quả: 268 | P a g e Hình ảnh hiển thị lên===> Ngon cơm mẹ nấu không bạn Giờ thử vào Menu Hệ thống/ chọn mở File xem hiển thị khơng nhé: 269 | P a g e Như tải file thành cơng Bạn hồn thành bước để tạo file Jar Intellij IDEA Các bạn cố gắng học tốt ngơn ngữ lập trình nhé, tự đào tạo để có nhiều kiến thức công nghệ Tạo nhiều hội tương lai để tìm tới Cơng ty có hội làm việc tốt hơn, lương bổng ổn định Để học lập trình tốt bạn phải chịu khó cày, học ngày học đêm bắt buộc phải Practice thật nhiều Chúc bạn thành công Trần Duy Thanh (http://ssoftinc.com/) 270 | P a g e Tài liệu tham khảo http://kotlinlang.org/ Kotlin in Action Fundamental Kotlin Programming Kotlin Kotlin for Android Developers Modern Web Development with Kotlin -HẾT - 271 | P a g e ... cụ lập trình Kotlin Ở Tui trình bày lý nên học Kotlin, Trong Tui hướng dẫn bạn cách cài đặt cơng cụ lập trình Kotlin Để lập trình Kotlin bạn sử dụng Website để thử nghiệm online https://try.kotlinlang.org/... 121 Bài 23 -Lập trình hướng đối tượng Kotlin – phần 129 Bài 24 -Lập trình hướng đối tượng Kotlin – phần 139 Bài 25 -Lập trình hướng đối tượng Kotlin – phần 146 Bài 26 -Lập trình hướng... IDEA để lập trình Kotlin (vì xuyên suốt hướng dẫn lập trình Kotlin Tui dùng công cụ để minh họa) Trước tiên bạn cần cài JDK vào máy trước (Kotlin chạy JVM, cài 1.8 trở lên), khóa học Kotlin thường

Ngày đăng: 09/03/2018, 16:07

Mục lục

  • Bài 1: Có nên học Kotlin?

  • Bài 3-Tạo ứng dụng Kotlin đầu tiên

  • Bài 4-Cách xuất dữ liệu ra màn hình Kotlin

  • Bài 5 – Các cách ghi chú quan trọng khi lập trình Kotlin

  • Bài 6-Kiểu dữ liệu và cách khai báo biến trong Kotlin

  • Bài 7 – Ép kiểu dữ liệu trong Kotlin

  • Bài 8 – Các toán tử quan trọng trong Kotlin

  • Bài 9- Nhập dữ liệu từ bàn phím với Kotlin

  • Bài 10- Cấu trúc điều khiển if else trong Kotlin

  • Bài 11-Biểu thức when trong Kotlin

  • Bài 12-Vòng lặp for trong Kotlin

  • Bài 13-Vòng lặp while trong Kotlin

  • Bài 14-Vòng lặp do while trong Kotlin

  • Bài 15-Xử lý biệt lệ trong Kotlin

  • Bài 16-Cách gỡ lỗi Kotlin bằng công cụ Debug

  • Bài 17-Các thư viện quan trọng thường dùng trong Kotlin

  • Bài 18- Xử lý chuỗi trong Kotlin

  • Bài 19- Xử lý mảng một chiều trong Kotlin

  • Bài 20- Xử lý mảng hai chiều trong Kotlin

  • Bài 21-Collections trong Kotlin

Tài liệu cùng người dùng

Tài liệu liên quan