1. 私有属性private的特点私有属性是 Java 中封装的核心实现方式主要特点如下表格特点说明访问权限限制只能在当前类的内部直接访问外部类包括子类都无法直接读取或修改数据安全性避免外部代码随意修改对象的内部状态防止数据被意外篡改封装性体现隐藏对象的内部实现细节只对外暴露必要的访问接口如 getter/setter可控性强可以在 getter/setter 中添加校验逻辑比如血量不能为负数、攻击力不能超过上限示例相关代码 public class Hero { private String name; private int hp; // 血量 private int maxHp; // 最大血量回血用 private int minAttack; // 最小攻击力 private int maxAttack; // 最大攻击力 private Random random new Random(); // 构造方法 public Hero(String name, int hp, int minAttack, int maxAttack) { this.name name; this.hp hp; this.maxHp hp; this.minAttack minAttack; this.maxAttack maxAttack; } // 随机攻击力攻击方法 public void attack(Hero enemy) { // 随机生成伤害 int damage random.nextInt(maxAttack - minAttack 1) minAttack; System.out.println(this.name 正在攻击 enemy.name 造成伤害 damage); enemy.hp - damage; if (enemy.hp 0) { enemy.hp 0; } System.out.println(enemy.name 剩余血量 enemy.hp); } // 回血方法30%概率触发 public void heal() { if (random.nextDouble() 0.3) { // 30%概率回血 int healAmount random.nextInt(15) 5; // 回5-20血 hp healAmount; if (hp maxHp) { hp maxHp; } System.out.println(this.name 触发回血效果恢复了 healAmount 点血量当前血量 hp); } } // 判断是否存活 public boolean isAlive() { return this.hp 0; } // Getter 方法 public String getName() { return name; } } // 主类运行拓展版游戏 class BattleManage { public static void main(String[] args) { // 创建英雄对象带攻击范围 Hero houyi new Hero(后羿, 100, 15, 25); Hero anqila new Hero(安琪拉, 100, 20, 30); // 回合制战斗 int round 1; while (houyi.isAlive() anqila.isAlive()) { System.out.println(\n--- 第 round 回合 ---); // 后羿攻击 houyi.attack(anqila); if (!anqila.isAlive()) { break; } anqila.heal(); // 安琪拉尝试回血 // 安琪拉攻击 anqila.attack(houyi); if (!houyi.isAlive()) { break; } houyi.heal(); // 后羿尝试回血 round; } // 判断输赢 if (houyi.isAlive()) { System.out.println(\n 战斗结束 houyi.getName() 获胜); } else { System.out.println(\n 战斗结束 anqila.getName() 获胜); } } }java运行private int hp; // 私有血量属性 // 外部无法直接修改只能通过setHp方法控制 public void setHp(int hp) { if (hp 0) { // 校验逻辑血量不能为负数 this.hp hp; } else { System.out.println(血量不能为负数); } }2. 构造方法的作用构造方法是一种特殊的方法它的作用主要有以下几点表格作用说明对象初始化在创建对象时给对象的属性赋初始值确保对象创建后处于一个合理的状态简化对象创建可以通过带参构造方法一次性给多个属性赋值避免创建对象后多次调用 setter 方法强制初始化规则可以通过构造方法强制要求创建对象时必须传入某些必要参数如英雄的名字、血量支持重载可以定义多个不同参数的构造方法提供多种对象创建方式示例java运行// 无参构造方法默认构造方法 public Hero() { System.out.println(创建了一个默认英雄); } // 带参构造方法 public Hero(String name, int hp, int minAttack, int maxAttack) { this.name name; this.hp hp; this.maxHp hp; this.minAttack minAttack; this.maxAttack maxAttack; }3. 两者的配合关系私有属性通过构造方法在对象创建时完成初始化确保对象从诞生起就处于合法状态构造方法可以对传入的参数进行校验间接保护私有属性的数据安全两者结合实现了 Java 面向对象中封装的核心思想对外隐藏细节对内保证安全。