第二十二课 面向对象的基本概念(7)

第二十二课  面向对象的基本概念(7)
一、        构造方法:与类名相同,一旦定义了构造方法,在对象被创建时就可自动调用,它完成对实例变量进行初始化。与一般方法不同的是,构造方法没有返回类型,它的返回类型是隐式的,就是类型本身。
比如:
public class Car{
public int gearNum;
public int engine;
Car(){
  this.gearNum=0;
  this.engine=0.0;
}
Car(int x,float y){
  this.gearNum=x;
  this.engine=y;
}
}
在上面的例子中我们定义了两个同名的构造函数,这就是“构造函数的重载”,这个我们以后还要继续讲。
如果我们在定义一个类时,没有定义和类同名的构造函数,JAVA内部也会生成一个默认的构造函数,但不进行任何操作。
二、        this和super的使用
我们来看一个例子:
public class Leaf{
  private int i=0;
  Leaf increment(){
  i++;
    return this;
  }
  void print(){
    system.out.println(“I=”+i);
  }
  public static void main (string args[]){
    Leaf x=new Leaf();
    x.increment().increment().increment().print();
  }
}
在上面的例子中,this返回的是当前对象的地址,所以可以方便地对同一个对象执行多项操作。
而super和this有着不同的概念,如果子类的对象想使用它父类中的同名属性和方法时,就可以使用了。
如下例:
public class WordTest{
  int a;
  WordTest(int a){
    this.a=a;
  }
  WordTest(){
    this(5);
  }
}
public class SentenceTest extends WordTest{
  int b;
  SentenceTest{
    super(3);
    this.b=b;
  }
}
在以上程序段中其实this(5)中的this就代表了本类中的第一个构造方法,而在super(3)中调用了父类的构造方法。另外要注意的是super关键字必须放在当前构造方法的第一行。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值