在构造函数中使用getter初始化变量

问题描述 投票:0回答:1

如果我有一个类Car,它的getter是这样的。

public int getDirection(){
   return this.direction;
}

和一个扩展了car的Subclass

public class Ecar extends Car{
}

如果我像下面的例子那样初始化值的方向,是否会有不同?

1)


int direction; 
public Ecar(){ 
this.direction = getDirection();
}

2)


public Ecar(){...}
int direction = getDirection();

3)


int direction = super.getDirection(); 

4)


int direction = this.getDirection();

java parameters constructor getter
1个回答
0
投票

所有的方案都给出相同的结果。

我已经使用了一个样本值为10的方向。

public class Car {
    int direction=10;
    public int getDirection(){
        return this.direction;
    }

    public static void main(String[] args) {
        Ecar e = new Ecar();
        e.print();
    }
}

class Ecar extends Car{

//    Case 1
//    int direction;
//    public Ecar(){
//        this.direction = getDirection();
//    }

//    case 2
//    int direction = this.getDirection();

//    case3
//    int direction = super.getDirection();

//    case 4
//    int direction = this.getDirection();

    public void print(){
        System.out.println(this.direction);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.