kotlin 基础
// Kotlin 1.3.11 编译器版本
// 无包声明
// 模仿 C 语言风格,在当前包下定义函数 A2_DDD1
// 函数 A2_DDD1 是一个静态方法,无参数,返回类型为 Unit(类似 C 语言的 void)
// 功能是打印一条来自当前包的消息
fun A2_DDD1(): Unit {
println("cat1 This is a message from current package."); // 打印消息,标记为 cat1
return; // 显式返回,模仿 C 语言习惯
}
// 假设其他包的类 A1,在 com.example.otherpackage 包下(这里只是逻辑上的表示,实际无包声明)
class A1 {
// 实例方法 A1_CCC1,无参数,返回类型为 Unit
// 功能是打印一条来自其他包的消息
fun A1_CCC1(): Unit {
println("cat2 This is a message from other package."); // 打印消息,标记为 cat2
return; // 显式返回,模仿 C 语言习惯
}
}
// 假设另一个包的类 A3,在 com.example.anotherpackage 包下(这里只是逻辑上的表示,实际无包声明)
class A3 {
// 实例方法 A3_CCC1,无参数,返回类型为 Unit
// 功能是打印一条在另一个包中执行操作的消息
fun A3_CCC1(): Unit {
println("cat3 Doing something in another package."); // 打印消息,标记为 cat3
return; // 显式返回,模仿 C 语言习惯
}
}
// 模仿 C 语言风格,定义来自另一个包的静态方法 A4_DDD1
// 函数 A4_DDD1 是一个静态方法,无参数,返回类型为 Unit
// 功能是打印一条来自另一个包的消息
fun A4_DDD1(): Unit {
println("cat4 This is a message from another package."); // 打印消息,标记为 cat4
return; // 显式返回,模仿 C 语言习惯
}
// 假设存在名字冲突的包的类 A1(这里重命名为 ConflictA1 避免冲突),在 com.example.conflictpackage 包下(这里只是逻辑上的表示,实际无包声明)
class ConflictA1 {
// 实例方法 ConflictA1_CCC1,无参数,返回类型为 Unit
// 功能是打印一条来自冲突包的消息
fun ConflictA1_CCC1(): Unit {
println("cat5 This is a message from conflict package."); // 打印消息,标记为 cat5
return; // 显式返回,模仿 C 语言习惯
}
}
fun main() {
// 集中声明变量,模仿 C 语言在函数开头声明变量的习惯
var GGG1: A1? = null; // 声明可空对象变量 GGG1,类型为 A1,初始化为 null
var GGG2: A3? = null; // 声明可空对象变量 GGG2,类型为 A3,初始化为 null
var GGG3: ConflictA1? = null; // 声明可空对象变量 GGG3,类型为 ConflictA1,初始化为 null
var EEE1: List<Int>? = null; // 声明可空列表变量 EEE1,类型为 List<Int>,初始化为 null
var SSS1: String? = null; // 声明可空字符串变量 SSS1,初始化为 null
// 调用当前包下的函数 A2_DDD1
A2_DDD1();
// 使用导入的单个名称的类 A1(这里实际无导入操作,只是逻辑表示)
GGG1 = A1(); // 创建 A1 类的实例并赋值给 GGG1
GGG1?.A1_CCC1(); // 调用 GGG1 的 A1_CCC1 实例方法
// 使用导入的包下的所有内容中的类和函数(这里实际无导入操作,只是逻辑表示)
GGG2 = A3(); // 创建 A3 类的实例并赋值给 GGG2
GGG2?.A3_CCC1(); // 调用 GGG2 的 A3_CCC1 实例方法
A4_DDD1(); // 调用 A4_DDD1 静态方法
// 使用重命名后的冲突类 ConflictA1
GGG3 = ConflictA1(); // 创建 ConflictA1 类的实例并赋值给 GGG3
GGG3?.ConflictA1_CCC1(); // 调用 GGG3 的 ConflictA1_CCC1 实例方法
// 测试默认导入的包中的功能
EEE1 = listOf(1, 2, 3); // 使用 kotlin.collections.listOf 创建包含 1, 2, 3 的整数列表并赋值给 EEE1
println("cat6 默认导入的集合: $EEE1"); // 打印列表内容,标记为 cat6
// 测试 JVM 平台默认导入的包中的功能
SSS1 = String(); // 使用 java.lang.String 创建一个空字符串并赋值给 SSS1
println("cat7 JVM 平台默认导入的字符串: $SSS1"); // 打印字符串内容,标记为 cat7
}
更多推荐


所有评论(0)