Java - Reflection - Modifier
class 내 field, method등의 Modifier(, 등)을 확인하는 방법을 정리하였습니다. 는 다음과 같은 field를 가지고 있습니다. 이때, 각 field의 Modifier를 확인하는 방법을 정리하였습니다. 그리고, 이 글에서는 f...
Java - Reflection - Basic
Java의 Relfection은 Runtime시에 객체로부터 클래스의 정보를 가져오는 것을 말합니다. 일반적으로는 다음과 같이 class instance를 만든 다음에는 내부 메소드에 직접 접근해서 변수를 처리하거나 해주죠. 하지만, Runtim...
Java - Class - nested Class
당연하지만, java의 class 내에도 class를 정의할 수 있습니다. static nested class, local inner class로 정의할 수 있죠. - static nested class - local inner class Jav...
python - class - Math method
python에서 class의 기본 연산자를 지원하는 method를 정의합니다. 테스트해보면 잘 되는 것을 알 수 있습니다.
Java - Check class A is subClass of class B
java에서 class instance a가 class B의 instance인지 확인하려면 보통 를 사용합니다. 의 경우 runtime 시에 발생하는 type checking이며, 아래와 같이, 사용할 수 있습니다. 그러나, 의 경우 앞서 말한 ...
Java - Covariant Return Type
Covariant Return Type은 "함께 변하는 Return Type"이라고 해석할 수 있습니다. 기존의 java에서는 subClass에서 Method Overriding이 발생할 때, superClass에서의 Method와 Return ...
python - OOP - ABC(Abstract Base Class)
ABC(Abstract Base Class)는 "구현되지 않고, 선언만 되어 있는 method가 포함된 class"를 말합니다. 구현되어 있지 않고 선언만 되어 있다는 것은, 이 ABC를 상속받은 Child Class에서 해당 method를 정의...
python - OOP - new, init, repr, str
python class 정의시 다음 4가지 method를 설명합니다. - : 보통 을 생성자라고 알고 있지만, 사실 메모리를 확보해주는 진짜 생성자는 입니다. 아래 코드에서는 이 부분에서 생성될 수 있는 Object의 개수를 제한하고, 추가로 생...
Java - interface - default method
interface에서는 method를 선언만 할 수 있고 정의할 수는 없지만, 를 사용하면 정의할 수도 있습니다. Wrap-up interface의 모든 구현체에 동일하게 포함되는 method임에도, interface에서는 method를 정의할 ...
python - OOP - multiple Inheritance
python - multiple Inheritance python에서는 multiple inheritance(다중 상속)이 가능합니다. 다중 상속은 말 그대로 "2개 이상의 class를 상속받는 것"을 말하죠. 다음 코드에서 class 는 Cla...
python basic - super()
function은 보통 상속(Inheritance)에서 상위 class의 method에 접근할 때 사용합니다. 가령 다음과 같이 간단한 class의 method를 사용할 수 있죠. 보통, 이렇게 간단하게 '바로 위의 부모 class'에 접근하기 ...
DuckTyping - Example with python
Duck Typing "어떤 것이 오리(Duck)인지는 그의 행동을 통해 판단해야 한다"라는 개념이 바로 Duck Typing입니다. 달리 말하면, "처음부터 Type이 정해진 것이 아니라, "오리로서 갖춰야 하는 method들이 구현되어 있으면...
Java - Runtime Type Checking
Java를 포함한 OOP 언어들에서는 BaseClass(혹은 Interface)의 reference Variable을 사용해서 DerivedClass의 Class Instance를 가리키게 할 수 있습니다. 대략 다음과 같죠. "왜 이런짓을 해야...
Java - Anonymous Class
python에서 필요에 따라 anonymous function을 정의해서 임시적으로 사용하는 것처럼, Java에서도 Anonymous Class 혹은 Anonymous Interface를 재정의해서 사용할 수 있습니다. 필요에 따라, 특정 met...
Java - Abstract Class vs. Interface
Abstract Class와 Interface는 "아직 구현되지 않은, 추상화된 클래스"를 의미합니다. 직접 Object로 구현되어질 수는 없고, 이후 얘네를 다른 Class가 상속받아서 virtual method들을 새롭게 정의해줘야 하죠. 이...