## 关于static关键字的用法
```
/*
一旦用了static关键字,这样的内容不在属于对象自己,而是属于类的
并且可以直接使用类名称进行调用,若没有只能先创建对象,然后通过对象调用
*/
```
**先定义一个类**
包含有static关键字修饰的成员变量和成员方法以及没有用static 关键字修饰的成员变量和成员方法比较他们有什么不同;
```java
//Animal类仅定义一些成员变量和成员方法
public class Animal {
String variety ;
static int old ;
boolean three;
public void heavior (){
System.out.println("觅食、繁衍、休息");
}
public static void nomdie(int a){
if(a==0) {System.out.println("落叶归根");}
}
}
```
创建另一个类来调用 上述类的成员变量和成员方法,寻找static关键字的特点:
```java
public class Static00 {
public static void main(String[] args){
Animal dog = new Animal();
dog.three = true;
dog.variety = "犬科";
dog.old = 7;
Animal cat = new Animal();
System.out.println(dog.three+","+dog.variety+","+dog.old);//true , 犬科, 7
System.out.println(cat.three+","+cat.variety+","+cat.old);//false,null(默认) 7
//凡是本类的数据都共享同一份数据
System.out.println(Animal.old);//7
//直接用类名调用成员变量
Animal.nomdie(0);
dog.nomdie(2);
// Animal.heavior; 非static成员方法,不能通过类调用
dog.heavior();
}
}
```
static关键字声明以后,数据为同一类共享,可通过类直接调用。