JAVA的静态变量、静态方法、静态类

JAVA的静态变量、静态方法、静态类静态变量和静态方法都属于静态对象 它与非静态对象的差别需要做个说明 1 Java 静态对象和非静态对象有什么区别 nbsp nbsp nbsp nbsp nbsp 比对如下 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 静态对象 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 非静态对象 nbsp nbsp nbsp nbsp nbsp 拥有属性

      静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明。

(1)Java静态对象和非静态对象有什么区别?

      比对如下:

       通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static就能创建这样的成员。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象(跟类是否有static修饰无关)。

       你可以将方法和变量都声明为static。static 成员的最常见的 例子是main( ) 。声明为static的方法有以下几条限制(main也是??):  ·

A,它们仅能调用其他的static 方法

B,它们只能访问static数据

C,它们不能以任何方式引用this 或super(this涉及到对象,super 与继承有关)

       示例:Static 块仅在该类被加载时执行一次。下面的例子显示的类有一个static方法,一些static变量,以及一个static 初始化块。

public class TestNew { static int a = 3; static int b; static void meth(int x){ System.out.println("x = "+x); System.out.println("a = "+a); System.out.println("b = "+b); } static { System.out.println("static block initialized"); b = a*4; } public static void main(String[] args) { // TODO Auto-generated method stub meth(42); } } 

       执行结果是:

       在定义它们的类的外面,static 方法和变量能独立于任何对象而被使用,你只要在类的名字后面加点号运算符即可。可以看到,这种格式与通过对象引用变量调用非static方法或者变量的格式类似。示例:

class StaticDemo{ static int a = 42; static int b = 99; static void callme(){ System.out.println("a = "+a); } } public class TestNew { public static void main(String[] args) { // TODO Auto-generated method stub StaticDemo.callme(); System.out.println("b = "+StaticDemo.b); } }

     执行结果:

B,静态方法、静态成员变量。它唯一的作用就是随着类的加载(而不是随着对象的产生)而产生,以致可以用类名+静态成员名直接获得。这样静态内部类就可以理解了,它可以直接被用 外部类名+内部类名 获得。举例如下:

public class Build {

       …………..

     public static class VERSION {

            …………….

            public static final String RELEASE = getString(“ro.build.version.release”);

            …………….

      }

      …………….

}

在外部可以直接通过Build.VERSION.RELEASE来访问。

       补充一个:关于类中类变量的定义(与static主题无关)。WakeLock是PowerManager类中的类,已经import android.os.PowerManager;如果要定义WakeLock型的变量,需要PowerManager.WakeLock mSmartStayWakeLock = null;如果想WakeLock mSmartStayWakeLock = null;则Import时要用import android.os.PowerManager.WakeLock;。

      

参考原文:http://www.cnblogs.com/-0_0-/articles/1962368.html

参考原文:http://blog.sina.com.cn/s/blog_5cd7f5b40100r0rt.html

参考原文:http://zhidao.baidu.com/question/149873207.html

参考原文:http://ddvcxj.blog.51cto.com//

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222423.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午3:50
下一篇 2026年3月17日 下午3:50


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号