匿名内部类与Lambda表达式
匿名内部类与Lambda表达式知识点总结匿名内部类基本概念 匿名内部类是没有名字的内部类 用于快速创建某个类或接口的子类/实现类的实例 适合只使用一次的类实现 语法结构java 1234new 父类构造器(参数列表) | 实现接口() { // 匿名内部类的类体部分 方法重写/实现}; 特点 必须继承一个父类或实现一个接口 只能创建一个实例 没有构造方法(但可以有实例初始化块) 可以访问外部类的成员,包括私有成员 如果访问局部变量,该变量必须是final或事实上final的 使用场景 事件监听器 线程实现 需要快速实现某个接口或抽象类 Lambda表达式基本概念 Java 8引入的函数式编程特性 用于简化函数式接口的实现 本质是一个匿名函数 语法结构java 123(parameters) -> expression或(parameters) -> { statements;...
集合框架概述
一、抽象类(Abstract Class)1. 基本特性 使用abstract关键字声明 可以包含抽象方法和具体方法 不能直接实例化(不能new) 可以包含成员变量、构造方法、普通方法 2. 语法结构java 1234567891011121314151617public abstract class Animal { // 成员变量 protected String name; // 构造方法 public Animal(String name) { this.name = name; } // 抽象方法(无实现) public abstract void makeSound(); // 具体方法 public void eat() { System.out.println(name + "正在吃东西"); }} 3....
继承与多态核心知识点总结
继承与多态核心知识点总结1. 继承 (Inheritance)概念: 允许一个类(子类)继承另一个类(父类)的特征和行为 子类可以获得父类的属性和方法,并可以添加新的属性和方法 语法: java 123class 子类 extends 父类 { // 子类特有的属性和方法} 特点: Java是单继承,一个类只能直接继承一个父类 子类继承父类非private的成员(属性和方法) 子类可以重写(override)父类的方法 构造方法不能被继承 关键字: extends:表示继承关系 super:引用父类的成员 super():调用父类构造方法 super.方法名():调用父类方法 示例: java 123456789101112131415161718192021222324252627282930class Animal { String name; public Animal(String name) { this.name = name; } ...
Java面向对象编程基础语法
Java面向对象编程基础语法1. 对象 (Object)概念: 对象是类的实例,是面向对象编程的基本单位 对象具有状态(属性)和行为(方法) 对象在内存中占据独立的空间 特点: 每个对象都有唯一的标识(内存地址) 对象之间通过消息传递进行交互 对象是类的具体实现 示例: java 1Person person1 = new Person(); // person1是一个Person类的对象 2. 封装 (Encapsulation)概念: 将数据(属性)和行为(方法)包装在一个单元(类)中 隐藏对象的内部实现细节,仅暴露必要的接口 实现方式: 使用访问修饰符控制可见性: private:仅本类可见 protected:本包和子类可见 public:所有类可见 (默认):本包可见 优点: 提高代码安全性 降低耦合度 便于修改和维护 示例: java 1234567891011121314public class BankAccount { private double balance; // 私有属性,外部不可直接访问 //...
BroadcastReceiver
🚨 什么是 BroadcastReceiver?BroadcastReceiver 是 Android 提供的一个机制,用于在应用之间或系统与应用之间传递消息。比如: 当手机接收到短信时; 电池电量变化; 网络连接变化; 你自己在 App 内发出一个自定义事件。 这些“消息”叫做广播(Broadcast),而负责“接收广播”的组件就是 BroadcastReceiver。 🧠 工作原理: 某个组件(系统或 app)发送一个广播(用 sendBroadcast()); Android 系统会根据你注册的广播类型,找到匹配的 BroadcastReceiver; BroadcastReceiver 会执行你定义的逻辑(通常在 onReceive() 方法里写处理逻辑); 📦 BroadcastReceiver 分类1. 静态注册 在 AndroidManifest.xml 中注册 会在 App 没启动的情况下也能接收到广播(某些系统广播) 12345<receiver android:name=".MyReceiver"> ...
Kotlin中的内联函数
🌟 什么是内联函数?简单说: 内联函数就是在编译时将函数的调用代码“展开”为函数体本身,从而避免函数调用的开销。 通常高阶函数(比如 map, filter, let, run 等)都会带来额外的开销,因为它们需要创建函数对象、维护调用栈。而使用 inline 关键字修饰的函数在编译时会将其代码“拷贝”到调用处,避免这些额外开销。 🧪 基本语法12345inline fun doSomething(action: () -> Unit) { println("Start") action() println("End")} 调用方式: 123doSomething { println("Hello inline")} ⚡ 编译后,大致等价于: 123println("Start")println("Hello...
Kotlin的高阶函数详解
Kotlin的高阶函数详解 Kotlin 的高阶函数(Higher-Order Functions,简称 HOF)是函数式编程的一个重要特性,能够显著增强语言的表达力。高阶函数是指那些可以接受其他函数作为参数,或者返回函数的函数。 1. 高阶函数的定义基本定义高阶函数指的是: 接受函数作为参数 或者返回函数 示例:接受函数作为参数12345678910111213fun <T> List<T>.customFilter(predicate: (T) -> Boolean): List<T> { val result = mutableListOf<T>() for (item in this) { if (predicate(item)) { result.add(item) } } return result}val numbers = listOf(1, 2, 3, 4, 5,...
Kotlin的扩展函数和运算符重载
Kotlin 的扩展函数(Extension Functions)和运算符重载(Operator Overloading)是两个强大又常用的特性,用于让代码更简洁、表达力更强。 ✅ 扩展函数(Extension Functions)定义:在不修改原类源码的情况下,为类添加新的函数。 🌟 语法123fun ClassName.functionName(params): ReturnType { // 函数体} 🧪 示例12345678fun String.lastChar(): Char { return this[this.length - 1]}fun main() { val s = "Hello" println(s.lastChar()) // 输出:'o'} 📌 注意 this 代表接收者对象(上例中是 String) 扩展函数不会真正修改原类,只是通过静态方式实现“扩展” 若类有成员函数与扩展函数同名,成员函数优先 ➕...
延迟初始化与封装类
🔹 1. 延迟初始化 (lateinit)✅ 用途:当你不想在定义变量时立刻初始化它,但又确定在使用前一定会初始化(比如依赖注入、测试、Android View 绑定等)。 ✅ 语法:12lateinit var name: String ✅ 注意事项: 只能用于 **var**,不能用于 val。 只能用于 非空类型的引用类型(不能是原始类型如 Int、Double)。 使用前如果没初始化,会抛出 **UninitializedPropertyAccessException**。 ✅ 示例:123456789101112131415class User { lateinit var nickname: String fun initNickname() { nickname = "KotlinFan" } fun printNickname() { if (::nickname.isInitialized) { ...
Intent
显式Intent与隐式Intent ChatGPT 说:在 Android 中,Intent(意图) 是组件(Activity、Service、BroadcastReceiver)之间进行通信的机制。Intent 主要分为两种类型: 1. 显式 Intent(Explicit Intent)显式 Intent 直接指定目标组件(Activity、Service)的 类名,用于在 应用内部 启动组件。 示例12Intent intent = new Intent(this, SecondActivity.class);startActivity(intent); 特点: 适用于应用内部 组件间的交互,比如从 MainActivity 跳转到 SecondActivity。 指定目标类名,不会让系统去匹配 intent-filter。 性能更高,因为不需要系统查找匹配的组件。 2. 隐式 Intent(Implicit Intent)隐式 Intent 不指定 目标组件的类名,而是使用 动作(Action)、类别(Category)、数据(Data)...



