Java的作用域
Posted Brioal
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java的作用域相关的知识,希望对你有一定的参考价值。
Java的作用域
作用域是指变量能生效的区域范围,声明在不同地方的变量具有不同的作用域,而决定作用域的就是花括号的位置,同时还决定了变量名的可见性与生命周期.
Java
语言中,变量的类型主要有成员变量,静态变量,和局部变量三种.类的成员变量 的作用范围与类的与类对象的作用范围相同,当类被实例化时,成员变量就会在内存中分配空间并初始化,直到这个实例化对象的生命周期结束为止.static
修饰的成员变量为静态变量或者全局变量,与成员变量不同的是静态变量不依赖于特定的实例,而是被所有的实例所共享,只要一个类被加载JVM就会给类的静态变量分配内存空间,因此,就可以通过类名和变量名来访问静态变量.局部变量处于方法内部,其作用域与可见性为他所在的花括号内.
成员变量的四种作用域
作用域,可见性 | 当前类 | 同一package | 子类 | 其他package |
---|---|---|---|---|
public |
可见 | 可见 | 可见 | 可见 |
private |
可见 | 不可见 | 不可见 | 不可见 |
protected |
可见 | 可见 | 可见 | 不可见 |
default |
可见 | 可见 | 不可见 | 不可见 |
作用域详解:
-public
:表明该成员变量或者方法是对所有类或者对象都是可见的,所有类或者对象都可以直接访问
- private
:表明该成员变量或者方法是私有的,只有当前类对其具有访问权限,除此之外其他类或者对象都没有访问权限.子类也没有访问权限.
- protected
:表明成员变量或者方法对类自身,与同在一个包中的其他类可见,其他包下的类不可访问,除非是他的子类
- default
:表明该成员变量或者方法只有自己和其位于同一个包的内可见,其他包内的类不能访问,即便是它的子类
需要注意的是,这些修饰符只能用来修饰成员变量,不能用来修饰局部变量
且private
和protected
不能用于修饰类
只有public , abstract , final
能用于修饰类
实例题:
下列说法中正确的是();
A.实例方法可以直接调用超类的实例方法
B.实例方法可直接调用超类的类方法
C.实例方法可以直接调用其他类的实例方法
D.实例方法可用于直接调用本类的类方法
正确答案选D
.子类在父类为priavate
和default
类型下不能访问父类的方法,且只有静态方法可以被直接调用,故D
正确.
完毕!
以上是关于Java的作用域的主要内容,如果未能解决你的问题,请参考以下文章