快速理解static修饰符

static修饰符

static:静态修饰符。被static修饰的变量/方法也被称为静态变量/方法。当被static修饰后,将被理解为它们归属于类而不归属于方法。因此,当调用它们时,我们可直接使用“类名.变量/方法名”的方式,而无需先new一个对象。
如下所示,当People类中存在如下的静态域和静态方法时:

public class People {
	//静态域
    public static int legNum = 2;
    //非静态域
    public int eyeNum = 2;
    //静态方法
    public static void showLegNum(){
        System.out.println("My legNum is " + eyeNum );
    }
}

我们可直接使用“类名.变量/方法名”的方式调用:

public static void main(String[] args) {
 	//类名.变量名
    System.out.println(People.legNum);
    //类名.方法名
    People.showLegNum();
}

使用static修饰符的注意事项

1.static修饰后,可通过类名调用,也可通过创建对象调用

public static void main(String[] args) {
	//如下方式也可调用static修饰的静态变量/方法
   	People p = new People();
    p.showLegNum();
    System.out.println(p.legNum);
}

2.静态方法只能访问静态域

//创建如下方法是不允许的
public static void showEyeNum(){
	 System.out.println("My eyeNum is " + eyeNum );//Error:eyeNum非静态域,不可以被静态方法访问
}

3.方法内不能出现static关键字,即方法内不能创建static变量。
4.静态方法内不能访问非静态的变量/方法。(注意:静态方法内可以创建非静态的变量)
5.非静态方法可以访问静态的变量/方法

//以下方法是被允许的
public void test(){
    People.showLegNum();
    System.out.println(legNum);
}

static修饰符的使用情景

1.一个方法不需要访问对象状态,其所需参数都是通过显示参数提供
2.一个方法只需要访问类的静态域(如People.showLegNum())
---- Java核心技术 卷Ⅰ

Java中提供了一个非常便捷的数学Math类,它不仅提供了log、绝对值、最大值、最小值、cos、sin、tan等常见数学操作,还提供了数学运算常用的e和π。给编程者带来极大的便利。
仔细思考,当使用者调用Math类时,并不需要对它进行初始值的赋值(赋值无意义),并不需要访问Math的对象。因此,Math类被设计成了static类,只需要通过类名就能很方便的调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值