JAVA静态static:

在定义一个类的时候,类中都会有相应的属性和方法,属性和方法的调用,都是通过new一个对象来调用的。那能不能不创建对象就可以调用到类的属性和方法呢?

可以的,我们可以通过static关键字来实现,static一般用来修饰类的属性和方法。

一、static的特点

 1. 被static修饰的属性或方法属于类,而不属于类的某个对象。

  static修饰的属性和方法属于类,也是各个对象共有的东西,一旦有一个对象对其属性值进行了改变,则其它对象中的static属性值都将改变

     public class Demo{

    private String name;

      static String num = 100;

  }

public class Test{

  public static void main(String[] args){

    Demo d1 = new Demo();

    d1.num = 200;

    Demo d2 = new Demo();

    用对象d2来调取静态属性num,结果d2.num为200

  }

}

2. 被static修饰的方法或属性可以并建议使用类名直接访问

类名.静态属性名

类名.静态方法(参数)

而通过new一个新对象来访问,会出现警告,不建议使用

对象名.静态属性----会出现警告,不建议

对象名.静态方法---会出现警告,不建议

public class Demo{

  static String name; //静态属性

  public static void method(){

    System.out.println("静态方法");

  }

}

public class Test{

  public static void main(String[] args){

    //直接用类名来调用

    Demo.name;

    Demo.method();

  }

}

3. 使用static注意事项

A: 静态内容是优于对象存在的,静态内容存在于静态区,不能使用this  super

public class Demo{

  public int num = 100;

  public static void method(){

    System.out.println(this.num); //这样用是不允许的

  }

}

B:同一个类中,静态成员只能访问静态成员

public class Demo{

  public int num = 100;

  public static int count = 200;

  public static void method(){

    System.out.println(num); //num为非静态属性,这样是错误的

    System.out.println(count); //这样用是OK的

  }

}

C: main方法为静态方法,仅仅为程序入口,它不属于任何一个对象,可以定义在任意类中。

4. 定义静态常量

开发中,我们想在类中定义一个静态常量,通常使用public static final来修饰,格式如下:

public static final 数据类型 变量名 = 值;

public static final String COMPANY_NAME = "baidu";

定义一个静态的方法:

public static void method(){

System.out.println("这是一个静态方法");

}

当我们想要调用静态的属性或方法时,可以不用创建对象,而直接用类名来调用

Demo.COMPANY_NAME

Demo.method();

注意:在接口interface中的每个成员,默认都使用public static final来修饰

所有接口中的属性和方法都是静态常量,由于接口没有构造方法,所以必段显式赋值,可以直接用接口名来访问

public interface Inter{

  public static final int COUNT = 10;

}

访问:

Inter.COUNT

5:什么时候使用static?

对于属性:因为static属于所有对象共有的,所以一般拥有共有值的属性可以定义为static

对于方法:

一、如果方法里用到的全是static属性,则可以定义为static,如果还用到了非静态属性,则不可定义为static.

二、如果方法里既没有用到静态属性,也没有用到非静态属性,也可以定义为static方法。

posted on 2018-06-03 15:15  adamal  阅读(197)  评论(0)    收藏  举报