static关键字

1.静态属性
定义两个变量,年龄、属性
在这里插入图片描述
要使用student就要先去new一个student
通过student对象可以直接调用
通过Student类也可直接调用
在这里插入图片描述
在这里插入图片描述
调用非静态的score报错了,非静态的字段不能这样调用
(如果是静态变量,推荐使用类名去 .变量
静态的可以共享

2.静态方法

定义两个方法
run();非静态
go();静态方法
在这里插入图片描述
在直接调用run时显示报错,是不能直接调用run方法的,只有在把student 给new出来才可以
在这里插入图片描述
对象 . 方法

在调用go方法时,可以直接调用
在这里插入图片描述
或者去掉Student也可以直接调用
在这里插入图片描述
加了static就是从属于这个类,可以直接调用
非静态里的方法可以直接调用这个类中的静态方法
run(非静态)里面可以直接访问go(静态)
在这里插入图片描述
静态方法可以调用静态方法的,但是不可以调用非静态的
在这里插入图片描述
3.静态代码块
在这里插入图片描述
静态代码块static里面可以加载一些初始化的数据,静态代码块在类加载的时候它直接执行,永久执行一次

匿名代码块是创建对象的时候就自动创建了,在构造器之前,程序在执行的时候不能主动调用这些模块,匿名代码块的作用是赋一些初始值,因为它是和对象同时产生的,而且它在构造方法之前

在这里插入图片描述
输出
在这里插入图片描述
第一次new:首先可以看到第一个先输出了静态代码块,它和类一块儿加载,然后第二个执行了匿名代码块,第三个执行构造方法;
第二次new:可以看到静态代码块static只执行一次,第二次就没了,而其他的都是每次在创建了对象就要执行,先走匿名代码块,然后构造方法

4.静态导入包

输出一个Math.random();(随机数,每次输出的值不一样)
在这里插入图片描述
不想每次都写Math.只写random把Math省略,我们可以导入一个包
在这里插入图片描述
导入一个lang包,后面可以 . Math . random
但是此时报错,加一个static就好了
在这里插入图片描述
这就是静态导入包
在这里插入图片描述
上面导入包了,在输出语句中的调用时就不用Math.了,直接写random()调

5.final
它是常量的修饰符,通过final修饰的类不能被继承,没有子类了。
如果父类被final定义了
在这里插入图片描述
则它的子类Student不能继承了
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值