Java基础【04】静态static,final,private访问权限

加上static修饰的属性,JVM分配在静态存储区,不加static属性的,JVM分配在堆区。static修饰的成员在类加载的时候就装载和分配了。而非static关键字的方法,在类定义时没有占用内存,只有在类被实例化对象时,对象调用该方法才被分配内存。

静态变量

如果希望所有的成员共享一个成员变量,那么就需要用到static修饰该成员变量。Java中被static修饰的成员称为***静态变量***或***类变量***。意思是:被static修饰的成员变量属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态变量可以使用类名直接访问也可以使用对象名进行访问。下面来看一个例子:
这里写图片描述

静态函数
调用同类中的静态变量

静态函数可以直接调用同类中的静态变量,但是不能直接访问同类中的非静态变量
这里写图片描述
: 调用同类中的非静态变量
静态方法中不能访问类的非静态变量。因为他们必须依赖与对象才能被调用。如果要调用同类中的非静态变量,则需要创建对象来访问
这里写图片描述

: 调用同类中的非静态函数

静态方法中不能访问类的非静态方法。因为他们必须依赖与对象才能被调用。如果调用同类中的非静态函数同样也要创建对象,通过对象访问

普通成员函数调用同类的静态变量和非静态变量可以直接访问

静态代码块与非静态代码块

Java中的静态代码块是在虚拟机加载类的时候就执行的,只执行一次。
有多个静态代码块则会按照先后顺序执行它们,每个代码块执行一次
非静态代码块是在类new一个实例的时候执行的,而且是每次new对象
实例都会执行
如果有代码在项目启动的时候就执行,则需要使用静态代码块,这种代码是主动执行的,需要在项目启动的时候就初始化

静态导包

静态导包用法,将类的方法直接导入到当前类中,从而直接使用“方法名”即可调用方法类

final

1.修饰类
用final 修饰一个类表明这个类不能被继承
2.修饰变量
如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改。
3.修饰方法
防止继承类修改它的涵义,该方法将无法被重写

关于权限

private
访问权限仅限于类的内部,是一种封装的体现
public
具有最大的访问权限,可以访问任何一个在classpath下的类,接口,异常类等,
它往往用于对外的情况,也就是对象或类对外的一种接口的形式
protected
用来保护子类的。子类可以使用protected修饰的成员,其他的不可以
default
任何处于本包下的类,接口,异常等,都可以相互访问,即使是父类没有用protected修饰的成员也可以
在这里插入图片描述
代码的执行顺序
1.主调类的静态代码块
2.对象父类的静态代码块
3.对象的静态代码块
4.对象父类的非静态代码块
5.对象父类的构造函数
6.对象的非静态代码块
7.对象的构造函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值