1、static关键字
static 是静态的意思,可以修饰成员变量和成员方法
1. static 修饰成员变量表示该成员变量只在内存中只存储一份,可以被共享访问、修改。
访问格式:
类名. 静态成员方法(推荐)
对象. 静态成员方法(不被推荐)
static访问注意事项
静态方法只能访问静态的成员,不可以直接访问实例成员。
实例方法可以访问静态的成员,也可以访问实例成员。
静态方法中是不可以出现 this 关键字。
比如如下代码:
System.out.println(name); 这行会报错
System.out.println(onlinNumber); 这行可以正常执行。
public class Test {
/**
* 静态成员变量
*/
public static int onlinNumber=10;
/**
* 实例成员变量
*/
private String name;
/**
* 实例成员方法
*/
public void run(){
System.out.println(name+"run...");
}
/**
* 静态测试方法
* 1. 静态方法只能访问静态成员变量和静态成员方法,静态方法不能访问实例成员变量和实例成员方法
*/
public static void test(){
System.out.println(onlinNumber);
System.out.println(name);
}
}1.1、static修饰成员变量示例
static 静态调用示例
public static void main(String[] args) {
// 通过对象访问静态成员变量(不推荐)
User u1 = new User();
System.out.println(u1.onlieNumber);
// 通过类名访问静态成员变量(推荐)
System.out.println(User.onlieNumber);
}User 实体类
public class User {
public static int onlieNumber=161;
public String name;
public int age;
public static void main(String[] args) {
// 创建用户对象并初始化基本信息
User u1 = new User();
u1.name="张三";
u1.age=18;
// 输出用户的基本信息
System.out.println(u1.name);
System.out.println(u1.age);
System.out.println(u1.onlieNumber);
// 增加在线人数统计
u1.onlieNumber++;
System.out.println(onlieNumber);
}
}输出结果:

1.2、static修饰成员方法示例
public class Student {
private String name;
/**
* 获取两个整数中的最大值
* @param a 第一个整数
* @param b 第二个整数
* @return 返回a和b中较大的那个整数
*/
public static int getMax(int a, int b) {
return a > b ? a : b;
}
/**
* 实例方法:属于对象、只能用对象触发访问
*/
public void study() {
System.out.println(name + "正在学习");
}
public static void main(String[] args) {
//注意:同一个类中,访问静态方法,类名可以省略不写
System.out.println(getMax(10, 20));
//1、类名.静态成员方法
System.out.println(Student.getMax(10, 20));
//2、对象.静态成员方法
Student s = new Student();
s.name = "李四";
s.study();
}
}
评论