zoukankan      html  css  js  c++  java
  • 为什么类的静态方法不能访问类的非静态资源

    为什么静态的方法,只能访问静态资源(如静态属性或方法),却不能访问非静态资源?而非静态方法可以访问静态资源?
     -> 首先,非静态方法可以访问静态资源:比如产生了一个类的实例,调用实例的普通非静态方法,方法内部访问另外一个类的一些静态资源,如static final 类型的常量,这个很常用,容易理解。


     -> 其次,为什么静态方法不可以访问非静态资源?我们知道,静态属性和方法,是随着类的加载就已经加载进来了,此时类的实例并没有产生。假设虚拟机加载类A的静态方法f1时,f1内部访问了另外一个类B的非静态资源(如属性b),那么,我们知道,由于类的非静态资源只有类的实例可以访问,只有类产生了实例才能访问到,很好,那么请问此时类B实例化了吗?类B有实例对象出来了吗?而类A却要去访问人家的非静态资源了,这显然就是试图去访问一个不存在的资源,所以,原因已经很明显了。

  • 相关阅读:
    jdk silent install test
    jdk silent install
    PS_note_01
    string.split('',-1)的作用
    dos下静默安装
    dos命令中rem 与::的区别
    barcode4j用法
    查看tomcat的版本
    eclipse里启动rabbitmq报错 java.net.SocketException: Connection reset
    Mysql性能调优
  • 原文地址:https://www.cnblogs.com/jianglong-liang/p/3337673.html
Copyright © 2011-2022 走看看