Java static修饰符

本文详细解释了Java中static修饰符如何影响变量和方法的行为,指出static变量存放在数据段,只能通过类名调用,静态方法不能使用this,且不能调用非静态方法。
摘要由CSDN通过智能技术生成

static可以修饰变量和方法

目录

修饰变量:

修饰方法:

总结:


修饰变量:

        当类中域被static修饰,则该域就是类本身的域,既然static所修饰的域是属于类而非对象,那么就可以通过(类名.域),来调用该域。

        static修饰的域存放在哪呢?

                首先猜想应该是堆中,因为普通的域会被分配在堆中,但被static修饰的变量可被每一个堆中存放的对象所改变读取,而在堆中存放的是对象中的域,而对象中的域又是相互独立(普通变量)的,故不是在堆中,被static修饰的变量会被放到数据段中,那里存放静态变量、字符常量,且这个区域可以被所有对象访问到,这样所有对象访问的就是同一个变量。

修饰方法:

        当类中方法被static修饰,则该方法就是类本身的方法,既然static所修饰的方法是属于类而非对象,那么就可以通过(类名.方法),来调用该方法。

考虑一点,既然static所修饰的方法可以通过类名.方法使用,那么该方法中是否可以使用对象呢?

        答案:否定的,因为static不依赖对象,就没有this指针,那就不能使用对象。

因为静态方法没有自身对象,那么是不是就不能在静态方法内调用非静态方法呢?

        答案:对,就因为静态方法不需要自身对象(this)的传递,而非静态方法默认是需要将调用发起者传递到this的。

总结:

        通过static修饰符修饰的成员会变为类本身的成员,而不再依赖对象,可以通过类名.成员名的方式访问。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值