Java中的作用域有哪些

Posted wutongshu-master

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的作用域有哪些相关的知识,希望对你有一定的参考价值。

在Java语言中,变量的类型主要有3种:成员变量、静态变量和局部变量


 

首先说静态变量跟局部变量


 

静态变量不依赖于特定的实例,而是被所有实例共享,也就是说,只要一个类被加载,JVM就会给类的静态变量分配

存储空间。因此可以通过类名.变量名来访问静态变量


局部变量的作用域与可见性为它所在的花括号内


类的成员变量的作用范围同类的实例化对象的作用范围相同。当类被实例化的时候,成员变量就会在内存中分配空间,并初始化。

直到类的实例化对象的生命周期结束时,成员变量的生命周期才结束。

作用域与可见性 当前类 同一package 子类 其他package
public
private × × ×
protected ×
default × ×

重点说一下protected和default:

protected:表名成员变量或方法对该类自身,与它在同一个包中的其他类,在其他包中的该类的子类都可见

defaul:表明该成员变量或方法只有自己和与其位于同一包内的类可见。

若父类与子类处于同一包内,则子类对父类的default成员变量或方法都有访问权限;若父类与子类处于不同的package内,则没有访问权限


 

还有需要注意的是,这些修饰符只能修饰成员变量,不能修饰局部变量。

private和protected不能用来修饰类

 

以上是关于Java中的作用域有哪些的主要内容,如果未能解决你的问题,请参考以下文章

spring配置文件中能够用到的bean的作用域有哪些

在Spring中,Bean有几种作用域?

在Spring中,Bean有几种作用域

jsp有哪些内置对象?作用分别是什么?分别有什么方法?JSP作用域有哪些?

spring的bean作用域有几种,开发中需要注意啥?

CDI 中的@ApplicationScoped 和@Singleton 作用域有啥区别?