当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

static 关键字的用法

发表于: 2014-08-09   作者:DavidIsOK   来源:转载   浏览:
摘要: 1.static 关键字: 1)static修饰的变量(类变量)会被该对象所有的实例共享(包括子类)。在某个对象的所有实例的整个生命周期都只实例化一次,换句话说,静态变量是属于类,而不是属于对象(类的实例)。如果该关键字修饰的变量可见性为Public,则他的子类也共享该变量并可以对该变量进行更改,所以一般我都吧static变量设为private,如果要让其成为真正的全局变量可以用public 修

1.static 关键字:

1)static修饰的变量(类变量)会被该对象所有的实例共享(包括子类)。在某个对象的所有实例的整个生命周期都只实例化一次,换句话说,静态变量是属于类,而不是属于对象(类的实例)。如果该关键字修饰的变量可见性为Public,则他的子类也共享该变量并可以对该变量进行更改,所以一般我都吧static变量设为private,如果要让其成为真正的全局变量可以用public 修饰。上节中如果改成public final double PI=3.14,则所有实例都可以共享该常量,且不能进行修改。即应用程序常量。

代码:

class Ball {
   privatestatic int count = 0;
   publicstatic int getCount (){
       returncount ;
   }
   publicBall(){
       count++;
   }
}
 
class Test  {
   public static voidmain(String[] args) {
       for (int i = 0;i < 10000;i++ ) {
           int number=(int)(Math.random()*10);
           if (number==7) {
               new Ball();
           }
           System.out.println("created:->"+Ball.getCount());
       }
   }
}


2)static修饰的方法,执行某个静态方法不需要实例化该类,可以直接使用类名.静态方法名访问该方法。

A.静态方法的限制:由于静态方法在被调用时不需要类的实例,所以调用静态方法时不存在类的实例变量和方法,所以使用静态方法不能引用类的实例变量和方法,静态方法可以访问静态成员和方法,在静态方法中也不能使用super和this关键字。由于静态方法在类进行实例化时就已经写到固定类存中,所以也不能被子类重写。

3)静态块(静态初始化器):在类加载时自动执行,目的在于初始化和分配整个生命周期类的资源(单例模式,属于类不属于任何一个实例,在类的实例化之前就已经初始化了静态成员(不包括非静态成员),这也是与构造函数不一样的地方)

A. 静态块没有名字:因为没有必要在类的定义外引用。

B. 静态块没有参数:因为静态块是在类加载时自动执行的,不需要参数。

C. 静态块没有返回类型:像构造函数一样,不需要返回值,所以最后写出的静态块样子类似如此 static{…………}

D. 如果不想让类加载时就执行该静态块但又不想让其他实例引用可以变换成一个私有静态方法,如: private static int initBall(){…………}.

E. 注意:JVM默认将静态块的大学限制为64K,因此不要再静态块中放入太多代码;不能从静态块中抛出被检查的异常,即不能使用try-catch块,这也是一个相对来说的缺点,(解决方法三种种,一是选择记录异常,并抛出RuntimeException的异常来终止当前线程;另一种是选择电泳System.exit()方法,然后这在托管环境中却行不通,这种选择通常在java程序中,另一种是设置标志来标识失败,在类的构造函数中裤检查标志的状态);测试静态块中的代码通常比较难。【static 块的应用环境常见的是在java程序中加载数据库驱动】。

static 关键字的用法

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
最新修改: C\C++ static用法 一、预备知识 按作用域的称谓 按定义位置的称谓 局部变量:在函数内定
风中叶 写道 static修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成
static的内部机制: 静态数据成员要在程序一开始运行时就必须存在。因为函数在程序运行中被调用,所
注:本文参照http://blog.csdn.net/xiaocai0001/article/details/662921 做学习总结。 static关键字
一、final关键字 final在java中表示的意思是最终,也可以称为完结器。可以使用final关键字声明类属性
1.类是java里面的重要内容,可以把类当成一种自定义数据类型,使用类来定义变量,这种类型的变量统
本章目标 了解static关键字的作用 掌握static属性、static方法的声明及使用 掌握static使用的限制
final,最后的,最终的;决定性的;不可更改的。在java中final可以用来修饰类,方法和属性。 (1)
1、使用static声明属性 如果希望一个属性被所有对象共同拥有,可以将其声明为static类型。 声明为st
如果要想将一个属性设置成公共属性,则就需要使用static 关键字进行声明。 package org.staticdemo;
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号