📦 Packages & Imports
🎯 Mục tiêu: Hiểu cách tổ chức code với Package và sử dụng Import để tái sử dụng code.
📦 Package Declaration
Phần tiêu đề “📦 Package Declaration”Mỗi file Kotlin thường bắt đầu bằng khai báo package. Nó giúp gom nhóm các class, function liên quan lại với nhau.
package org.example
fun printMessage() { /*...*/ }class Message { /*...*/ }- Tên đầy đủ (Fully Qualified Name - FQN) của hàm trên là
org.example.printMessage. - Nếu không khai báo package, file sẽ thuộc về default package (không có tên).
📥 Imports
Phần tiêu đề “📥 Imports”Để sử dụng code từ package khác, bạn cần import chúng.
Import cơ bản
Phần tiêu đề “Import cơ bản”import org.example.Message // Import một class cụ thểimport org.example.* // Import tất cả (scope)Import Alias (Đổi tên khi import)
Phần tiêu đề “Import Alias (Đổi tên khi import)”Rất hữu ích khi có xung đột tên (VD: View của Android và View của custom library).
import org.example.Messageimport org.test.Message as TestMessage // Đổi tên để tránh trùng
fun main() { val msg1 = Message() val msg2 = TestMessage()}Import đặc biệt
Phần tiêu đề “Import đặc biệt”Kotlin cho phép import nhiều hơn là chỉ Class:
- Top-level functions & properties
- Object declarations
- Enum constants
import kotlin.math.PIimport kotlin.math.cos
fun main() { println(cos(PI))}🛡️ Default Imports
Phần tiêu đề “🛡️ Default Imports”Kotlin tự động import một số package cơ bản vào mọi file, bạn không cần import thủ công:
kotlin.*(Any, Int, String…)kotlin.annotation.*kotlin.collections.*(List, Map…)kotlin.io.*(print, println…)kotlin.ranges.*kotlin.text.*java.lang.*(trên JVM)
🛠️ Thực hành
Phần tiêu đề “🛠️ Thực hành”Bài tập 1: Tổ chức package
Tạo cấu trúc package:
com.bumbii.utilschứa hàmlog(msg: String)com.bumbii.appchứa hàmmaindùng hàmlog
package com.bumbii.utils
fun log(msg: String) = println("[Log]: $msg")
// File: main.ktpackage com.bumbii.app
import com.bumbii.utils.log
fun main() { log("Hello World")}✅ Checklist
Phần tiêu đề “✅ Checklist”- Khai báo package ở đầu file
- Import class từ package khác
- Sử dụng
asđể giải quyết xung đột tên - Biết các default imports của Kotlin