静态的static

static是一泓修饰符,表示静态的意思,可以修饰属性、方法、代码块、内部类

用static修饰的属性或方法称为静态成员或方法,属于类(不属于对象),所有可以直接使用

静态方法用于高频访问的方法(比如工具类的方法),调用方便

静态的属性和方法


​
public class Parent {
    public static float pi = 3.14F;//加static
​
    public static void area(float r){
        System.out.println(pi * r * r);
    }
}

静态属性和方法直接用类名访问


public class ParentTest {
    public static void main(String[] args) {
        System.out.println(Parent.pi);
        Parent.area(5);
    }
}

  • 静态属性用于所有对象共享的属性(只有一份,保存在类上)


public class Parent { //直接给pi赋值
    public static float pi = 3.14F;//加static
    public static int count;//静态成员变量是共享的
    private int num;
​
    public static void area(float r){
        System.out.println(pi * r * r);
    }
​
​
    public int getNum() {
        return num;
    }
​
    public int getCount(){
        return count;
    }
​
    public void setNum(int num) {
        count = num;
        this.num = num;
    }
}

测试结果:

非静态成员是对象独有的,互不干扰的

静态的成员变量是所有对象共有的,任何一个对象改变了它,其他对象都能看到改变后的结果,它不属于对象,属于类

public class ParentTest {
    public static void main(String[] args) {
        System.out.println(Parent.pi);
        Parent.area(5);
​
        Parent parent1 = new Parent();
        Parent parent2 = new Parent();
​
        parent1.setNum(5);//p  1对象设置num为5,count为5
        parent2.setNum(8);//
​
​
        System.out.println(parent1.getNum());//5
        System.out.println(parent1.getCount());//8
        System.out.println(parent2.getNum());//8
        System.out.println(parent2.getCount());    //8
​
    }
}
  • 静态成员变量的访问条件

  1. 静态的成员变量在非静态的方法里可以访问

  2. 静态的方法中能访问静态的成员变量

  3. 静态方不能访问非静态属性 静态 ---类;非静态---对象

public int getCount(){
        return count;
    }
​
public static void getData(){
//        System.out.println(num);//静态方法方法不能访问非静态的属性
​
        System.out.println(count);//静态的方法才能访问静态成员变量
    }

  • static修饰代码块

语法:static{ #要执行的代码 }

静态代码块类加载时候执行(在构造方法之前),与位置无关

静态代码块一般用于初始化。条件的准备或运行其他方法之前必须要先执行的代码

    static {//在类加载时执行一次
        // 在类中的位置无关,一般放在属性和方法之间
        //在构造方法之前执行
        System.out.println("静态代码块");
    }//类加载就执行,static执行在构造方法之前

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值