Java学习打卡 2026.08.22 一、今日学习前言今天系统学习了 Java 面向对象核心基础涵盖对象实例化流程、构造方法完整规则、this关键字调用规则、toString重写、Java包机制、面向对象封装思想、四大访问权限修饰符、static静态成员与静态方法全套核心知识点。全部是后续Java开发的底层重点也是考试、写代码最容易踩坑的部分。二、对象实例化与初始化流程1. 对象创建的两步核心流程当我们 new 类名() 创建对象时Java 会自动完成两件事1. 为对象分配堆内存空间2. 自动调用对应的构造方法有参/无参没有构造方法对象就无法完成初始化也就无法正常创建。三、构造方法完整规则重中之重1. 系统默认无参构造• Java 默认给所有类自动赠送一个无参构造方法• 关键前提一旦我们手动写了有参构造方法系统会收回默认无参构造• 此时如果还需要2. IDEA快速生成构造方法不用手敲代码快捷操作1. 类内空白处右键2. 选择 Generate → Constructor3. 按住 Ctrl / Shift 多选需要的参数4. 一键生成有参/无参构造3. this调用本类构造方法可以在一个构造方法里调用本类的另一个构造方法简化代码。硬性两大语法规则1. this(参数); 必须写在构造方法的第一行2. 不能循环调用、不能自己调用自己否则直接死循环报错4. 构造方法重载一个类可以存在多个构造方法• 无参构造、单参构造、多参构造• 只要参数列表不同就是合法重载四、对象打印toString方法重写1. 默认直接打印对象只会输出一串地址哈希值没有意义2. IDEA 右键 Generate → toString()一键自动重写3. 重写后打印对象会展示对象内部所有属性信息4. 一个类中构造方法、普通方法、toString 可以共存互不冲突五、Java 包机制package1. 包的作用包就是文件夹用来分类管理不同功能的Java代码避免类名冲突。2. 导入包规则• 自定义类、第三方类需要 import 包名.类名 手动导入• java.lang 包下所有类编译器自动导入无需手动 import3. 自定义包自己创建 package 包名规范管理项目代码结构。六、面向对象三大特性之——封装1. 封装核心概念将数据成员变量和操作数据的方法结合在一起隐藏对象内部属性和底层实现细节只对外暴露公开的接口访问。2. 封装三大好处1. 降低代码耦合性2. 降低代码复杂度3. 极大提高代码安全性防止外部随意篡改数据3. 封装实现private get/set• 所有成员变量用 private 私有化• 外部无法直接访问、修改• 提供 get方法获取值、set方法设置值• 外部只能通过公开方法操作私有数据安全可控七、四大访问权限修饰符从严到宽1. private 私有的• 最小权限• 只能在当前类内部访问• 跨类、跨包完全无法使用2. default 默认权限啥都不写• 不写任何修饰符就是默认权限• 仅当前包内可以访问• 出了当前包完全无法访问3. protected 受保护权限包内可访问跨包子类也可访问后续深入学习4. public 公共权限• 最大权限• 任何位置、任何包、任何类都能正常访问记忆private default public八、static 静态关键字核心难点1. 普通成员变量无static• 属于对象• 存储在堆内存• 每个对象独立一份数据2. static 静态成员变量• 不属于对象属于类• 存储在方法区• 所有对象共享同一份数据3. 静态成员四大特性1. 是类属性不属于某个具体对象2. 既可以对象调用也可以类名.变量调用推荐类名调用3. 存放在方法区不在堆内存4. 生命周期跟随类的加载与卸载比对象寿命更长4. 静态方法特性1. 属于类不属于对象2. 推荐 类名.静态方法名() 调用3. 硬性规则静态方法里不能直接访问非静态变量、非静态方法4. 静态方法不能使用 this 关键字5. 静态变量独立初始化静态成员随类加载优先初始化优先于对象创建执行。九、今日知识点总结1. 对象实例化 分配内存 调用对应构造方法2. 有无参构造共存规则自定义有参后无参必须手写3. this调用构造必须第一行、禁止循环调用4. toString重写实现对象友好打印5. 包用于分类管理代码lang包自动导入6. 封装私有化数据对外提供get/set提高安全性7. 四大权限修饰符控制代码访问范围8. static静态内容属于类、共享、存在方法区、静态不能访问非静态十、今日学习感悟今天学的是Java面向对象最底层、最核心的地基知识点。构造方法、封装、权限修饰符、static是后续所有代码、项目开发的基础。搞懂实例化流程、静态与非静态区别。但是在课上对于这些内容不像之前那样子好理解所以掌握不够全不够深继续多练习题目多敲敲代码。加油加油加油