추상화와 위임

개념 및 코드

Posted by Damin on September 9, 2019

추상화

C언어에서는 함수로 캡슐화를 한다.

  • Struct

Class와 다른점

Class는 필드들을 private으로 설정하면 직접 access 불가능

Class 안에서 get, set으로 access 해야 한다.

어느 언어든지 추상화를 지원한다. (객체지향 언어가 높은 수준의 추상화를 지원한다.)

추상화 = 어떤 영역에서 필요로 하는 속성이나 행위를 추출하는 작업

키 or 혈액형 등등..

  • 학사 지원 시스템에서 불필요

  • 병원 지원 시스템에서 필요

Vector 클래스를 사용(위임)해 Stack 클래스를 구현하라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.Vector;


public class VStack{
  private Vector<String> v = new Vector<String>();
  
  public void push(String element){
    v.add(element);
  }
  
  public String pop(){
    if(isEmpty()==true) return "Can not";
    return v.remove(v.size()-1);
  }
  
  public boolean isEmpty(){
    return v.isEmpty()
  }
  
  public int size(){
    return v.size()
  }

벡터로 구현한 스택 부분


1
2
3
4
5
6
7
public class Test{
  VStack vs = new VStack();
  boolean x = vs.isEmpty();
  int siz = vs.size();
  vs.push("damin");
  String Last = vs.pop();
}

스택 활용