본문 바로가기

Object Oriented Programming

(2)
java.lang.Object 는 왜 최상위 클래스일까요? - OOP 며칠전 면접때 면접관께서 물어보셨습니다. "왜 java.lnag.Object 는 interface로 구현하지 않고 클래스로 구현하였나요?" 순간 말문이 막혔습니다. "왜 클래스로 구현하였을까?" 너무나 뻔한 답이 머릿속의 여러 생각들이 입밖으로 나오질 않더군요. 모든 객체들이 필요할 수 있는 메소드들을 생각해보면 되는데 말이죠. 그것은 Object 클래스의 메소드들을 살펴보면 알 수 있겠죠. 객체를 shallow copy 해주는 Object : clone() 객체와 등가되는 객체인지 boolean : equals(Object obj) 객체가 참조되는 무엇이 없으면 가비지컬렉터에 수집되는 void : finalize() 객체의 클래스 타입을 돌려주는 Class : getClass() 객체의 해쉬코드 값을 ..
OOP(Object Oriented Programming) _객체지향프로그래밍 Version_1 소프트웨어를 분석, 설계하고 구현하는 방법중의 하나로써 기존의 프로그램들이 데이터를 처리하는 절차에 중심을 두었다면 OOP는 데이터를 중심으로 하고, 그 처리절차는 부수적으로 취급하는 개념이다. 비유하자면 동사(procedure)보다는 명사(data)에 중심을 두겠다는 프로그래밍기법이다. 명사란 무얼 말하는 건가? 객체지향프로그래밍에 있어서 가장 작은 단위는 Object(객체)이다. 명사란 이 Object를 말한다. 객체지향식 개발 과정에 있어서 제일 먼저 해야할 일은 문제영역(개발에 있어서 목적에 따르는 범위)안의 객체를 찾는 일이다. 객체지향 개발 방법은 객체(Object), 객체의 속성(attribute)과 동작(behavior), 유사한 객체의 집합으로 나누어진 클래스(class..