練習問題2.13

変更許可するフィールド:speed,angle,owner
変更を許可すべきでないフィールド:VehicleID

public class Vehicle {
	private double speed;					//速度
	private double angle;					//方向
	private String owner;					//所有
	private long VehicleID;					//車単位のID
	private static long NextVehicleID=0;	//次の乗り物の識別番号

	//コンストラクタ
	Vehicle(){
		VehicleID = NextVehicleID;
		NextVehicleID++;
	}
	
	//コンストラクタ
	Vehicle(String owner){
		this();
		this.owner = owner;
	}

	public void print(){
		System.out.println("ID : " + VehicleID);
		System.out.println("速度 : " + speed);
		System.out.println("方向 : " + angle);
		System.out.println("所有者 : " + owner);
	}

	public static long getMaxID(){
		return NextVehicleID - 1;
	}
	
	public String toString(){
		String vehicle = 
			"ID : " + VehicleID + "\n" +
			"速度 : " + speed + "\n" +
			"方向 : " + angle + "\n" +
			"所有者 : " + owner + "\n";
		return vehicle;
	}
	
	public double getSpeed(){
		return speed;
	}
	
	public double angle(){
		return angle;
	}
	
	public String owner(){
		return owner;
	}
	
	public static void main(String args[]){
		Vehicle car1 = new Vehicle("Taro");
		car1.speed = 60.0;
		car1.angle = Math.PI * 1/6;
		
		System.out.println(car1);
	}
}