玩命加载中 . . .

this指向及static方法详解(06)


this指向及static方法详解

语法格式:

  1. this第一种语法:
 public People{
     String age;
     public setAge(String age) {
         this.age=age;    // this这里指的的是调用当前对象的内存地址;
     }
 }

this第二种用法:

public class Cat {
    private int a;
    private int b;
    Cat() {
        System.out.println("调用了无参Cat构造函数");
    }
    Cat(int a,int b) {
        this();
        this.a=a;
        this.b=b;
    }
}
public static void main(String[] args) {
    Cat cat = new Cat(10,10); // -----------> 调用了无参Cat构造函数
}
    

关于java语言当中的this关键字

  • this是一个关键字,翻译为:这个
  • this是一个引用
  • this是一个变量
  • this变量中保存了内存地址指向了自身
  • this存储在JVM堆内存java对象内部。(详见内存图)

this内存地址

关于this详解:

  • 创建100个java对象,每一个对象都有this,也就说有100个不同的this
  • this可以出现在实例方法当中,this指向当前正在执行这个动作的对象。(this代表当前对象)
  • this在多数情况下都是可以省略不写的
  • this不能使用在带有static的方法当中

关于this()详解:

  • 只能在构造方法中使用this调用其他构造方法,不能在成员方法中使用
  • 在构造方法中,使用this调用构造方法的语句必须位居第一行,且只能出现一次,否则会编译错误
  • 不能在两个构造方法中相互调用,否则会编译错误

static方法详解

带static与不带static方法的区别:

  • 带static调用区别:类名.方式调用

  • 不带static调用区别:引用.方式调用

  • 总结:不带static是一个实例方法,带static是一个静态方法

什么时候使用static什么时候不用?

  • 顾客购物的行为,每一个顾客购物最终的购买的东西和结账的总金额的结果是不一样的 所以购物这个行为是属于对象级别的行为 由于每一个对象在执行购物这个动作的时候最终结果不同,所以购物这个动作必须有”对象”的参与。

总结:

  1. 判断是否用static来创建方法的依据:当一个行为/动作执行的过程当中是需要对象参与的,那么这个方法一定要定义为实例方法”,不要带static关键字

  2. 不带static是专门为对象级别行为使用的

  3. 带static是一个普通方法使用

  4. 带static的方法都需要创建对象才能调用实例方法和成员方法

  5. 再次重申:

    带static的类名.方法名();

    不带static的引用.方法名();


文章作者: 小靳同学
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小靳同学 !
评论
 上一篇
构造方法(05) 构造方法(05)
构造方法构造方法 语法格式: public 类名(形参) { this.实例变量名=形参; } 作用: 构造函数可以在创建对象
2021-06-08
下一篇 
static静态变量(07) static静态变量(07)
static静态变量static静态变量 语法格式 static 变量类型 变量名 = 变量值; 什么时候成员变量声明为实例变量呢?
2021-06-08
  目录