Static

来源:互联网 发布:邹城农村淘宝网点查询 编辑:程序博客网 时间:2024/06/04 20:01

      在Java基础中,一定会被重点讲到的一个词“static”大家一定非常的熟悉了,static静态。

   被static关键字修饰的方法或者变量的特点不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。

静态域:

   将域定义成static叫静态域,如:

   class Student{

        private static int no =1;

        private int id;

        }

     每一个学生有自己的id域,这个类的所有实例将共享一个no域,创立1000个对象会有1000个id域,只有一个静态no域。即使没有创建对象,静态域也是存在的。

静态常量:

  static与final组合是一个静态的不可被更改的一个特殊的域,达到了定义一个常量的效果,如:

     public class Math{

     public static final double PI=3.141592653589;    

     }

静态方法:

   static方法一般称作静态方法,如:

   public static void getId(){

     return Id;

   }

注意:由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的。在static方法内部不能调用非静态方法。

静态的作用很大,因为它在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。

这里我们可以想到一个很特殊的static方法,就是public static void main(String args[]){}

main 方法是在程序一加载就被创建的,它也是静态的。

public class Test11 {
private static int i = 10;//static 字段
private static int j = 10;//static 字段
public  static void plus(){
j++;
}
     public  void add(){
i++;
     }
public static void main(String[] args) {//static方法
 System.out.print("i1:"+ Test11.i+",j1:"+Test11.j);
 Test11.plus();
 System.out.print(",i2:"+ Test11.i+",j2:"+Test11.j);
 Test11 t1=new Test11();
 t1.add();
 System.out.print(",i3:"+ t1.i+",j3:"+t1.j);
 Test11 t2=new Test11();
 System.out.print(",i4:"+ t2.i+",j4:"+t2.j);
}
}

我们在看看这段代码在控制台输出的结果:i1:10,j1:10,i2:10,j2:11,i3:11,j3:11,i4:11,j4:11 可以看出用类名就可以直接调用它的字段或方法,还可以看出当创建两个实体时,发现t2没有对i,j进行操作访问到的数仍是11,说明静态域是每个实体共用的,并不会每个实体各创建一个static域。

0 0
原创粉丝点击