实例成员、静态成员 📅 2026/6/26 14:12:29 Java中 按有无 static 划分只有两类实例成员无 static实例变量、实例方法静态成员有 static静态变量、静态方法1. 实例成员无 static只要new创建出实例对象每个对象会生成独一份实例变量不同对象互不干扰只有通过对象才能调用实例方法类名无法直接调用实例方法内部自带this指代当前调用该方法的对象实例方法内可以直接访问实例变量、实例方法也能直接访问静态变量/静态方法。2. 静态成员static归属类不归对象全局仅一份所有对象共享推荐调用方式类名.静态方法/静态变量语法上允许对象调用但编码规范不推荐静态方法内没有 this不能直接调用实例方法、直接使用实例变量静态方法只能直接访问静态变量、静态方法想使用实例成员必须手动 new 对象。实例方法里完全可以用 this 调用静态方法只是语法不推荐底层本质还是类名.静态方法真正限制是静态方法里不能使用 this。极简总结new出来的对象独占全部实例变量、拥有全部实例方法的调用权静态资源属于类和对象本身无关只是 Java 语法允许对象点调用有无this是实例方法与静态方法最核心的分界线。只要new出来对象这个对象就具备本类全部非静态成员变量方法静态成员跟对象无关只属于类。配套小示例publicclassDemo{// 实例变量privateStringname;// 静态变量publicstaticStringaddr北京;// 实例方法publicDemosetName(Stringname){this.namename;// 实例方法中可以用this调用静态方法合法但不规范this.showStatic();returnthis;}// 静态方法publicstaticvoidshowStatic(){// 报错静态方法没有this拿不到实例变量// System.out.println(this.name);System.out.println(addr);}publicstaticvoidmain(String[]args){DemodnewDemo();d.setName(张三);// 标准写法Demo.showStatic();// 语法允许不推荐d.showStatic();}}