【java】有关作用域

Java语言的变量类型主要有三种:成员变量、静态变量(全局变量)、局部变量

作用域是由{ }的位置所决定的,它决定了其定义的变量名的可见性与生命周期

  • 成员变量

    成员变量的作用范围与实例化对象的作用范围相同,当类被实例化以后,成员变量就会在内存中分配空间并进行初始化,当实例化对象的生命周期结束后,成员变量的生命周期才结束

  • 静态变量(全局变量)

    被static关键字所修饰,静态变量不依赖于特定的实例,而被所有实例所共享,只要一个类被加载,那么JVM就会给类的静态变量分配存储空间。所以,我们可以通过类名和变量名来访问静态变量

  • 局部变量

    其作用域和可见性为它所在的{ }内

成员变量的4种作用域:

  • public

    该成员变量或方法对所有类和对象都是可见的,并且可以被他们直接访问和调用

    (本类、本package、子类、其他package)

  • private

    该成员变量或方法是私有的,只有本类对其有访问权限

    (本类)

  • protected

    该成员变量或方法对自己及其子类是可见的

    (本类、本package、子类)

  • default

    该成员变量只有自己以及与其位于同一包中的类可见

    对于有继承关系的情况,当父类与子类位于同一包中时,子类对父类中的default成员变量或方法有访问权限,当父类与子类不在同一个包中时,子类对父类中的default变量或方法没有访问权限

    (本类、本package)、

注:peivata、protected不能用来修饰类,可以用来修饰类的只有(public、abstract、final)

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

时间: 2024-08-02 23:18:19

【java】有关作用域的相关文章

Java的作用域

Java的作用域 作用域是指变量能生效的区域范围,声明在不同地方的变量具有不同的作用域,而决定作用域的就是花括号的位置,同时还决定了变量名的可见性与生命周期. Java语言中,变量的类型主要有成员变量,静态变量,和局部变量三种.类的成员变量 的作用范围与类的与类对象的作用范围相同,当类被实例化时,成员变量就会在内存中分配空间并初始化,直到这个实例化对象的生命周期结束为止.static修饰的成员变量为静态变量或者全局变量,与成员变量不同的是静态变量不依赖于特定的实例,而是被所有的实例所共享,只要一

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 关