2014-06-12 4 views
-1

저는 책에서 배우는 자바 초보자이며 FuelGauge와 Odometer 클래스가 필요한 질문을 보았습니다. .?Java 객체를 포함하는 객체

public class Odometer { 

public double mileage; 
public double gallonsPerMile; 

public Odometer() { 
    mileage=0; 

} 

public Odometer(double miles) { 
    this.mileage=miles; 

} 


public void mileagePlusOne() { 
    mileage+=1; 
} 

} 

내가 생성자에 무언가를 추가 할하지만 ':이 가야합니까 어떻게 그런 다음 유형의 주행 거리계의 모든 객체 유형의 FuelGauge의 객체를 포함해야한다 "라고 여기에 내가 주행을 위해 무엇을의 붙어 조금 있어요.

답변

0

private FuelGauge fuelGauge 

클래스 파일 객체가 내장 된 템플릿을 지정하는 주행 클래스 내부의 변수를 선언합니다. 새로운를 생성함으로써, 주행 거리계에 FuelGage를 추가하려면 객체 new Odometer()을 사용하면 cl의 새 인스턴스를 인스턴스화합니다. 나귀.

클래스 내에 선언 된 변수는 "정적"으로 선언되지 않는 한 개별 인스턴스에 고유합니다. 예를 들어, 인스턴스화 된 각 주행 거리계에는 자체 마일리지 변수가 있습니다.

위와 같이 새 연료 게이지를 선언하면 각 주행 거리계에 연료 게이지가 생깁니다. 다른 클래스가 내부 상태를 수정하지 못하도록 클래스의 각 변수를 private로 선언해야합니다. 당신은 당신이 fuelGauge = new FuelGauge()를 포함 할 수 있습니다, 당신의 생성자에서 대신 (게터/세터)의 값을 수정 공공 기능

public void setFuelGauge(fuelGauge) { 
    this.fuelGauge = fuelGauge; 
} 

public FuelGauge getFuelGauge() { 
    return fuelGauge; 
} 

를 사용해야합니다. 당신은 또한 당신이 miles을 설정 생성자에서 다음 변수 public FuelGauge gauge;

을 추가 gallonspermile 연료 게이지 당신이 당신의 변수가

public Odometer(Fuelgauge fuelGauge) { 
    mileage = 0; 
    this.fuelGauge = fuelGauge; 
} 
0

mileage 받아들이는 생성자를 오버로드와 수, 당신은 guage = new FuelGuage();

설정
0

의미는

public class Odometer { 

private FuelGauge fuelGauge; 

public double mileage; 
public double gallonsPerMile; 

public Odometer() { 
    mileage=0; 
    this.fuelGauge = new FuelGauge(); 

} 

public Odometer(double miles, FuelGuage fuelGauge) { 
    this.mileage=miles; 
    this.fuelGauge = fuelGauge; 
} 
0

수업 시간을 다음과 같이 설정하십시오 :

public class Odometer { 

public double mileage; 
public double gallonsPerMile; 
public FuelGauge gauge; // Add this to declare the instance of FuelGauge 

public Odometer() { 
    mileage=0; 
    gauge = new FuelGauge(); // Instantiate gauge, which you can now use as wanted 

} 

public Odometer(double miles) { 
    this.mileage=miles; 

} 


public void mileagePlusOne() { 
    mileage+=1; 
} 

} 
관련 문제