본문 바로가기

development/Codestates

22.12.30 22.12.29 객체지향 프로그래밍 심화-2


22년 마지막 주 금요일. 벌써 12월 말이라니 시간이 너무 빠르다.  오늘만큼은 그냥 다 내려놓고 쉬고싶었지만 그래도 꾸준히 공부하는 습관을 만들자는 마음으로 공부했다.  일단 시작해보니 생각보다 할만했고, 머릿속에 남는게 얼마 없더라도 알차게 보냈다는 생각에 기분이 좋다. 연말을 좋게 마무리하고 다가오는 23년을 정말 인생 최고의 해로 보낼 수 있도록 준비해야겠다.


추상화

 

객체의 공통적인 속성과 기능등 요소들을 묶어서 정의하고, 상의클래스를 만드는 것

 

abstract 제어자

미완성 클래스.

메서드 앞에 붙은 경우 추상 메서드(abstract method), 클래스 앞에 붙은 경우 추상 클래스(abstract class)라고 부른다

특징

  • 메서드 바디{}가 없다
  • 객체 생성 불가
  • 추상 메서드가 포함되어 있을 경우 자동으로 추상 클래스가 된다

사용방법

abstract class AbstractExample { // 추상 메서드가 최소 하나 이상 포함돼있는 추상 클래스
	abstract void start(); // 메서드 바디가 없는 추상메서드
}

인터페이스

구현의존적인 코드를 역할 의존적인 형태로 구분할 때 쓰는 돼지코 같은 존재

특징

  • 메소드 오버라이딩 강제
  • 생성자 생성 불가
  • 추상 메서드만 포함
  • 다중 상속 가능

사용방법

public interface InterfaceSnack {
	public static final int Ace =  1; // 필드 정의시 public static final 사용
    final int Grace =  1; // 자바 컴파일러가 자동으로  public static 추가해준다
    static int ChocoPie = 3; // final도 자동으로 추가
    
} // 인터페이스에는 추상메서드만 존재