Java 直接访问私有属性的抢劫例子 代码讲解 package com.abc.java; public class Test02 { public static void main(String[] args) { Person p1 = new Person("Lily", 999); Person p2 = new Person("Badman", 0); System.out.println(p1.getName() + " has money " + p1.getMoney()); p2.rob(p1); // 不同对象也可以访问对方的私有属性,只要它俩属于同一个类 System.out.println(p1.getName() + " is robbed by " + p2.getName()); System.out.println(p1.getName() + " has money " + p1.getMoney()); } } class Person { // 访问级别都是在定义层级而不是实例层级 // 同一个类就可以访问私有属性而不用是同一个对象 // 这跟属于同一个包的类型就可以访问protected 属性一样 private String name = null; private int money = 0; public Person(String name, int dollar) { this.name = name; this.money = dollar; } public String getName() { return this.name; } public int getMoney() { return this.money; } public void rob(Person p) { this.money += p.money; p.money = 0; } } 运行测试 # 将以上代码保存成Test02.java 然后编译运行 javac -d . Test02.java && java com.abc.java.Test02 # 运行结果 #Lily has money 999 #Lily is robbed by Badman #Lily has money 0