static 关键字

static关键字用于修饰类的属性、方法和代码块,使得它们不依赖于对象即可被访问。静态变量在类加载时被初始化,所有对象共享同一份内存空间。静态方法在类加载时即存在,不依赖于对象调用,且在静态方法中不能使用this关键字。类方法可以调用普通方法,但普通方法不能直接调用类方法。

当我们编写一个类时,当我们使用new关键字才会产生对象,系统才会分配内存的空间给对象,其方法才能被外部调用。而sattic修饰的结构,是随着类的加载而进行加载的,也就是说静态结构和对象的创建是 没有关系的。并且类在整个生命周期中只加载一次,所以static修饰的结构也只会加载一次 。话句话说,static修饰的结构是属于类的,不是属于对象的。

static关键字可以修饰那些结构呢?

  1. 属性
  2. 方法
  3. 代码块
  4. 内部类

其中修饰属性和修饰方法是最常用的。

static修饰属性【静态变量】:

上面也提到了,静态变量只会加载一次,系统只会为它分配一次空间,所以这个类的所有对象共享这一个空间。也就是说A对象修改了静态变量的值,B对象静态变量的值 也会随之改变。

类、类变量、实例对象、对象,之间的调用规则:

类变量实例变量
可以调用不可以调用
对象可以调用 可以调用

  看两两之间是否能被调用,只需要看它们的加载时间,后加载的能够调用先加载的,反过来就不行了。

static  关键字修饰方法:

        通过静态变量的介绍,下面就只介绍特点了:

  1.     加载时间: 静态方法是随着类的加载而进行加载的,普通方法是随着对象的加载而进行加载的。
  2. 方法调用规则表

    类方法 普通方法 类 可以调用 不可以调用 对象 可以调用 可以调用
  3. 方法内的调用: 静态方法中可以调用静态方法、静态变量【当然如果想要在静态方法中调用用非静态的方法,那么可以在静态方法内部通过对象来进行调用】;非静态方法中可以调用静态方法、静态变量、非静态的方法和属性。
  4. 静态方法中不能使用this关键字,不能使用super关键。          

static 关键字修饰代码块:

静态代码块

1、内部可以有输出语句;

2、内部的语句执行是在类的加载而执行

(只在类加载的时候进行初始化 只进行一次)。

3、初始化类的信息,执行顺序优于非静态代码块。

4、只能调用静态的的属性静态的方法,不能调用非静态结构。

非静态代码快

1、内部可以有输出语句;

2、随着对象的加载而执行。

3、每创建一次对象就会进行调用一次。

4、如果含有多个代码块会进行按照声明的先后顺序来进行执行。

5、可以调用非静态和静态。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值