static:表示静态,是Java中的一个修饰符,可以修饰成员方法,成员变量。
学生对象共享同一个老师
public static String treachName;
类名调用,对象调用均可
被static修饰的成员变量,叫做静态变量 | 被static修饰的成员方法,叫做静态方法 |
---|---|
特点:被这个类所有对象共享 调用方式: 类名调用(推荐) 对象名调用 静态变量是随着类的加载而加载的,优先于对象出现的 ![]() |
特点:多用在测试类和工具类,javabean类中很少会用。 调用方式: 类名调用(推荐) 对象名调用 工具类:帮助我们做一些事情,但是不描述任何事物的类 1.类名见名知意 2.私有化构造方法 3.方法都定义为静态的 javabean类:用来描述一类事物的类。比如student,teacher. 测试类:用来坚持其他类是否书写正确,带有main方法的类,是程序的入口 |
那些属性可以被定义为静态——具有共享性质的
static的注意事项
1.静态方法只能访问静态变量和静态方法(和this有关)
2.非静态方法可以访问静态变量或静态方法,也可以访问非静态的成员变量和非静态的成员方法(和调用方式有关)
3.静态方法中没有this关键字
this:表示当前方法调用者的地址值,这个this是由虚拟机赋值的,方法内调用成员变量的时候就可以区分不太的对象
1 | public void show1(Student this){ //Student this在非静态方法中是隐藏的 |
为什么非静态方法设计没有this?
和某一个对象没有关系,共享思想。
静态(变量/方法)随着类的加载而加载,非静态(变量/方法)跟对象有关。
1.静态方法只能访问静态变量和静态方法(和this有关)
2.非静态方法可以访问静态变量或静态方法,也可以访问非静态的成员变量和非静态的成员方法(和调用方式有关)