【11每天十分钟,javase基础全搞定-static静态修饰方法】

上节static静态修饰变量总结

  • static修饰三个内容:成员变量,方法,代码块
  • 静态变量不属于对象而是属于类的,被类所有的对象所共享。
  • 静态变量使用的时候,推荐使用【类名.变量名】进行调用。

假如我有一个学生类:

public class Student {
    String name;//成员变量属于对象
    static String sex;//静态成员变量属于类
}

现在我在测试类中调用这个类的静态变量。推荐使用【类名.变量名】进行调用:

public class Text01 {
    public static void main(String[] args) {
        Student.sex="女";
    }
}
  • static变量和非static变量的区别:
    1.份数不同,静态变量只有1分,非静态变量一个对象一份
    2.存储位置不同,静态变量在方法区,非静态变量在堆中。
    3.内存分配空间的时间不同,静态变量是第一次加载的时候,非静态变量是创建对象的时候。
    4.生命周期不同,静态变量和类的生命周期相同,非静态变量的生命周期和所属对象相同。
    5.调用方法不同,静态变量:通过类名调用,也能通过对象名调用但是不推荐。非静态变量:通过对象名调用。

static静态修饰方法

  • 被static修饰的方法叫静态方法
  • 静态方法调用:类名.静态方法名
  • 静态方法有三个不可以:
    1.静态方法中不能直接使用非静态成员变量。
    2.静态方法中不能直接使用普通方法。
    3.静态方法中不能用this
    原因:加载类的时候先加载的是静态变量和方法,此时还没有创建对象,所有非静态的变量和方法都没有被分配空间,无法调用。
  • 静态方法两可以:
    1.静态方法中可以访问静态变量
    2.静态方法中可以访问静态方法。
  • 非静态方法也就是普通方法。
    1.普通方法可以使用静态变量和静态方法还有this关键字。
    原因:加载类的时候先加载的是静态的变量和方法,所以创建对象后,普通方法和变量从分配空间,此时静态的已经存在了,可以直接用。

下面是我的一个学生类:

public class Student {
    
 /*静态方法,属于类*/
   public static void bbb(){
       System.out.println(sex);
//       静态方法中不能直接使用非静态成员变量以及普通方法。
       System.out.println(name);(报错)
//       静态方法中不能用this
       System.out.println(this.name);(报错)
   }

    //    普通方法,属于对象
    public void aaa(){
        //普通方法里可以用静态变量和方法以及this关键字
        System.out.println(sex);
        bbb();
    }
}

我在测试中调用静态方法:类名.静态方法名

public class Text01 {
    public static void main(String[] args) {
//        普通方法的调用,创建对象进行调用
        Student stu=new Student();
        stu.aaa();

//        静态方法调用:静态方法跟静态变量一样,也是属于类的而不是属于对象
        Student.bbb();
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值