반응형

상속은

기존 클래스가 가지고 있는것 물려받아 새로운 클래스를 만드는것


class Car3 {

String color;

int speed;

void upSpeed(int value){

speed = speed + value;

}

void downSpeed(int value){

speed = speed -value;

}


}


//car3 상속

class Sedan extends Car3 {

int 시트개수;


public int get시트개수() {

return 시트개수;

}

}


//car3 상속

class Truck extends Car3 {

int 적재;


public int get적재() {

return 적재;

}

}



구현


public class car_sub3 {

public static void main(String[] args) {

Sedan sedan = new Sedan();

Truck truck = new Truck();

sedan.upSpeed(300);

truck.upSpeed(100);

System.out.println("승용차 속도는 " + sedan.speed + " 좌석수는" + sedan.get시트개수() + "개입니다.");

System.out.println("트럭 속도는 " + truck.speed +   " 적재량은" + truck.get적재() + "톤 입니다.");

}


}


출력 결과






반응형
반응형

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


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 입니다");
		
	}
	
}


실행 결과





반응형

+ Recent posts