JAVA初级(七)状态修饰符static,静态方法和静态变量介绍和使用

1,static关键字是什么?

直接百度翻译一下static 就是静止的意思
它是一种状态修饰符,被static修饰的变量或方法能够不用被实例化就能直接获取.
就好比桌子上有一个杯子,它是静止放在桌上的。那么你需不需要先获取这个桌子才能拿到被杯子?不需要,你只需要看到(加载)了这个桌子,就能直接上去拿到杯子。
这么说抽象了点
用代码来体现下被static修饰后的区别

2,static变量,也称静态变量,类变量

静态变量,是成员变量的另一种,之前说过实例变量.这边说静态变量
静态变量如何定义?

public class Phone {
    public static double price;//这样就定义了一个静态变量
    public void call(){}
}

就是和普通的变量多了一个static,它写在类型前面,权限修饰符public的后面.
那么怎么用?

public static void main(String[] args) {
        double price = Phone.price;
        System.out.println(price);
    }
结果输出:0.0

直接类名.名称就能用了。
到这想必就能发现它和成员变量的区别了吧?
如果去掉static,此时你想要得到price你必须先new一个对象出来,然后对象名.price。但是静态变量可以不用创建对象就能够直接调用。

用static变量有什么好处?

看看不用static的变量和用了static的变量的代码.从代码开始说区别

//用了static的
public static void main(String[] args) {
        double price = Phone.price;
        System.out.println(price);
    }
//没用static的
public static void main(String[] args) {
        Phone phone = new Phone();
         double price = Phone.price;
        System.out.println(price);
    }

1,实现相同的功能,它的代码量更少.并且阅读性也更好.写起来更方便
这么一看成实例变量是不是就没用了?那么看看下面?

什么时候把变量用static修饰好

静态-为什么要称为静态,就好比我上面说到的杯子,我们只需要只要它的一个行为.它能给我们装东西这点是永远不会变的.无论到哪,为谁使用他都不会变.是所有杯子共享的行为.类似这样的我们就适合用static来修饰.
所以当你只需要用,而不需要改的成员变量,用static修饰.
比如说这么一段代码

public class user{
	public static String userName = "lisi";
}

比如这个账号名称你自己用是’lisi’别人用会不会就变成’zhangsan’了?是不是不会.
所以类似这样的变量,所有类公用且不会修改的变量.适合用static来修饰
~所以在实际开发上基本只要这个成员变量是常量–就用static修饰.反正都不会改,就不用麻烦别人还new一个了是吧。

总结:
1,静态变量是什么?
它是成员变量的一种
2,静态变量怎么用?
类名.属性
3,什么时候用?
(1)当你只需要用,而不需要改的成员变量,用static修饰
(2)通俗的认为只要这个成员变量是常量.那你就用static修饰.原因是它不会改,就不需要麻烦别人还new一个出来.

3,static方法

static方法是什么?也称静态方法

static方法,也就是静态方法.就是被static修饰的方法.它和静态变量差不多.不用new一个对象直接类名.方法即可调用

对比一下代码区别
有这么一个类

public class Phone {
    public static void call(){
        System.out.println("打电话给10086");
    }
}

调用方法

//static调用
 public static void main(String[] args) {
        Phone.call();
    }
//非static调用
public static void main(String[] args) {
        Phone phone = new Phone();
        phone.call();
    }

区别一眼就能看出来,非static调用你要先new才能用.用static修饰的直接可以类名.方法就能调用了.

所以在使用上,和静态变量没什么区别.就是直接类名.方法就能调用

static方法什么时候用?

在日常开发时,我们一般什么时候用static来修饰方法.
这个类充当一种工具,它永远都不让人new.那么里面所有供别人使用的方法全都用static修饰.这样的类也俗称工具类
比如java自带的Arrays.或者你可能会自己写一个专门用来转换日期的类.那你肯定不会说还要new一下才能用.直接类名.就好了

举个不适合用static的例子
有这么一个类

public class Phone {
    public static void call(){
        System.out.println("打电话给10086");
    }
      public  void size(){
        System.out.println("尺寸");
    }
}

然后如果你要使用这两个方法

public static void main(String[] args) {
   	Phone.call();
        Phone phone = new Phone();
        phone.size();
    }

里面有的方法必须new才能使用.那call这个方法用static就不太合适了.反正我都要new,还用static修饰干嘛?
不过具体情况具体分析.开发多了自然就会有感觉

static方法注意事项

静态方法是有讲究的.静态方法是直接类名.方法就能调用。也就是说还没产生对象就能调用的东西。是属于类的
所以静态方法必须调用静态的东西或者属于它的东西(成员变量)才行.因为系统无法保证静态方法调用的东西是否是属于对象的。
比如还是这个Phone类

public class Phone {
    public String mobile = "10086";
    public static void call(){
    //下面这句直接会报错.因为mobile属于对象它是要先new才能用的
        System.out.println("打电话给"+mobile);
    }
}

总结:
1,static方法是什么?
用static修饰的方法,叫做静态方法.被它修饰的方法属于类,不用new出一个对象就能直接调用.调用->类名.方法
2,什么时候用static修饰?
一般它所在的类充当工具类,它永远不会被人new时.那么它底下的方法就适合用static修饰.
–>不过具体情况具体分析.它和普通方法在使用上的区别就是少了个new的过程
3,静态方法需要注意什么?
静态方法的方法体只能使用静态的东西.当然.成员变量也可以…因为成员变量的作用域小,就一个{}

剩下的static代码块也就是静态代码块.之后介绍完继承之后在说.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值