Java基础:静态关键字static修饰成员方法 - 【静态方法】

继续上文的内容

静态关键字static修饰成员方法

Java中,方法可以用static关键字修饰

【非static方法】归属于对象,要先创建对象,而后才可以使用非static方法;
【static方法】归属于类,不需要创建对象就可以被调用。

无论成员变量还是成员方法,经static修饰后,推荐以【类.】的方法进行调用。即便写【对象.】的格式调用,在编译时仍然会被自动改成【类.】的格式。

即推荐以下格式调用:
用【类名称.静态变量】的格式调用静态变量
用【类名称.静态方法】的格式调用静态方法()

例子

类:

public class ClassDemo {
    // 没有static的成员方法,必须创建对象,然后才能用
    public void method() {
        System.out.println("这是个普通的成员方法");
    }
    // 有static的成员方法,可以直接用
    public static void methodStatic() {
        System.out.println("这是个静态方法");
    }
}

Main:

public class StaticMethod {
    public static void main(String[] args) {
        // 第一种情况,非静态方法,要创建对象再用方法
        ClassDemo obj = new ClassDemo(); // 先创建
        obj.method(); // 然后使用类中方法

        // 第二种情况,静态方法,可以直接用
        ClassDemo.methodStatic(); // 不需创建,用【类.方法】直接使用

        // 第三种情况,类自己的方法,直接写方法就可以用,编译后会自动加上
        ownMethod("这是写在本类中的方法"); // 用自己家的方法,类也不用写
        StaticMethod.ownMethod("还是自己的方法"); // 当然写上也行,写了也白写
    }

    public static void ownMethod(String str) {
        System.out.println(str);
    }
}


/*
这是个普通的成员方法
这是个静态方法
这是写在本类中的方法
还是自己的方法
*/

补充:静态不能访问非静态

  1. 静态不能访问非静态(说明:静态内容作为“死"内容,先明确地出现在内存中。它不知道后来发生的事,所以不能和未知的东西挂钩(即非静态的内容));
  2. 静态方法不能用this,this指代当前对象,而静态的方法和对象无关。

如下例:

public class ClassDemo {

    int aaa;  // 非静态的
    static int aaaStatic; // 静态的

    // 没有static的成员方法,必须创建对象,然后才能用
    public void method() {
        System.out.println(aaa); // 非静态用非静态,正确
        System.out.println(aaaStatic); // 非静态用静态,正确
        System.out.println("这是个普通的成员方法");
    }
    // 有static的成员方法,可以直接用
    public static void methodStatic() {
        //System.out.println(aaa); // 报错!!!静态用非静态
        System.out.println(aaaStatic);  // 静态用静态,正确
        System.out.println("这是个静态方法");

        //System.out.println(this); // 报错!!!
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值