일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 하이퍼레저패브릭
- html multimedia
- html id
- #CallByAddress
- mac terminal command
- #3차원배열
- #2차원배열
- #1차원배열
- #bubbleSort
- #binary
- #성적관리프로그램
- 토큰경제
- html plug-in
- html code
- html5 new tag
- #C++ has~a
- git flow
- #JAVASCRIPT
- hyperledger transaction
- relative path
- border-box
- html object
- #C++ 연산자함수오버로딩
- docker example
- #android activity
- html youtube
- html charset
- #다차원포인터
- #자바상속#자바이즈어#is~a
- html video
- Today
- Total
A sentimental robot
추상클래스를 이용한 스택,큐! 본문
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 |