第二十二课 面向对象的基本概念(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关键字必须放在当前构造方法的第一行。
第二十二课 面向对象的基本概念(7)
最新推荐文章于 2023-03-28 10:12:11 发布