zoukankan      html  css  js  c++  java
  • static成员是可以被其所在class创建的实例访问!!!

      <span style="font-family: Arial, Helvetica, sans-serif; ">关于静态方法以及静态变量的使用就不详细的说了,我就这里只是探讨一下“static成员是不能被其所在class创建的实例访问”</span>

        作为一个java的渣渣。最近在看static关键字的详解,看到网上的一篇文章中写道:static成员是不能被其所在class创建的实例访问。

        就感觉怪怪的,感觉应该是可以访问的。然后自己写了一个例子测试了一下。

        代码如下:

    public class StaticTest {
    	public static void main(String[] args)
    	{
    		A mm = new A();
    		System.out.println("A.a = "+ A.a);
    		System.out.println("mm.a = "+ mm.a);
    		A.add(100);
    		mm.add(24);
    	}
    }
    class A{
    	protected static int a = 5;
    	private static int b;
    	public static void add(int c)
    	{
    		b = c;
    		System.out.println("b=="+b);
    	}
    }

     

        输出结果:

    A.a = 5
    mm.a = 5
    b==100
    b==24

     

        上面的例子中我实例化了一个Class A 的对象mm,然后用该对象调用Class A 中的静态方法以及静态的成员变量,结果都是可以访问到的。

        类的实例对象明明是可以访问该类的静态变量以及静态方法的。

    类中的静态变量是存储在JVM中的方法区中,方法区是共享区。所有该类的对象都是可以访问该静态变量。

        类的静态方法以及静态变量可以直接通过类名来调用(ClassName.method()、ClassName.variable,在类外),可以不需要实例化对象就可以访问。

        但是实例化了之后也是可以用实例化的对象来访问类的静态方法以及静态变量的。

        只是这种方式是不推荐的。

                ** 使用类的实例对象调用静态方法:对象.静态方法 。这样子不能很清楚的看出他们是类的方法。

                ** 使用类的实例对象调用静态变量:对象.静态变量。这样子不能很清楚的看出他们是类的变量。

        所以在调用类中的静态方法以及静态变量的时候,使用ClassName.method()、ClassName.variable的方式

        详细的可以参看java开发文档:http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html

      转自:http://blog.csdn.net/zzzxzxh/article/details/44672941

    技术小白,努力学习。
  • 相关阅读:
    记某app内购破解 – 安卓逆向菜鸟的初体验
    初探Android逆向:通过游戏APP破解引发的安全思考
    用IKVMC将jar转成dll供c#调用
    Java与.net 关于URL Encode 的区别
    RSA加密、解密、签名、验签的原理及方法
    C#使用SHA1加密类(RSAFromPkcs8)支持1024位和2048位私钥
    java与.net平台之间进行RSA加密验证
    RSA密钥,JAVA与.NET之间转换
    全面解决.Net与Java互通时的RSA加解密问题,使用PEM格式的密钥文件
    Android中Activity的启动模式(LaunchMode)和使用场景
  • 原文地址:https://www.cnblogs.com/mei0619/p/6593582.html
Copyright © 2011-2022 走看看