Java8——static关键字

定义属性:

static在使用上可以声明属性、方法;

一旦在属性上使用了static之后,那么只要有一个对象对他的属性进行修改之后,其他对象的这个属性也会随之修改,该属性(保存在全局数据区)变成了一个公共属性,static 实际上是为了保存一个重复多次的属性,避免浪费无用的空间。所以由具体某一个对象去修改这个属性不太合适,可以利用这个属性所在的类去修改该属性

static声明的属性和普通属性(非static属性)最大的区别在于保存的内存区域不同;所有的非static属性必须产生实例化对象之后才可以使用。但是static不受实例化对象的影响,也就是说,可以没有实例化对象进行输出;

static属性的一个特征:虽然定义在类结构里面,但是不受到对象的控制,是独立于类存在的。

什么时候使用static?什么时候不使用?

  • 编写程序的时候,首要使用的修饰符一定不是static,如果需要描述共享信息的时候使用static(可以方便集体修改,可以不重复开辟空间)
  • 一个类里面没有任何的属性存在,只有方法,建议将所有的方法都定义为static,这样就不用在每次调用的时候都实例化对象了。

定义方法:

static虽然定义在类结构里面,但是不受到对象的控制,是独立于类存在的。但是会出现一个问题,此时类中的方法变成了两种:static方法、非static方法。两组方法间的访问也将会收到限制:

  • static方法不能直接访问非static属性或方法,只能调用static属性或方法;
  • 非static方法可以直接访问static属性或方法,不受任何限制;

为什么会存在以上的限制?

  • 所有的非static定义的结构,必须在类已经明确产生实例化对象才会分配堆内存空间
  • 所有的static定义的结构,不受实例化对象的限制,可以没有实例化对象时访问

主方法:

  • public(公共):主方法是程序的开始,所以这个方法对于任何操作都是可见的;
  • static:证明此方法是由类名称调用的;
  • void:主方法是一切执行的开始点,既然是所有的开头,那么就不能回头,直到执行完毕;
  • main:是一个系统规定好的方法名称,不能修改;
  • String args[]:指的是程序运行时传递的参数;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值