静态方法 vs 实例方法在 Java 中实例方法非静态方法是指没有static修饰的普通方法它属于对象实例必须通过对象来调用。特性静态方法实例方法关键字有static修饰没有static修饰归属属于类本身属于类的每个对象实例调用方式类名.方法名()无需创建对象对象名.方法名()必须先创建对象能否访问成员只能直接访问静态成员静态变量、静态方法不能直接访问实例成员可以直接访问静态成员和实例成员通过this生命周期随类加载而存在独立于任何对象随对象创建而存在随对象销毁而消失示例javapublic class Person { String name; // 实例变量 // 实例方法 public void introduce() { System.out.println(我叫 name); } public static void main(String[] args) { Person p new Person(); p.name 张三; p.introduce(); // 通过对象调用实例方法 } }public class Test { public static void main(String[] args) { Person p new Person(张三, 25); System.out.println(原始 p.name p.age); // 张三 25 AnotherClass.modify(p); // 将同一个对象传递给 AnotherClass 的方法 System.out.println(Test 中再次查看 p.name p.age); // 被修改了 } } //静态方法 //具体来说是 AnotherClass 类中的一个静态方法。 //这个方法可以直接通过 AnotherClass.modify(p) 调用而不需要先创建 AnotherClass 的对象。 class AnotherClass { public static void modify(Person person) { person.name 李四; person.age -10; } }就近原则和this关键字
JAVA知识点
静态方法 vs 实例方法在 Java 中实例方法非静态方法是指没有static修饰的普通方法它属于对象实例必须通过对象来调用。特性静态方法实例方法关键字有static修饰没有static修饰归属属于类本身属于类的每个对象实例调用方式类名.方法名()无需创建对象对象名.方法名()必须先创建对象能否访问成员只能直接访问静态成员静态变量、静态方法不能直接访问实例成员可以直接访问静态成员和实例成员通过this生命周期随类加载而存在独立于任何对象随对象创建而存在随对象销毁而消失示例javapublic class Person { String name; // 实例变量 // 实例方法 public void introduce() { System.out.println(我叫 name); } public static void main(String[] args) { Person p new Person(); p.name 张三; p.introduce(); // 通过对象调用实例方法 } }public class Test { public static void main(String[] args) { Person p new Person(张三, 25); System.out.println(原始 p.name p.age); // 张三 25 AnotherClass.modify(p); // 将同一个对象传递给 AnotherClass 的方法 System.out.println(Test 中再次查看 p.name p.age); // 被修改了 } } //静态方法 //具体来说是 AnotherClass 类中的一个静态方法。 //这个方法可以直接通过 AnotherClass.modify(p) 调用而不需要先创建 AnotherClass 的对象。 class AnotherClass { public static void modify(Person person) { person.name 李四; person.age -10; } }就近原则和this关键字