iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java访问类变量
  • 566
分享到

Java访问类变量

2023-06-02 12:06:50 566人浏览 薄情痞子
摘要

很多语言都不允许通过对象访问类变量,对象只能访问实例变量,为什么Java可以?public class NullAS{private static void a(){  

很多语言都不允许通过对象访问类变量,对象只能访问实例变量,为什么Java可以?

public class NullAS{private static void a(){   System.out.println("hello Word");      }      public static void main(String[] args)      {      NullAS N = null;      N.a();      }   }

这段代码最终的输出结果是:

hello Word

有些人可能会有疑问,使用null对象调用所属类的静态方法,没有报错,还可以正常输出

这其中就涉及到了Java的类,类成员和static

类成员包括类变量,类方法等

让我们来看看类变量的定义:

“类变量属于整个整个类,当系统第一次准备使用该类时,系统会为该类变量分配内存空间,类变量开始生效,直到该类被卸载,该类的类变量所占用的内存才被系统的垃圾回收机制回首。类变量生存范围几乎等同于该类的生存范围。当类初始化完成后,类变量也初始化完成”

当我们看一下上面代码的分配内存情况可知

当系统创建该类的对象时,系统不会再为类变量分配内存,也不会再次对垒变量进行初始化,也就是说,对象根本不拥有对应类的类变量。通过对象访问类变量只是一种假象。当通过对象来访问类变量时,系统会在底层转换为该类来访问类变量。

由于对象实际上并不持有类变量,类变量时由该类持有的,同一个类的所有对象访问类变量时,实际上访问的都是该类的类变量。从程序运行表面来看,即可看到同一类的所有势力的类变量共享同一块内存区。

类方法也是类成员的一种,与类变量相似。

当使用实例来访问类成员时,实际上依然是委托给该类来访问类成员,因此,即使某个实例为null,它也可以访问它所属类的类成员。

当然,如果一个null对象访问实例成员,那可是会报NullPointerException异常的

类初始模块也是类成员的一种,类初始化块用于执行类初始化动作,在类的初始化阶段,系统会调用该类的类初始化块来对类进行初始化。一旦该类初始化结束后,类初始化块讲永远不会获得执行的机会。

对于static而已,类成员不能访问实例成员。因为类成员是属于类的,类成员的作用域比实例成员的作用域更大,完全可能出现类成员以及初始化完成,但实例成员还不曾初始化的情况,如果允许成员访问实例成员将会引发大量错误

所以,实际上Java和很多语言一样,对象只能访问实例变量,类变量通过类来访问,只是它给使用者造成了一种假象

--结束END--

本文标题: Java访问类变量

本文链接: https://www.lsjlt.com/news/229975.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java访问类变量
    很多语言都不允许通过对象访问类变量,对象只能访问实例变量,为什么Java可以?public class NullAS{private static void a(){  ...
    99+
    2023-06-02
  • 怎么用java Lambda访问变量
    本文小编为大家详细介绍“怎么用java Lambda访问变量”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用java Lambda访问变量”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1、lambda表达式...
    99+
    2023-06-30
  • java this访问成员变量吗
    如果存在同名成员变量与局部变量时,在方法内部默认是访问局部变量的数据,可以通过this关键字指定访问成员变量的数据。在一个构造函数中可以调用另外一个构造函数初始化对象。在类的方法定义中使用this关键字代表使用该方法的对象的引用当必须指出当...
    99+
    2014-10-25
    java基础 java
  • 怎么在java中访问成员变量
    怎么在java中访问成员变量?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分...
    99+
    2023-06-14
  • 怎么在java中使用Lambda访问变量
    今天就跟大家聊聊有关怎么在java中使用Lambda访问变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应...
    99+
    2023-06-14
  • 怎么在java中利用继承访问变量
    今天就跟大家聊聊有关怎么在java中利用继承访问变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、...
    99+
    2023-06-14
  • java子线程怎么访问主线程变量
    在Java中,子线程无法直接访问主线程的变量。这是因为每个线程都有自己的线程栈,线程栈中存储了线程的局部变量以及方法的调用栈。主线程...
    99+
    2023-10-25
    java
  • Java的变量类型
    Java 变量类型在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如右:type identifier [ = value][, identifier [= value] ...] ;格式说明:type为Java数据类型。i...
    99+
    2023-06-02
  • 怎么在java中使用lambda访问外部变量
    今天就跟大家聊聊有关怎么在java中使用lambda访问外部变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web M...
    99+
    2023-06-14
  • Java 中的变量类型
    目录1、局部变量2、成员变量(实例变量)3、类变量1、局部变量 在方法或语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。 ...
    99+
    2022-11-12
  • jsp怎么访问作用域变量
    在JSP中,可以通过以下方式访问作用域变量:1. 访问请求作用域(request scope)变量:使用EL表达式`${}`来访问请...
    99+
    2023-09-22
    jsp
  • java中什么是类变量
    本篇文章为大家展示了java中什么是类变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. ...
    99+
    2023-06-14
  • Java类变量和成员变量初始化的过程
    这篇文章主要讲解了“Java类变量和成员变量初始化的过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java类变量和成员变量初始化的过程”吧!一、类的初始化对于类的初始化:类的初始化一般只...
    99+
    2023-06-17
  • Python中如何访问Java类
    Python中如何访问Java类,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。使用Pyjnius:>>> from jnius&nbs...
    99+
    2023-06-17
  • Java 变量类型及其实例
    在Java语言中,所有的变量在使用前必须声明。声明变量的基本格式如下:type identifier [ = value][, identifier [= value] ...] ;格式说明:type为Java数据类型。identifier...
    99+
    2023-05-31
    java 变量 ava
  • Java的数据类型与变量
    目录 🍊数据类型🍌整型🥝byte的范围 🍌浮点型🥝浮点数相关运算 🍊字符类型&#...
    99+
    2023-10-26
    1024程序员节 java
  • java怎么查看变量类型
    在Java中,可以使用以下方法查看变量的类型:1. 使用`getClass()`方法:这个方法返回一个`Class`对象,表示变量的...
    99+
    2023-10-11
    java
  • Java变量类型实例介绍
    这篇文章主要介绍“Java变量类型实例介绍”,在日常操作中,相信很多人在Java变量类型实例介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java变量类型实例介绍”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-02
  • Java类和成员变量声明类详解
    目录声明类声明成员变量访问修饰符类型变量名声明类 定义类: class MyClass { // 字段、构造函数和 // 方法声明 } 这是一个类声明。类主体(大括...
    99+
    2022-11-13
    Java类成员变量 java 声明类
  • Java类变量和类方法实例分析
    本篇内容介绍了“Java类变量和类方法实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.static静态变量静态变量被同一个类的所有...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作