5.4.1 this 关键字

this 表示的是当前对象的引用 ,常见于 普通方法和构造方法中的使用

1.普通方法的使用

package com.caolh._5InitializationAcleanup;//: initialization/_5_7Leaf.java
// Simple use of the "this" keyword.

public class _5_7Leaf {
  int i = 0;
  _5_7Leaf increment() {
    i++;
    return this;  //返回的是当前对象的this 引用
  }
  void print() {
    System.out.println("i = " + i);
  }
  public static void main(String[] args) {
    _5_7Leaf x = new _5_7Leaf();
    x.increment().increment().increment().print();//链式调用,可以连续调用函数
  }
} /* Output:
i = 3
*///:~

2.构造函数的使用

     生成对象,就是要调用构造函数,构造函数 嵌套构造函数调用,一层一层向上找

    注意三点:1.构造函数嵌套调用 ,被嵌套的,必须在第一行

    2.被嵌套的构造函数不得调用1次以上

    3.普通方法不能调用构造函数

package com.caolh._5InitializationAcleanup;//: initialization/Flower.java
// Calling constructors with "this"

public class Flower {
  int petalCount = 0;
  String s = "initial value";
  Flower(int petals) {
    petalCount = petals;
    System.out.println("Constructor w/ int arg only, petalCount= "
      + petalCount);
  }
  Flower(String ss) {
    System.out.println("Constructor w/ String arg only, s = " + ss);
    s = ss;
  }
  Flower(String s, int petals) {
    //! System.out.println("String & int args");   //构造函数必须在第一行
    this(petals);
//!    this(s); // 构造函数不得调用1次以上
    this.s = s; // Another use of "this"
    System.out.println("String & int args");
  }
  Flower() {
    this("hi", 47);
    System.out.println("default constructor (no args)");
  }
  void printPetalCount() {
//! this(11); // 普通方法不得调用构造函数
    System.out.println("petalCount = " + petalCount + " s = "+ s);
  }
  public static void main(String[] args) {
    
    Flower x = new Flower();
    x.printPetalCount();
  }
} /* Output:
Constructor w/ int arg only, petalCount= 47
String & int args
default constructor (no args)
petalCount = 47 s = hi
*///:~

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值