Ms'Note

Interface 본문

IT/└▶Example Coding.JAVA

Interface

Jelly_B 2020. 8. 25. 16:23

기본 동작에 대한 기능 정의

  • 아이템 줍기 기능을 정의한다.
public interface Action {
    // 줍다
    public void pickup();
}

 

 

 

 

 

이동과 관련된 기능의 정의

  • 걷기, 뛰기, 점프를 정의한다.
public interface Move {
    // 걷다
    public void walk();
    
    // 뛰다
    public void run();
    
    // 점프
    public void jump();
}

 

 

 

 

 

전투와 관련된 기능의 정의

  • 공격, 방어 기능을 정의한다.
public interface Fight {
    // 공격
    public void attack();
    
    // 방어
    public void shield();
}

 

 

 

 

 

 

주인공 클래스 만들기

  • 주인공의 이름을 설정할 수 있도록 멤버변수와 생성자를 의미한다.
public class Charater implements Action, Move, Fight {
                       //   └> 주인공 클래스의 인터페이스 상속
                       //    - 주인공은 모든 동작을 수행해야 하므로 앞에서 정의한 인터페이스 상속받음     
    private String name;
	
    public Charater(String name) {
	    this.name = name;
    }
    // Override된 메서드의 기능 구현하기
    // - 공격과 관련된 기능을 다음과 같이 구현하였다.
    @Override
    public void attack() {
        System.out.println(this.name + ">>" + "공격");
    }
    
    @Override
    public void shield() {
        System.out.println(this.name + ">>" + "방어");
    }
    
    @Override
    public void walk() {
        System.out.println(this.name + ">>" + "걷다");
    }
    
    // 이동, 아이템 줍기 기능을 다음과 같이 구현하였다.
    @Override
    public void run() {
        System.out.println(this.name + ">>" + "뛰다");
    }
    
    @Override
    public void jump() {
        System.out.println(this.name + ">>" + "점프");
    }
    
    @Override
    public void pickup() {
        System.out.println(this.name + ">>" + "아이템을 줍다");
    }
}

 

 

 

 

 

 

몬스터 클래스의 구현

  • 앞서 진행한 과정과 동일하게 다음의 몬스터 클래스를 구현한다.
  • 몬스터의 경우 아이템을 줍는 기능은 필요 없기 때문에 Fight나 Move 인터페이스만 상속 받는다.
public class Monster implements Fight, Move {
    private String name;
    
    public Monster(String name) {
        this.name = name;
    }
    
    @Override
    public void walk() {
        System.out.println(this.name + ">>" + "걸어갑니다");
    }
    
    @Override
    public void run() {
        System.out.println(this.name + ">>" + "달려갑니다");
    }
    
    @Override
    public void jump() {
        System.out.println(this.name + ">>" + "점프합니다");
    }
    
    @Override
    public void attack() {
        System.out.println(this.name + ">>" + "공격합니다");
    }
    
    @Override
    public void shield() {
        System.out.println(this.name + ">>" + "방어합니다");
    }
}
    

 

 

 

 

 

 

주인공과 몬스터가 등장하는 프로그램

public class Main01 {
    public static void main(String[] args) {
        Charator ch = new Charator("주인공");
        
        ch.walk();
        ch.run();
        ch.attack();
        ch.shield();
        
        System.out.println("---------------");
        
        Monster mon = new Monster("악당");
        
        mon.walk();
        mon.run();
        mon.attack();
        mon.shield();
    }
}

 

 

출력 결과

 

'IT > └▶Example Coding.JAVA' 카테고리의 다른 글

static-2  (0) 2020.08.27
static-1  (0) 2020.08.25
Abstract  (0) 2020.08.24
Boxing-2  (0) 2020.08.23
Boxing-1  (0) 2020.08.23
Comments