👨‍💻Programming/JAVA & C언어 예제

JAVA (자바) - 상속과 메소드 오버라이딩을 이용한 예제 만들기 - 스타크래프트 유닛 x,y좌표 이동시키기

코너(Corner) 2020. 11. 19.
반응형

JAVA (자바) - 상속과 메소드 오버라이딩을 이용한 예제 만들기 -
 스타크래프트 유닛 x,y좌표 이동시키기

 

 

 


출력문


소스 코드

package ver1;

public class Unit {
	String name;
	int x,y,speed;
	
	void move(int x,int y) {
		this.x+=x; this.y+=y;
	System.out.println(this.name+"이(가) ["+this.x+","+this.y+"]으로 이동 (속도:"+this.speed+"km/h)");
	
	}
	void stop() {
		System.out.println(this.name+"이(가) ["+this.x+","+this.y+"]에서 정지!");
	}
	
	public static void main(String[] args) {
		Marine m = new Marine();
		Tank t = new Tank();
		Dropship d = new Dropship();
		
		m.move(10,20);
		m.move(10,-10);
		m.move(1, 1);
		m.stop();
		m.stimPack();
		t.move(100, 200);
		t.move(-50, +50);
		t.stop();
		t.changeMode();
		t.changeMode();
		
		d.move(1000, 2000);
		d.move(-100, -500);
		d.stop();
		d.load(m.name);
		d.load(t.name);
		d.unload(m.name);
		d.unload(m.name);
		
	}

}

 

package ver1;

public class Tank extends Unit{
	int speed = 20;
	String name = "시즈탱크";
	boolean mode = false;
	@Override
	void move(int x, int y) {
		this.x+=x; this.y+=y;
		System.out.println(this.name+"이(가) ["+this.x+","+this.y+"]으로 이동 (속도:"+this.speed+"km/h)");
	}
	@Override
	void stop() {
		System.out.println(this.name+"이(가) ["+this.x+","+this.y+"]에서 정지!");
	}
	boolean changeMode() {
		if(this.mode == false ) {
			System.out.println(this.name+"이(가) 이동모드로 변경");
			this.mode = true;
		} else {
			System.out.print("시즈모드 : ");
			this.stop();
			System.out.println(this.name+"이(가) 공격모드를 변경");
			this.mode = false;
		}
		return this.mode;
	}
	
}

 

package ver1;

public class Marine extends Unit{
	String name = "마린";
	int speed = 10;
	@Override
	void move(int x, int y) {
		this.x+=x; this.y+=y;
		System.out.println(this.name+"이(가) ["+this.x+","+this.y+"]으로 이동 (속도:"+this.speed+"km/h)");
	}
	@Override
	void stop() {
		System.out.println(this.name+"이(가) ["+this.x+","+this.y+"]에서 정지!");
	}
	void stimPack() {
		System.out.println(this.name+"이(가) 스팀팩을 사용");
	}
}

 

package ver1;

public class Dropship extends Unit {
	String name = "드랍쉽";
	int speed = 80;
	@Override
	void move(int x, int y) {
		this.x+=x; this.y+=y;
		System.out.println(this.name+"이(가) ["+this.x+","+this.y+"]으로 이동 (속도:"+this.speed+"km/h)");
	}
	@Override
	void stop() {
		System.out.println(this.name+"이(가) ["+this.x+","+this.y+"]에서 정지!");
	}
	// 탑승
	void load(String name) {
		System.out.println("드랍쉽이 "+name+"을 ["+this.x+","+this.y+"]에서 탑승.");
	}
	// 하차
	void unload (String name) {
		System.out.println("드랍쉽이 "+name+"을 ["+this.x+","+this.y+"]에서 하차.");
	}
	

}

 

반응형

댓글