类和对象(三):static+代码块

1、static

1-1 引入

        有一个学生类,字段包括姓名,性别,年龄,所属班级;假设有一组同学在同一个班,那么在实例化对象时,每个对象中改字段的值都是一样的,难免会浪费,因为班级是该组同学共享的。

        在java中,有static关键字,被static修饰的成员,成为静态成员,也可以成为类成员其不属于某个具体的对象,而是所有对象所共享的。

1-2 static修饰成员变量

        被static修饰的成员变量,称为静态成员变量。

 

静态成员变量

-> 不属于某个具体的对象,是类的属性所有对象共享的不存在于某个对象的空间中

-> 类变量存储在方法区当中

-> 一般使用类名来访问

 1-3 static修饰成员方法

        同样的,静态方法不依赖与对象,是类的方法,不是某个对象特有的。

静态方法

-> 不属于某个具体的对象,是类的方法

-> 一般通过 类名.静态方法名 来调用

-> 静态方法中,不能直接访问非静态的数据。

在类方法中可以提供对象的引用来访问非静态成员,实例化对象或者参数传递均可。

 1-4 static成员变量初始化

【一般不放在构造方法中,因为构造方法中初始化的是与对象相关的实例属性】

-> 就地初始化:在定义时直接给出初始值

-> 静态代码块初始化

 2、代码块

2-1 普通代码块

        也称本地代码块,定义在方法中的代码块

2-2 构造代码块

         也称实例代码块。定义在类中的代码块(无修饰符)。一般用于初始化实例成员变量。

        类内部,方法的外部。 

2-3 静态代码块

使用 static 定义的代码块称为静态代码块。 一般用于 初始化静态成员变量

 

代码块的执行顺序:静态 -> 实例 -> 构造

-> 静态代码块,不论生成多少个对象,都只会执行一次;

-> 如果有多个静态的,看定义的先后次序;

-> 没有实例化对象只会执行静态的;

-> 实例代码块在创建对象时才会执行;

-> 最后执行构造代码块

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值