티스토리 뷰

Academy

[210208]접근제어자/오버라이딩

VIRGIL ABLOH 2021. 2. 9. 22:33
반응형

- 학습 목표 달성 확인 목록

- [] private/(default)/protected/public 접근 제어를 이해하는가?

private      : 같은 클래스

(default)    : 같은 클래스 + 같은 패키지

protected    : 같은 클래스 + 같은 패키지 + 서브 클래스

public       : 모두

 

- [] 오버라이딩하는 메서드의 리턴 타입이 어디까지 허용되는지 아는가?

메서드를 오버라이딩 할 때 리턴 타입으로 서브 클래스도 가능하다.

 

- [] Object의 clone()을 이용하여 인스턴스 복제를 처리할 수 있는가?

이 코드는 인스턴스 주소를 복사할뿐 완전히 독립되지않는다.즉 얇은 복제(shallow copy)라고 부른다.

그림 추가예정

 @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
    
    //IDE에서 clone을 입력하면 자동으로 완성이 된다.

 

- [] 인스턴스 복제 기능을 활성화시키는 방법을 아는가?

@Override
  protected Object clone() throws CloneNotSupportedException {
    return super.clone();
  }
  
  //IDE에서 clone을 입력하면 해당 코드가 자동생성된다
  하지만 여기까지 생성된 코드는 아직 인스턴스를 복제를 못해서
  같은 객체를 공유하는 부분에서는 독립하지 못하여 같은값이 연동되게 된다.

기본적인 clone을 실행했을 경우

 

- [] clone() 메서드를 사용하기 위해 필요한 조치 사항을 아는가?

복제할 수 있는 클래스는 Cloneable 인터페이스가 구현된 클래스여야만 한다.

public class A extends B implements Cloneable

 

- [] 인스턴스 복제에서 shallow copy와 deep copy의 차이점을 아는가?

shallow copy(얕은 복사)인스턴스 변수를 주소 그대로 복사하여 값이 변경되면 같이 연동된다

하지만 deep copy(깊은 복사)는 새로운 인스턴스 변수를 생성하여 각자 독립적으로 주소를 관리하게 된다.

 

- [] 큐를 구현할 수 있는가?

 

 

- [] Iterator 패턴의 특징을 이해하고 구현할 수 있는가?

컨테이너에서 데이터 꺼내는것을 캡슐화 한 것이다.

자료구조 종류에 상관없이 일관된 방법으로 데이터를 조회할 수 있도록 별도의 클래스로 정의하는 설계기법을 말한다.

예를들어 stack에서는 pop로 데이터를 꺼내고 queue에서는 poll로 꺼낸다

이것을 iterator로 캡술화(단순화)하여 hasNext()-값이 있는지 확인       next()-값을 꺼낸다/리턴한다

로 정의하여 단순화 한다.

 

- [] 상속의 기법에서 일반화(generalization)와 전문화(specialization)를 구현할 수 있는가?

 

 

반응형

'Academy' 카테고리의 다른 글

[210210]추상클래스와 인터페이스  (0) 2021.02.12
[210209]Iterator/추상클래스/인터페이스  (0) 2021.02.11
[210205]다형적 변수/스택과 큐  (0) 2021.02.09
[210204]상속/추상  (0) 2021.02.04
[210203]캡슐화-다형성  (0) 2021.02.04
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/06   »
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
글 보관함