static表示静态,是Java中的一个修饰符,可以修饰成员方法,成员变量
被static修饰的成员变量,叫做静态变量
被static修饰的成员方法,叫做静态方法
静态变量
- 特点:被该类所有对象共享
- 调用方式:类名调用(推荐)或者对象名调用
- 内存图
图来自黑马程序员--------》
所有对象共享,就用static修饰,静态变量不属于对象,而属于类,随着类的加载而加载,优先于对象存在
静态方法
- 特点:多用在测试类和工具类中,Javabean类中很少用
- 调用方式:类名调用(推荐)或者对象名调用
- 工具类:帮助我们做一些事情的,但是不描述任何事物的类
01)类名见名知意 CalMath 02)私有化构造方法 03)使用static修饰成员方法
- 工具类:帮助我们做一些事情的,但是不描述任何事物的类
- Javabean类:用来描述一类事物的类,比如student,Cat等
- 测试类:用来检测其他类是否书写正确,带有main方法的类,是程序的入口
工具类代码:
package a01staticdemo1;
import java.util.ArrayList;
public class StudentUtil {
public static int getMaxAge(ArrayList<Student1> list){
int maxAge = 0;
for(Student1 s : list){
if(s.getAge() > maxAge){
maxAge = s.getAge();
}
}
return maxAge;
}
}
注意事项:
- 静态方法只能访问静态变量和静态方法
- 非静态方法可以访问静态变量或者静态方法,也可以访问非静态的成员变量和非静态的成员方法
- 静态方法中没有this关键字
图来自黑马程序员!!!
重新认识main方法
- public:被JVM调用,访问权限足够大
- static:被JVM调用,不用创建对象,直接类名访问,因为main方法是静态的,所以测试类中其他方法也需要是静态的
- void:被JVM调用,不需要给JVM返回值
- main:一个通用的名称,虽然不是关键字,但是被JVM识别
- String[] args:以前使用它来接受键盘输入的数据,现在基本不用