Java 静态方法和实例方法的区别

本文详细阐述了静态方法与实例方法的区别与联系,包括各自的调用方式、操作成员的限制及适用场景。通过具体示例帮助理解两种方法的特点及其在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

调用方式
静态方法: "类名.方法名","对象名.方法名";静态方法无需创建对象就可以使用;
实例方法: "对象名.方法名";实例方法必须创建对象才可以使用;

举例:
public class Case {
    public static void testStatic() {
        System.out.println("This is static method");
    }
    
    public void testInstance() {
        System.out.println("This is instance method");
    }
    
    public static void main(String[] args) {
        Case.testStatic(); // 调用静态方法
        Case instance = new Case();
        instance.testInstance(); // 调用实例化方法
        instance.testStatic(); // 利用对象来调用静态方法
    }
}

操作成员
静态方法: 只允许访问静态成员(静态变量和静态方法)而不允许访问实例成员(实例变量和实例方法);
                  不能以任何方式引用this或super;
                  如果不需要操作变量的时候,完全可以改成静态的;
实例方法:可以访问静态成员或实例成员;

举例:
public class Case {
    private static int static_value; // 定义一个静态成员变量
    private int instance_value; // 定义一个实例成员变量

    /*
     * 定义一个静态方法
     */
    static void staticMethod() {
        int i = 0; // 正确,可以有自己的局部变量;
        otherStaticMethod(); // 正确,可以调用静态方法
        instance_value = 20; // 错误,不能使用实例变量
        insMethod(); // 错误,不能调用实例方法
    }

    static void otherStaticMethod() {
    }

    /*
     * 定义一个实例方法
     */
    void instanceMethod() {
        int i = 0; // 正确,可以有自己的局部变量
        static_value = 15; // 正确,可以使用静态变量
        instance_value = 30; // 正确,可以使用实例变量
        staticMethod(); // 正确,可以调用静态方法
    }    

}

如果一个方法与他所在类的实例对象无关,那么它就应该是静态的,而不应该把它写成实例方法;
所以所有的实例方法都与实例有关,既然与实例有关,那么创建实例就是必然的步骤;
从面向对象的角度上来说,在抉择使用实例化方法或静态方法时,应该根据是否该方法和实例化对象具有逻辑上的相关性,如果是就应该使用实例化方法反之使用静态方法;

实例方法: 侧重于实例内部的状态;
静态方法: 侧重处理实例间的关系或集合;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值