概述
关于 static
关键字的使用,它可以用来修饰的成员变量和成员方法,被static修饰的成员是属于类的是放在静态区中,没有static修饰的成员变量和方法则是属于对象的。
定义格式和应用
static是静态的意思。 static可以修饰成员变量或者修饰方法
定义格式
修饰符 static 数据类型 变量名 = 初始值;
举例
public class Student {
public static String schoolName = "传智播客"; // 属于类,只有一份。
// .....
}
实例变量及其访问
无static修饰的成员变量叫实例变量。
需要注意的是:实例成员变量属于每个对象,必须创建类的对象才可以访问。
格式:对象.实例成员变量
静态变量:
共享的变量即可以用static修饰
静态成员变量的访问:
格式:类名.静态方法
public static void main(String[] args){
Student.study();
}
静态方法及其访问
有static修饰成员方法,说明这个成员方法是属于类的,这个成员方法称为类方法或者静态方法**。 直接用 类名访问即可。因为类只有一个,所以静态方法在内存区域中也只存在一份。所有的对象都可以共享这个方法。
与静态成员变量一样,静态方法也是直接通过类名.方法名称即可访问。
举例
public class Student{
public static String schoolName = "传智播客"; // 属于类,只有一份。
// .....
public static void study(){
System.out.println("我们都在黑马程序员学习");
}
}
实例方法及其访问
无static修饰的成员方法属于每个对象的,这个成员方法也叫做实例方法。
需要注意的是:实例方法是属于每个对象,必须创建类的对象才可以访问。
格式:对象.实例方法
示例:
public class Student {
// 实例变量
private String name ;
// 2.方法:行为
// 无 static修饰,实例方法。属于每个对象,必须创建对象调用
public void run(){
System.out.println("学生可以跑步");
}
// 无 static修饰,实例方法
public void sleep(){
System.out.println("学生睡觉");
}
public static void study(){
}
}
Static 注意事项
- 静态方法中,只能访问静态变量和静态方法
- 非静态方法可以访问所有
- 静态方法中没有关键字this
Static小结
被static修饰的成员变量叫静态变量
特点:被该类所有对象共享,跟对象无关随着类的加载而加载,优先于对象存在
调用方式:类名调用>对象名调用
被static修饰的成员方法叫静态方法
特点:多用在测试类和工具类中,javabean很少
调用方式同上
重新认识main方法
public static void main(String[]args){}
public:被JVM调用,访问权限足够大
static:被JVM调用,不用创建对象,直接类名访问;因为main方法是静态的,所以测试类中其他方法也是静态的
void:被JVM调用,不需要给JVM返回值
String[]args:以前用来接收数据,现在没用