본문 바로가기
프로그래밍/② JAVA(자바) 프로젝트

② JAVA(자바) 프로젝트-19 인터페이스를 이용한 구현(동물,사자) == Implementation using interface (animal, lion)

by ronul 2017. 5. 16.
300x250

 

그동안 한 프로젝트에 많은 내용을 집어넣었지만 인터페이스를 이용해 기능들을 집어 넣어 주는 프로그램을 만들었습니다.

코드입니다.

 Main.java

package Animal;

import java.util.Scanner;

public class Main extends 동물 {
 public static void show() {
  System.out.println("#########");
  System.out.println("1 : 사자 생성하기(처음 사자는 야생으로 생성됩니다)");
  System.out.println("2 : 탈출하기");
  System.out.println("3 : 묘기부리기");
  System.out.println("4 : 사냥하기");
  System.out.println("5 : 잡히기");
  System.out.println("6 : 먹기");
  System.out.println("7 : 자기");
  System.out.println("8 : 종료");
  System.out.println("입력 : ");
 }

 public static void main(String[] args) {
  int input = 0;
  String name = null;
  int opper = 1;

  while (input != 8) {
   show();
   Scanner s = new Scanner(System.in);
   input = s.nextInt();

   switch (input) {
   case (1):
    if (name != null) {
     System.out.println("이미 사자가 있습니다 다른걸 선택하세요");
     break;
    } else {
     System.out.println("사자 이름을 입력하세요:");
     Scanner r = new Scanner(System.in);
     name = r.next();
     사자 lion = new 사자(name);
     System.out.println(name + "(이)가 생성됬습니다.");
     break;
    }
   case (2)://탈출하기
    if (name == null) {
     System.out.println("사자를 생성하세요");
     break;
    } else {
     if (opper == 1) {
      System.out.println(name + "은(는) 이미 숲을 떠돌고 있어요.");
      break;
     } else {
      사자 f = new 사자(name);
      f.탈출하기();
      opper=1;
      break;
     }
    }
   case (3):// 묘기부리기
    if (name == null) {
     System.out.println("사자를 생성하세요");
     break;
    } else {
     if (opper == 1) {
      System.out.println(name + "은(는) 숲을 떠돌다녀서 묘기를 부릴 수 없어요.");
      break;
     } else {
      사자 f = new 사자(name);
      f.묘기부리기();
      break;
     }
    }
   case (4):// 사냥하기
    if (name == null) {
     System.out.println("사자를 생성하세요");
     break;
    } else {
     if (opper == 1) {
      사자 f = new 사자(name);
      f.사냥하기();
      break;
     } else {
      System.out.println(name + "은(는) 동물원에서 사냥을 못합니다.");
      break;
     }
    }
   case (5):// 잡히기
    if (name == null) {
     System.out.println("사자를 생성하세요");
     break;
    } else {
     if (opper == 1) {
      사자 f = new 사자(name);
      f.잡히기();
      opper = 2;
      break;
     } else {
      System.out.println("이미 잡혀서 동물원에 있습니다");
      break;
     }
    }
   case (6):// 먹기
    if (name == null) {
     System.out.println("사자를 생성하세요");
     break;
    } else {
     사자 f = new 사자(name);
     f.먹기();
     break;
    }
   case (7):// 자기
    if (name == null) {
     System.out.println("사자를 생성하세요");
     break;
    } else {
     사자 f = new 사자(name);
     f.자기();
     break;
    }

   }

  }
 }
}


 

 

 

 

 

동물.java 

 package Animal;

public class 동물 implements 야생동물기능, 동물원동물기능 {
  
 public void 먹기(){
     System.out.println("사자가 먹이를 먹어요");
    }

    public void 자기(){
     System.out.println("사자가 잠을 자요");
    }


 @Override
 public void 묘기부리기() {
  // TODO Auto-generated method stub
  System.out.println("묘기를 부리고 있습니다.");
  
 }

 @Override
 public void 탈출하기() {
  // TODO Auto-generated method stub
  System.out.println("탈출했습니다.");
  
 }

 @Override
 public void 사냥하기() {
  // TODO Auto-generated method stub
  System.out.println("사냥중입니다");
  
 }

 @Override
 public void 잡히기() {
  // TODO Auto-generated method stub
  System.out.println("잡혔습니다.");
  
 }


}


동물원동물기능.java 

package Animal;

public interface 동물원동물기능 {

    public void 묘기부리기();
   

    public void 탈출하기();
   

}


사자.java 

package Animal;

public class 사자 extends 동물 {
 
 public String name;
 private int age;
 public int opper=1;
 
 public 사자(String 이름)
 {
  this.name = 이름;
 }
 
 
 public void 묘기부리기() {
  // TODO Auto-generated method stub
  System.out.println(this.name+"(이)가  묘기를 부리고 있습니다.");
  
 }

 
 public void 탈출하기() {
  // TODO Auto-generated method stub
  System.out.println(this.name+"(이)가  탈출했습니다.");
  
 }

 
 public void 사냥하기() {
  // TODO Auto-generated method stub
  System.out.println(this.name+"(이)가 사냥중입니다");
  
 }

 
 public void 잡히기() {
  // TODO Auto-generated method stub
  System.out.println(this.name+"(이)가 잡혔습니다.");
  
 }
 
  public void 먹기(){
      System.out.println(this.name+"(이)가 먹이를 먹어요");
     }
  public void 자기() {
   // TODO Auto-generated method stub
   System.out.println(this.name+"(이)가  자요.");
   
  }
}


야생동물기능.java 

package Animal;

public interface 야생동물기능 {
 
    public void 사냥하기();

    public void 잡히기();

}


 

 

 

300x250

댓글