static可以用来定义静态成员变量、静态函数、静态代码块。

静态成员变量的语法特点

定义方法:在成员变量前面加上static

class Person{
      static int i; //静态成员变量
}

在普通的成员变量中,成员变量的值是属于单个对象的,修改某个成员变量的值对其他成员变量来说是没有影响的。

在静态的成员变量中,所有的对象使用的成员变量是同一个,值也一样。当静态成员变量的值被修改了,对象的成员变量值也跟着变化。

静态成员变量可以直接用类名来调用,也可以用对象来调用静态成员变量。

class Test{
      public static void main(String args[]){
           Person p1 = new Person();
           Person p2 = new Person();
           Person.i = 10;
           System.out.println("p1的i的值为"+p1.i);
           System.out.println("p2的i的值为"+p2.i);
           p1.i = 20;
           System.out.println("p1的i的值为"+p1.i);
           System.out.println("p2的i的值为"+p2.i);
      }
}

静态成员变量是类层次的变量,属于这一个类,这个类所生成的所有对象使用的都是同一个静态变量,任何一个成员变量的值如果修改,其他所有成员变量的值都会修改。

静态成员函数的语法特点

定义方法:在成员函数前面加上static,静态成员函数可以直接用类名来调用

class Person{
      static void fun(){
           System.out.println("我是静态函数");
      }
}
class Test{
      public static void main(String args[]){
           Person.fun(); //使用类调用静态函数
      }
}

 

在静态函数中不能调用非静态的成员变量

class Person{
      String name;
      static void talk(){
           System.out.println("我叫"+name);
      }
}

个人理解:当在成员函数前不加static时,可用this调用成员变量name(默认情况下省略this),this对象表示调用了这个成员函数的对象。加上static后,使用类名来调用静态函数(没有对象),成员变量必须要用对象来调用,所以在静态函数中不能调用非静态的成员变量(不能使用this),但可调用静态成员变量。

静态代码块的语法特点

class Test{
      static{
           System.out.println("我是静态代码块");
      }

      public static void main(String args[]){
      }
}

  

静态代码块没有名字,在装载类的时候执行静态代码块。静态代码块用于给静态变量赋初值。

static关键字的作用的更多相关文章

  1. C#: static关键字的作用(转)

    C#: static关键字的作用   static意思是静态,可以修饰类.字段.属性.方法 标记为static的就不用创建实例对象调用了,可以通过类名直接点出来 static三种用法: 1.用于变量前 ...

  2. java中static关键字的作用

    java中static关键字主要有两种作用: 第一:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 简单来说,在Java语言中,s ...

  3. 【转载】Static 关键字的作用

    原始日期:2016-07-16 17:53   一   普通的static关键字 1.  静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量.我们先举一个静态全局变 ...

  4. static 关键字的作用

    在C语言中,关键字static有三个明显的作用: 1)在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变(该变量存放在静态变量区). 2) 在模块内(但在函数体外),一个被声明为静态 ...

  5. static关键字的作用是什么?

    static的作用:常用来修饰变量. 全局变量被static修饰后,就称之为静态全局变量:局部变量被static修饰后,就称之为静态局部变量.统称为静态变量. 如果需要进一步解释下面的现象,可以了解i ...

  6. 转:C#: static关键字的作用

    tatic意思是静态,可以修饰类.字段.属性.方法 标记为static的就不用创建实例对象调用了,可以通过类名直接点出来 static三种用法: 1.用于变量前,表示每次重新使用该变量所在方法.类或自 ...

  7. Static关键字的作用及使用

    1.使用static声明属性 如果希望一个属性被所有对象共同拥有,可以将其声明为static类型. 声明为static类型的属性或方法,此属性或方法也被称为类方法,可以由类名直接调用. class P ...

  8. C#学习笔记随笔(1)----C#中static关键字的作用

    静态分配的,有两种情况: 1. 用在类里的属性.方法前面,这样的静态属性与方法不需要创建实例就能访问, 通过类名或对象名都能访问它,静态属性.方法只有“一份”:即如果一个类新建有N个 对象,这N 个对 ...

  9. static关键字的作用(修饰类、方法、变量、静态块)

    1. static修饰的类只能为内部类,普通类无法用static关键字修饰.static修饰的内部类相当于一个普通的类,访问方式为(new 外部类名.内部类的方法() ).如下所示: public c ...

  10. C语言中static关键字的作用

    static的作用(精辟分析) 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条. (1)先来介绍它的第一条也是最重要的一条:隐藏. 当我们同时编译多个文件时,所有未加sta ...

随机推荐

  1. QQ音乐API

    今天分享的是QQ音乐API 搜索歌曲API:http://s.music.qq.com/fcgi-bin/music_search_new_platform?t=0& amp;n={2}&am ...

  2. 【PL/SQL练习】自定义异常

    由用户自己定义1.定义异常名称,类型exception2.举出异常(raise excepttion)3.捕获异常 SQL> declare e_user_err exception; v_de ...

  3. multi2sim,booksim简介

    booksim是周期精确互连网络仿真器,设计用来配合"Principles and Practices of Interconnection Networks"课程教学,仿真器采用 ...

  4. MSP430F149学习之路——PWM信号

    代码一: /******************************* 程序功能:ACLK=32768Hz PWM波 T=512/32768 占空比75% ******************** ...

  5. CSS3之动画相关

    CSS3动画相关的属性:transform,transition,animation. 变形Transform 语法: transform: rotate | scale | skew | trans ...

  6. Vmware ESX5i 环境下部署Windows Storage Server 2008 R2

    ESX5i 环境下部署Windows Storage Server 2008 R2       Windows Storage Server 2008 这款产品微软早已发布,WSS2008是基于Win ...

  7. HTML5-新API选择器

    新的选择器document.querySelector("selector");selector:根据CSS选择器返回第一个匹配到的元素,如果没有匹配到,则返回null;支持: C ...

  8. CSS强制文本在一行内显示若有多余字符则使用省略号表示

    这篇文章主要介绍了强制文本在一行内显示,多余字符使用省略号,设置或检索是否使用一个省略标记(...)标示对象内文本的溢出.对应的脚本特性为textOverflow 设置或检索是否使用一个省略标记(.. ...

  9. 【C++面试】常考题复习:排序算法

    // Sort.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stdlib.h> /*********** ...

  10. vm虚拟机里的桥接模式下“复制物理网络连接状态”作用

    前提:真实主机可以上网 勾选,虚拟机也可以上网 不勾选,虚拟机不可以上网