:::: 개발 ::::/::: JAVA :::

객체지향 자바기초 (클래스,접근제어)

nayha 2018. 7. 17. 22:44

코드를 짜면서 기초 개념이 좀 부족한거 같아서 빠르게 한번 정리


speed  에 private  접근 제어 수식어를 지정했기 때문에 

mycar 인스턴스에서 직접 speed 변수 접근 하여 수정이 불가함

그러므로 200 넘는 값이나  마이너스 속도를 speed에 입력하는 실수를 미연에 막아준다

speed 값을 수정하려면 메서드를 꼭 이용해야 한다.


public class Car {
	
	//String color;
	//int speed;
	// private 직접 접근 불가
	private String color;
	private int speed =0;
	
	public void upSpeed(int value){
		if(speed + value > 200){
			speed = 200;
		}else{
			speed = speed + value;	
		}
		nowSpeed();
	}
	
	public void downSpeed(int value){
		if(speed - value < 0){
			speed = 0;
		}else{
			speed = speed - value;	
		}
		
		nowSpeed();
	}
	
	public void nowSpeed(){
		System.out.println("현재 속도는 == " + getSpeed());
	}
	
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
	public int getSpeed() {
		return speed;
	}
	public void setSpeed(int speed) {
		this.speed = speed;
	}

}


실행 코드

public class car_Sub {

	public static void main(String[] args) {
		Car mycar = new Car();
		
		//mycar.color= "빨강";
		//mycar.speed =0;
		//System.out.println("자동차 1 의 색상은 " + mycar.color + "이며 현재 속도는 " + mycar.speed + " KM 입니다");
		mycar.setColor("빨강");

		mycar.upSpeed(100); //100
		mycar.upSpeed(150); //250 
		
		mycar.downSpeed(50); //200 -50
		mycar.downSpeed(160); // 150 - 160
		//System.out.println("자동차 2 의 색상은 " + mycar.getColor() + "이며 현재 속도는 " + mycar.getSpeed() + " KM 입니다");
		
	}
	
}


실행 결과





반응형