OOP 관련 다른 서적들을 보면 상속은 is a 관계라고들 말한다.하지만 위의 단순한 설명만으로는 무리가 있다.상속과 is a 관계펭귄 is a 동물 주어 is a 보어주어는 하위 클래스 , 보어는 상위 클래스라고들 흔히 생각하지만,하위 클래스는 하나의 상위 클래스다 라는 논리가 성립하기가 힘듬.is a 가 클래스와 인스턴스is a 관계는 객체(클래스와 인스턴스) 와 클래스 의 관계로 자주 오해된다.객체 is a 클래스 ← 이게 말이 안된다.명확한 표현법상속 관계를 표현시에, is a 대신 is a kind of 를 사용하는 것이 더 명확한 표현이다.펭귄 is a kind of 동물 이라고 흔히들 표현된다!명확한 예시펭귄 is a kind of 동물 : 펭귄은 동물의 한 분류이다.고래 is a kind ..
클래스와 객체의 구분생물에게는 나이가 어떻게 되나요무생물에게는 제조일자가 어떻게 되나요?위 2가지 질문으로 클래스와 객체를 구분할수 있다는데..객체와 클래스 차이객체실제로 존재하는 유일무이한 실체특정한 속성에 값을 가지고 있음.클래스개념적인 분류 체계속성 자체에는 값을 가질 수 없다.예외 상황하지만..제리의 꼬리가 몇개?1개쥐의 꼬리는 몇개?1개미키마우스의 꼬리는 몇개?1개모두 답이 한 개이다.제리 와 미키마우스 는 객체이기에 꼬리 개수에 답이 존재하는 것이 당연하지만..쥐 는 클래스 인데도 꼬리 개수에 대한 답이 존재한다.이는 꼬리 개수가 객체의 속성이지만, 모든 객체가 동일한 값을 가지는 경우, 클래스에서도 해당 값을 알 수 있게 되기 때문이다. 그렇다면, 객체마다 모두 같은 값을 가진다고 확신한 순..
객체와 클래스의 구분법조류 bird = new 조류();의 경우를 생각해보자.조류 의 나이는 → 질문에 답하기 어려움 ⇒ 조류 는 클래스에 가까움bird 의 나이는 → 질문에 답하기 어려움 ⇒ bird 는 클래스에 가깝다.상속의 첫 예제public class Driver { public static void main(String[] args) { 동물 animal = new 동물(); 포유류 mammalia = new 포유류(); 조류 bird = new 조류(); 고래 whale = new 고래(); 박쥐 bat = new 박쥐(); 참새 sparrow = new 참새(); 펭귄 penguin = new 펭귄(); animal.showMe(); mammalia.showMe(); bird.showMe()..
위는 잘못된 예시 😮😮일반적인 상속과의 프로그래밍에서의 차이일반적인 상속의 개념에서 할아버지 -> 아버지 -> 아들 같은 혈통의 연속성을 흔히들 생각할텐데..OOP 에서는 상속은 이러한 것을 상속이라고 하지 않음올바른 상속의 이해동물 은 포유류의 부모나 상위 분류가 아님!!!!!동물이라는 큰 범주 내에서 포유류와 조류 같은 세부 분류가 있을 뿐임!OOP 에서의 상속은 상위 클래스의 특성을 하위 클래스에서 재사용하고, 필요한 특성을 추가로 확장하는 것을 말함.오해하기 쉬운 상속의 용어..클래스의 특성을 상속한다 표현에서 특성 을 누락하고 클래스를 상속한다 라고 오해한다고 합니다.이 결과 부모- 자식 관계 라는 잘못된 표현이 등장함.부모와 자식 클래스보다슈퍼 클래스 → 서브 클래스 라는 용어 혹은상위 클래스..
쥐 캐릭터를 통한 추상화쥐 캐릭터의 특성제리객체명: 쥐 캐릭터의 이름 → 제리성명: 제리국적: 미국나이: 75종교: 기독교친구: 톰여자친구: null꼬리: 1개…미키마우스객체명: 쥐 캐릭터의 이름 → 미키마우스성명: 미키마우스국적: 미국나이: 87종교: 무교신장: 70cm여자친구: 미니마우스행위 기준미키마우스달리다먹다휘파람…제리달리다먹다장난치다…추상화의 기준?클래스 설계나 모델링에서 중요한 것이다 추상화입니다애플리케이션 경계 내에서 중요한 특성만을 선택하는 것은 주관적입니다.이로 인해 설계자마다 다른 결과물이 나올 수 있습니다.추상화를 통해 얻어진 결과물을모델자바 언어에서는클래스 라고 합니다 T메모리 그려보기public class Mouse { public String name; public int ag..
추상화복잡한 현실 세계의 개체를 단순화시켜 컴퓨터 프로그래밍에서 표현할 수 있는 형태로 바꾸는 과정임클래스 라는 개념도 추상화의 결과물임차 라는 현실 개체가 있는 경우, 프로그램으로 표현하기 위해 필요한 핵심 속성과 기능만을 뽑아서 Car 클래스로 정의하는 것이 추상화모델링현실세계의 개체나 시스템을 단순화시켜 모형으로 만드는 과정임OOP 측면에서추상화를 통해 얻어진 클래스나 객체나 현실 세계의 모델로 불릴 수 있음.객체와 모델링객체 : 세상에 존재하는 유일무이한 사물객체의 구성은 다음 2가지로 구성됩니다.데이터(속성)해당 데이터를 처리하는 메서드(기능)이렇게 객체를 정의하는 과정 자체가 현실 세계의 개체를 모델링하는 것임.사람 이라는 개체의 속성이름나이성별 등기능걷다먹다말하다을 Person 이라는 클래스..