static关键字-查漏补缺

首先,static可以使用的地方:可以修饰变量,可以修饰方法,可以修饰类

(这里需要注意:普通类是不允许声明为静态的,只有内部类才可以,例如普通类A中有一个static修饰的静态内部类B,如果我要一个内部类B的实例化对象时,可以直接new A.B(), 而不需要将外部类 A 实例化)

其次要了解,类中所有使用static修饰的变量,方法或内部类都是此类的静态资源,是所有实例所共享的;其次我们可以发现在静态方法中是无法调用非静态方法的,比如:main函数就是用static修饰的,在main函数中无法直接调用此类中的非静态方法

问题:

为什么使用static?因为main是一个程序的入口,不可能实例化一个对象再去调用,所以设置成静态资源会更好,不需要实例化即可直接被调用;

为什么静态无法直接调用非静态?因为静态资源在类加载的时候就已经创建好了,而非静态资源在创建此类的实例对象时才会创建也就是new一个此类对象时;

那静态方法就一定无法调用非静态方法吗?不是的,既然非静态资源需要实例化时才会创建,那就创建一个此类的对象再调用不就可以了吗;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值