Java的作用域

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正确.

完毕!

时间: 2025-01-02 04:59:41

Java的作用域的相关文章

Java 嵌套作用域

在C/C++中,当一个块处于另一个块作用域内的时候,内层定义的变量会把外层的变量隐藏, 遵循所谓的就近原则. 在Java中,在内层定义与外层同名的变量是禁止的! 如下: int i = 0; for(int i = 0; i < 20; i++){ //do Something } 这样的代码在C/C++中是可以的,在Java 会有编译错误!

Java 四大作用域总结

一.ServletContext 1.生命周期:当Web应用被加载进容器时创建代表整个web应用的ServletContext对象,当服务器关闭或Web应用被移除时,ServletContext对象跟着销毁. 2.作用范围:整个Web应用. 3.作用: a)在不同Servlet 之间转发 this.getServletContext().getRequestDispatcher("/servlet/Demo10Servlet").forward(request, response);

java变量作用域

1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用. 3.protected:protected对于子女.朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private. 作用域 当前类 同一package 子孙类 其他pac

[转]java中作用域public private protected 以及不写的区别

在说明这四个关键字之前,我想就class之间的关系做一个简单的定义,对于继承自己的class,base class可以认为他们都是自己的子女,而对于和自己一个目录下的classes,认为都是自己的朋友. 1.public:public表明该数据成员.成员函数是对所有用户开放的,所有用户都可以直接进行调用 2.private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用. 3.protected:pro

java python js作用域的对比

1  java的作用域以代码块为作用域 也就是{} 2 python中是以函数作为作用域:比如 def func(): if 1==1: name="a" print(name) func()  不会报错  因为Python是以函数作为作用域 3 js和Python一样是以函数作为作用域的 ps:(1) 函数的作用域在函数未被调用之前 已经创建 (2)函数的作用域存在作用域链 并且也是在被调用前创建(函数套函数)如:function func(){ function inner(){}

JAVA 笔试笔记

1.java优缺点 优点 :纯面对对象,跨平台,提供很多内置的类库,支持web开发,有较好的健壮性和安全性 缺点 : 速度慢,跨平台不能像其他的语言一样接近操作系统,复杂 2.java与c/c++ 都是面对对象语言.java是解释性语言(一次编译永久使用),c是编译型语言,java没有指针,不支持多重继承,不需要开发人员分配内存,java跨平台 3.public static void main(String[] args)为java的入口函数,但并不是最先运行该函数. 4.java中作用域有全

《Java程序员面试笔试宝典》终于在万众期待中出版啦~

<Java程序员面试笔试宝典>终于在万众期待中出版啦~它是知名畅销书<程序员面试笔试宝典>的姊妹篇,而定价只要48元哦,恰逢求职季节,希望本书的出版能够让更多的求职者能够走进理想的企业 在这里,众多知名企业面试官将为你撕开神秘的求职面纱: 在这里,各种求职达人将现身说法为你揭开求职谜团: 在这里,各种类型的企业招聘细节都会被展露无疑: 在这里,我们将为你抽丝剥茧,还原IT行业的真相: 在这里,我们将为你指点迷津,告诉你职场上的风风雨雨: 在这里,我们将为你点石成金,成为那盏指引你前

java的清理

java的创建 http://www.cnblogs.com/maying3010/p/5866128.html java的作用域 作用域一般是最近的一个花括号内部 .出了作用域,该对象仍继续占据内存空间,但我们无法访问该对象 java的回收 1. 当一个对象离开了作用域或者为null时,java的垃圾回收机制会认为该对象可以回收(不一定回收). 2. 垃圾回收器准备释放内存的时候,会先调用finalize(),并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存. 3. System.g

thinking in java -----reading note(2)

# thinking in java 4th# reading note# victor# 2016.02.16 chapter 2 一切都是对象 2.1 用句柄操纵对象    使用句柄作为标识符指向一个对象.但拥有句柄并不意味着有一个对象同它连接.    例如,创建一个String句柄: String s;    此时,这里创建的是句柄,并不是对象.如果向s发一条消息,就会获得一个错误.因此,较为安全的做法是:创建一个句柄时,无论如何都进行初始化. 2.2 创建对象    通常使用 new 关