目录
静态方法(static修饰)调用方法: 类名.方法名()
静态方法在类加载的时候直接加载到方法区,被分配地址
非静态方法(实例方法)调用方法: 对象名.方法名
非静态方法只要被调用时才会被分配地址
静态方法(类方法) vs 非静态方法(实例方法)
1.静态方法是随着类的加载而加载,实例方法是随着对象的创建加载(才有方法表的地址才能调实例方法)的。 2.静态方法的调用:类名.静态方法名 对象名.静态方法名 实例方法的调用:对象名.实例方法名 3.静态方法中只能调用类变量和类方法 实例方法中除了可以调用属性和实例方法外还可以调用类变量和类方法。 4.实例方法中可以使用this(默认就有this) 一般在实例方法形参和属性名一样时,在方法中会用this.属性名为属性,属性名(形参)作为形参传值 类方法中不能使用this(this表示当前对象)(因为类方法和实例方法的加载时机不同) 5.在静态方法中如果想要调用非静态方法只能创建对象再通过对象去调用
实例方法内存图:
实例方法是由实例对象调用的,每一个实例方法中默认有一个this变量用来记录当前对象(即调用该方法的实例对象)的首地址。