Categories: Java 언어Korean

Java 총 정리[54. class 배열 문제]

class 배열 문제

이전 걸음에서 class 배열 즉 참조 자료형 배열을 배웠습니다. 그럼 이제 직접 활용하고 적용을 해야 한다는 생각을 하실 겁니다. 그래서 이번 걸음에는 class 배열을 좀 더 활용을 해볼 수 있는 시간을 가지도록 하겠습니다.

계속 말씀을 드리고 있는 것이지만 활용하고 적응을 하려면 당연히 문제를 통해서 이해를 하고 프로그램을 구현을 하는 것이 제일 좋은 방법이라고 생각을 합니다. 이번 걸음에서 class 배열 문제로 통해서 한번 내용을 숙지하고 이해를 할 수 있는 시간을 가지면 좋을 것 같습니다.

class 배열 문제는 동물 먹이 이동하기 문제입니다. class 배열로 동물들을 만들고 각각 동물에 맞는 먹이를 가지고 있습니다. 그 이후에 동물들의 현 위치에서 먹이를 옆 동물에게 이동을 하는 프로그램을 구현을 하면 됩니다.  문제를 잘 이해를 하고 풀어본다면 class 배열 뿐만 아니라 전체적인 실력 향상을 할 수 있습니다.

class 배열 동물 먹이 이동 문제

문제를 보면 동물이라는 class를 선언하고 동물에 각자 타입과 먹이를 가지고 있습니다. 그렇게 해서 원숭이, 개, 닭, 돼지가 있고 각각 먹이는 바나나, 뼈다귀, 모이, 여물을 가지고 있습니다. 이 각자의 먹이를 옆에 있는 동물로 넘겨주면 됩니다. 이때 먹이 이동 전에 동물과 먹이를 출력하고 이동 후에 동물과 먹이를 출력을 하면 됩니다. 

※ class 배열을 꼭 사용을 해서 구현을 해야 합니다.

참고

class 연습을 위해서 파일명과 같은 class 위에 문제에 필요한 class를 만들어서 구현하세요.

위 문제를 파일명과 같은 Class에 Main문에 소스를 구현해 주세요.

실행 관련 걸음 : 다섯 걸음, 여섯걸음

참고해주세요


class Animal{
 String type;
 String food;
 
 Animal(String type, String food){
  this.type = type;
  this.food = food;
 }
 
 void print() {
  System.out.println(type+" -> "+food);
 }
 
}

public class Q1 {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String[] at = {"원숭이","개","닭","돼지"};
  String[] ft = {"바나나","뼈다귀","모이","여물"};
  
  Animal[] ani = new Animal[4];
  
  for(int i = 0;i<ani.length;i++) {
   ani[i] = new Animal(at[i], ft[i]);
   ani[i].print();
  }
  
  String temp = ani[3].food;
  
  for(int i = 3;i>0;i--) {
   ani[i].food = ani[i-1].food;
  }
  
  ani[0].food = temp;
  temp = null;
  
  for(int i = 0;i<ani.length;i++) {
   ani[i].print();
  }
  
 }

}


        




위의 설명처럼 Animal class를 만들고 그 class를 이용해서 class 배열을 만들고 각각 먹이까지 세팅을 해줍니다. 그 이후에 간단한 로직을 통해서 먹이를 하나씩 그 다음 동물로 보내고 마지막 동물의 먹이인 여물을 원숭이에게 넘겨주면 프로그램이 완성이 됩니다.

결과 화면


Dolphin

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

5개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

5개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

5개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

6개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

6개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

6개월 ago

This website uses cookies.