책 공부/스프링 입문을 위한 자바 객체 지향의 원리와 이해(10)
-
abstract 키워드 - 추상 메서드와 추상 클래스
추상 메서드(Abstract Method) 란 선언부는 있는데 구현부가 없는 메서드를 말한다. 그리고 이 추상 메서드를 하나라도 가지고 있으면 반드시 추상 클래스(Abstarct Class)로 선언해야한다. 먼저 예제 코드를 쭉 읽어보자. 1-2. Driver Class package main; public class Driver { public static void main(String[] args) { Animal[] animals = new Animal[3]; animals[0] = new Cow(); animals[1] = new Mouse(); animals[2] = new Tiger(); for (int i = 0; i < animals.length; i++) { animals[i].cry()..
2022.11.18 -
자바가 확장한 객체 지향
1. abstract 키워드 - 추상 메서드와 추상 클래스 2. 생성자 3. 클래스 생성 시의 실행 블록, static 블록 4. final 키워드 5. instanceof 연산자 6. package 키워드 7. interface 키워드와 implements 키워드 8. this 키워드 9. super 키워드 10. 정리
2022.11.15 -
캡슐화: 정보 은닉
자바에서 정보 은닉이라고 하면 접근 제어자인 private, [default], proteced, public 과 접근자 및 설정자 메서드도 생각날 것이다. 접근 제어자가 객체 멤버( 인스턴스 멤버 ) 와 쓰일 때와 정적 멤버( 클래스 멤버 )와 함께 쓰일 때를 비교해서 살펴보자. 객체 멤버의 접근 제어자 ClassA가 정적 속성인 priSt, defSt, proSt, pubSt를 가지고 있다고 가정해보고 아래표를 작성해 보자. package main01; public class ClassA { private static String priSt; static String defSt; protected static String proSt; public static String pubSt; void runS..
2022.11.15 -
다형성
더보기 여러 관계에서 다형성에 대해 이야기할 수 있지만 그 중 가장 기본은 오버라이딩(Overriding) 과 오버로딩(Overloading)이다. 처음엔 오버라이딩과 오버로딩에 대해서 헷갈릴 수 있는 데 간단하게 단어의 뜻으로 외우면 된다. ride : 올라타다 load : 적재하다 이삿짐을 예를 들면 이삿짐을 트럭에 실는 것을 위에서 아래로 내려다 봤을 때 위로 쌓아올렸을 때 ( = ride) 는 가장 마지막에 올린 짐만 보이지만 나란히 적재 했을 때( = load ) 는 모든 짐이 보인다. 그러면 어떤 것이 오버로딩인지 오버라이딩인지 맞춰보자 ( 클릭하면 정답이 나온다!! ) HTML 삽입 미리보기할 수 없는 소스 이제 오버라이딩과 오버로딩을 구분할 수 있을 것이다. ( 믿어요,, ) 이제 이것을 ..
2022.11.15 -
상속성
위의 예시를 보면 알 수 있듯이 객체 지향에서의 상속은 우리가 일반적으로 알고 있는 상속의 개념이 아니라 상위 클래스의 특성을 하위 클래스에서 상속하고 거기에 더해 필요한 특성을 추가하는 것이다. 즉 확장과 세분화의 개념이다. 따라서 부모 클래스 - 자식 클래스라는 표현보다는 상위 클래스 - 하위 클래스 또는 슈퍼 클래스 - 서브 클래스라는 표현이 맞고 상위 클래스 쪽으로 갈수록 추상화, 일반화 됐다고 말하며, 하위 클래스 쪽으로 갈수록 구체화, 특수화 됐다고 말한다. 상속 관계에서 반드시 만족해야 할 문장이 있다. " 하위 클래스는 상위 클래스이다. " - 로버트 C.마틴의 객체 지향 설계 5원칙 中 LSP( 리스코프 치환 원칙 ) - 예를 들어보자 상속의 잘못된 예인 조직도의 경우 - 아버지는 할아버..
2022.11.14 -
추상화 ( Abstracion )
※ 해당 게시물은 스프링을 위한 자바 객체 지향의 원리와 이해 ( 김종민 지음 ) 을 읽고 요약하여 작성한 것입니다. 추상 ( 抽象 ) [ 명사 ] 심리 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용. 추상-화 抽象畫 [ 명사 ] 미술 사물의 사실적 재현이 아니고 순수한 점ㆍ선ㆍ면ㆍ색채에 의한 표현을 목표로 한 그림. 일반적으로는 대상의 형태를 해체한 입체파 등의 회화도 포함한다. 추상-화 抽象化 [ 명사 ] 추상적인 것으로 됨. 또는 그렇게 만듦. 추상화는 모델링이다. 추상화란 구체적인 것을 분해해서 관심있는 특성만 가지고 재조합하는 것이라고 정리할 수 있다. 객체 지향의 특성은 클래스를 통해 구현된다 또는 객체라고 할 수 있다. 클래스와 객체에 대해 잘 모르겠다면 ..
2022.11.14