JAVA基础--static关键字

Static 来修饰成员变量和成员方法

1、statci来修饰成员变量
在一个类中,静态成员变量,属于该类所有,而不是属于创建的对象所有,所有该类创建的对象共享该成员变量。
2、static修饰成员方法
同样,使用static修饰了成员方法,该方法属于类,不属于对象。

如果没有statci关键字,那么必须创建对象,然后通过对象才能使用它。
如果有了static关键字,那么不需要创建对象,直接通过类名称来使用它。

MyClass obj = new MyClass();
obj.methStatic();          正确写法,不推荐这种写法,再通过javac编译后会编译成下面写法
MyClass.methodStatic();    正确写法,推荐该种写法

所以,无论是成员变量还是成员方法,如果有了static,都推荐使用类名称进行调用。

关于静态成员函数的访问变量问题

1、静态成员函数不能直接访问非静态成员变量

原因:因为在内存当中,是先有的静态内容,后有的非静态内容。

2、静态方法中不能用this 指针

原因:this代表当前对象,谁调用的方法,this就指向谁,而静态方法属于类不属于对象。

static 的内存图

在方法去中单开辟一个内存空间来存储静态变量与方法
在这里插入图片描述

静态代码块

在程序执行时,只执行一次(为了实现执行一次,可以在这里实现)
public class MyClass {
static {
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值