static在一个类里面的作用
- static修饰成员变量
被static修饰的成员变量,就不属于对象了,他是这个类所有对象共享的。可以直接用public class Student{ private String name;//姓名 private int age;//年龄 static String room;//所在教室 public Student(){} public Student(String name,int age){ this.name=name; this.age=age; } public void setName(String name){ this.name=name; } public String getName(){ return name; } public void setAge(int age){ this.age=age; } pulic int getAge(){ return age; } }
类名称.成员变量名称=
来修改成员变量的,并且修改完了所有对象都可以直接使用。public static void main(String[] args){ Student.room="1号教室";//直接用类名称.成员变量名赋值 Student one=new Student("迪丽热巴",18);//创建对象one并给成员变量赋值 Student two=new Student("欧阳娜娜",19);//创建对象two并给成员变量赋值 //我们来输出打印看一下 System.out.println(one.getName+one.getAge+","+Student.room); System.out.println(two.getName+two.getAge+","+Student.room); //迪丽热巴18,1号教室 //欧阳娜娜19,1号教室 }
这里面的Student.room其实也可以写成one.room,但是最好不要这样写。直接用类名称点儿更加直观,可以看出这个成员变量是被static修饰过的。
- 为什么要用static来修饰一个成员变量呢?
就还拿上面的类举个例子,一个班级里面有好多的学生,他们有各自的名字和年龄,但是他们都在一个班级里面。姓名和年龄用private
修饰没问题。
但是他们可是在一个班的呀,假如说有一天他们换教室上课了,怎么半?如果还是用private
修饰的话,就需要逐个修改。
如果使用static
修饰的过就可以直接用类名称点儿,来访问这个成员变量了是不是方便了很多呢?
- static修饰成员方法
这种方法叫做静态方法
,也叫类方法
如果一个成员方法被static修饰了,那么就可以直接使用类名称点儿方法来调用了。否则就需要先创建对象,再用对象名点儿方法名调用方法。
这个就跟成员变量的用法一样。注意:静态方法不可以直接调用同类中的,非静态变量和给静态方法。
- 静态代码块儿
直接在一个类里面写static{代码块;}
这样的代码块儿就是静态代码块儿。 - 有什么用呢
当第一次执行到本类的时候,比如说我new了一个新的对象,那么在创建对象之前他就会先执行,唯一的一次。
一般静态代码块儿都用来,一次性的对成员变量初始化。