码迷,mamicode.com
首页 > 编程语言 > 详细

Java的作用域

时间:2016-05-30 15:38:27      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

Java的作用域

  作用域是指变量能生效的区域范围,声明在不同地方的变量具有不同的作用域,而决定作用域的就是花括号的位置,同时还决定了变量名的可见性与生命周期.

  Java语言中,变量的类型主要有成员变量,静态变量,和局部变量三种.类的成员变量 的作用范围与类的与类对象的作用范围相同,当类被实例化时,成员变量就会在内存中分配空间并初始化,直到这个实例化对象的生命周期结束为止.static修饰的成员变量为静态变量或者全局变量,与成员变量不同的是静态变量不依赖于特定的实例,而是被所有的实例所共享,只要一个类被加载JVM就会给类的静态变量分配内存空间,因此,就可以通过类名和变量名来访问静态变量.局部变量处于方法内部,其作用域与可见性为他所在的花括号内.

成员变量的四种作用域

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

作用域详解:

-public :表明该成员变量或者方法是对所有类或者对象都是可见的,所有类或者对象都可以直接访问
- private:表明该成员变量或者方法是私有的,只有当前类对其具有访问权限,除此之外其他类或者对象都没有访问权限.子类也没有访问权限.
- protected:表明成员变量或者方法对类自身,与同在一个包中的其他类可见,其他包下的类不可访问,除非是他的子类
- default:表明该成员变量或者方法只有自己和其位于同一个包的内可见,其他包内的类不能访问,即便是它的子类

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

privateprotected不能用于修饰类

只有public , abstract , final能用于修饰类

实例题:

下列说法中正确的是();

A.实例方法可以直接调用超类的实例方法

B.实例方法可直接调用超类的类方法

C.实例方法可以直接调用其他类的实例方法

D.实例方法可用于直接调用本类的类方法

正确答案选D.子类在父类为priavatedefault类型下不能访问父类的方法,且只有静态方法可以被直接调用,故D正确.

完毕!

Java的作用域

标签:

原文地址:http://blog.csdn.net/qq_26971803/article/details/51516075

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!