class User{
String userName;
String password;
static int userCount;
public void introduce(){
System.out.println(userName + ":"+password);
}
}
class TestUser{
public static void main(String [] args){
User user = new User();
User.userCount++;
User user1 = new User();
User.userCount++;
}
}
1.修饰在属性上
加static 表示为类的属性: 存放在JVM的数据共享区
不加static 表示为对象的属性
类属性访问:
类名.类属性名()
栈 堆
类属性的生命周期
user.class加载到jvm时类属性就产生了。
Jvm消失时候类属性就消失了
2.修饰在方法上
加static 表示为类的方法
调用方式
类名.类方法(); //推荐使用
对象名.类方法();
静态方法只能调用静态变量,不能使用对象属性
class Teacher{
class name;
int age;
String lesson;
static int teacherCount;
public void teach(){
System.out.println(this.name + "is teaching");
}
//直接调用静态类属性,不用this
public static void sleep(){
System.out.println(teachCount + "个老师在睡觉");
}
}
一般用于工具类, 作为公用方法,供调用
class ArrayUtils{
public static void sort(int[] arr){
// Bubble sort
}
}