0%

面向对象进阶-static静态变量

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
2
3
4
5
6
7
public void show1(Student this){ //Student this在非静态方法中是隐藏的
System.out.println(name+","+age+","+teachernaem)//this.name this.age this.teachername
//调用其他方法
show2//this.show2();
}
s1.show1/s2.show2

为什么非静态方法设计没有this?

​ 和某一个对象没有关系,共享思想。

静态(变量/方法)随着类的加载而加载,非静态(变量/方法)跟对象有关。

1.静态方法只能访问静态变量和静态方法(和this有关)

2.非静态方法可以访问静态变量或静态方法,也可以访问非静态的成员变量和非静态的成员方法(和调用方式有关)