A sentimental robot

추상클래스를 이용한 스택,큐! 본문

Java

추상클래스를 이용한 스택,큐!

GOD03219 2017. 12. 29. 11:10

public abstract class Memory {
 protected int[] array;      // protected 접근지정자는 상속받은 자식들만 쓸 수 있음
 protected int top;
 
 public Memory(){
  array=new int[10];
  top=0;
 }

 public void push(int num){
  array[top++]=num;
 }

 public abstract int pop();   // 추상 메소드

}


 


 


public class MyStack extends Memory {


 @Override
 public int pop() {
  return array[--top];

 }

}




 

public class MyQueue extends Memory {

 private int front;
 public MyQueue (){
  front=0;
 }

 @Override
 public int pop() {
  return array[front++];
 
  
 }
 

 
}

 

 


 


import java.util.Scanner;

public class MainTest {

 public static void main(String[] args) {

  Scanner sc = new Scanner(System.in);
  int num;
 
  Memory mem;       // 부모의 레퍼런스
  MyStack ms = new MyStack();
  MyQueue mq = new MyQueue();

  
  
  do{
   System.out.print("1.stack\n2.queue\n");
   if(sc.nextInt() == 1){
    mem = ms;   //스택
   }else{
    mem = mq;    // 큐
   }
  
   System.out.print("1.push\n2.pop\n");
   num = sc.nextInt();
  
   if(num == 1){
    System.out.print("데이터를 입력하세요 : ");
    mem.push(sc.nextInt()); 
   }
   else{
    System.out.println("꺼낸 값 : "+mem.pop());
   }


   
   
  }while(true);
 
 }

}
 

'Java' 카테고리의 다른 글

Inner class  (0) 2017.12.29
Interface  (0) 2017.12.29
Abstract class,추상클래스에 대해서  (0) 2017.12.29
Overridding, 재정의  (0) 2017.12.29
Inheritance exercise(2)  (0) 2017.12.29