`
DavidIsOK
  • 浏览: 75859 次
社区版块
存档分类
最新评论

static 关键字的用法

 
阅读更多

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关键字详解

    static关键字详解: 内容摘要: 一、static关键字定义属性 二、static属性与非static属性还有一个最大的区别,所有的非static属性必须产生实例化对象之后...五、static关键字(主方法) 适合新手快速学会static关键字。

    Java中static关键字用法总结[借鉴].pdf

    Java 中 static 关键字用法总结 Java 中的 static 关键字是一个非常重要的概念,它可以用来定义静态方法、静态变量和静态块。在 Java 中,静态方法通常在一个类中定义,它们可以在不创建类对象的情况下被调用。静态...

    Java中的static关键字

    静态方法的定义使用 static 关键字,例如:`public static void print() {}`静态方法可以直接通过类名调用,例如:`ClassName.print()`。 三、静态方法的作用 静态方法可以减轻程序的负担,因为它不需要实例化就...

    关于static关键字的总结

    "关于static关键字的总结" static 关键字是 Java 语言中一个非常重要的概念,它可以用来修饰变量、方法、内部类和代码块等。下面我们将详细介绍 static 关键字的由来、作用和用法。 一、static 关键字的由来 在 ...

    java中static关键字用法详解

    java中static关键字用法详解 Java中的static关键字是一个非常重要的概念,它在Java编程中扮演着非常重要的角色。本文将详细介绍Java中static关键字的用法,包括静态变量、静态方法和静态代码块等几个方面。 静态...

    static关键字的所有用法

    实践最重要,所以我的是理论加实例绝对好理解。。

    java视频 static关键字

    在Java编程语言中,`static`关键字是一个非常重要的修饰符,它有多种用途,涉及到类、对象以及变量和方法的生命周期。本视频教程详细讲解了`static`关键字在Java中的应用及其背后的原理。 首先,我们要理解`static`...

    Java面向对象程序设计static关键字.pptx

    1. 工具类:可以使用static关键字来创建工具类,例如`Math`类,所有数学操作都可以使用静态方法调用。 2. 单例模式:可以使用static关键字来实现单例模式,例如: ```java public class Singleton { private ...

    Java下static关键字用法详解

    Static关键字可以修饰什么?  从以下测试可以看出, static 可以修饰:  1. 语句块  2. 成员变量(但是不能修饰局部变量)  3. 方法  4. 接口(内部接口)  5. 类(只能修饰在类中的类, 即静态内部类)  6. ...

    static关键字简介

    在课堂中 已经简要介绍了 static 关键字的使用 我们知道 static 关键字可以用来修饰 类的成员变量 成员方法或者是代码块 下面我们就来说说这个 static 关键字 有时候程序员可能需要定义一个类成员 对它的使用不依赖...

    Java 程序显示类中 Static 关键字的用法.docx

    "Java 程序显示类中 Static 关键字的用法" Java 中的 static 关键字是 Java 语言中一个非常重要的概念,它主要用于内存管理。静态关键字用于共享给定类的相同变量或方法。用户可以将静态关键字应用于变量、方法、块...

    static 关键字详解

    ### static关键字详解 在Java编程语言中,`static`关键字是一个非常重要的概念,它用于定义类成员(变量、方法和内部类)的行为属性。当一个类成员被声明为`static`时,它就成为了该类的静态成员,这意味着无论创建...

    java中final关键字和static关键字详细用法

    Java中的`final`和`static`关键字是编程中非常重要的两个修饰符,它们分别用于不同的场景,以确保代码的稳定性和高效性。 首先,`final`关键字主要用于表示不可变性。它可以用来修饰类、方法和变量。对于类,如果一...

    C++中的static关键字.doc

    C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。

    Java static关键字详细介绍与用法总结

    理解`static`关键字的作用和用法对于编写高质量的Java代码至关重要。 1. **静态方法** 静态方法不需要创建对象就可以直接通过类名调用。它们属于类而不是类的实例,因此无法访问非静态成员(因为非静态成员是在...

    C++ static关键字详细应用指南

    在C++编程语言中,static关键字是一个非常重要的概念,它在全局变量、局部变量以及函数的声明...通过理解并正确使用static关键字,程序员可以在C++项目中更好地管理变量的作用域和生命周期,以及组织模块化的代码结构。

    Static关键字详解.docx

    Static关键字在Java编程语言中扮演着至关重要的角色,它允许我们创建类级别的变量和方法,这些变量和方法不依赖于类的实例即可访问。在深入理解Static关键字之前,我们需要了解类和对象的概念。类是创建对象的蓝图,...

    C++ static关键字的原理及用法详解

    ### C++ `static` 关键字的原理及用法详解 #### 一、引言 在C++编程语言中,`static`关键字扮演着至关重要的角色。它不仅可以用来控制变量和函数的可见性和生命周期,还能在类的设计中发挥独特的作用。正确地理解...

Global site tag (gtag.js) - Google Analytics