Java - Design Pattern - Strategy
Strategy Pattern은 객체지향적 설계에서 가장 많이 사용되는 패턴이죠. 하나의 예를 들어 보겠습니다. 클래스 이 있을 때, 점간의 거리를 측정하는 클래스가 내부에 있겠죠. 거리 측정은 조금씩 다를 수 있는데, 필요에 따라 내부의 를 다...
Strategy Pattern은 객체지향적 설계에서 가장 많이 사용되는 패턴이죠. 하나의 예를 들어 보겠습니다. 클래스 이 있을 때, 점간의 거리를 측정하는 클래스가 내부에 있겠죠. 거리 측정은 조금씩 다를 수 있는데, 필요에 따라 내부의 를 다...
개발을 하다 보면 딱 하나의 Class Instance만 정의해서 사용해야 할 때가 있습니다. 이런 종류의 설계를 Singleton이라고 하죠. - Singleton은 딱 하나의 Class Instance만 생성하도록 제한됩니다. - 그리고 어플...
What is JAR JAR은 Java ARchive의 약자이며, 관련있는 file들을 패키지로 묶은 파일포맷입니다. 일단은 그냥 'Java 라이브러리'라고 생각해도 됩니다. 다른 Java Application에서 JAR 파일을 읽어서 사용할 수...
Abstract Class와 Interface는 "아직 구현되지 않은, 추상화된 클래스"를 의미합니다. 직접 Object로 구현되어질 수는 없고, 이후 얘네를 다른 Class가 상속받아서 virtual method들을 새롭게 정의해줘야 하죠. 이...
C++을 공부해보신 적이 있으신 분들은 아시겠지만 보통 OOP에서는 Abstract class를 만들어 두고 이를 상속하도록 하는게 일반적이죠. Abstract Class에는 field와 Behaviour가 모두 정의됩니다. 하지만, "네가 누구...
필요에 따라서, 프로그램의 모든 class가 상속받는 baseClass를 정의할 때가 있습니다. 음, 이건 일종의 디자인 패턴인데요. 가령 RPG게임 같은 것에서 모든 캐릭터가 HP, MP를 가지고 또 비슷한 method 이름들을 가진다면 모든 ...
Java에는 라고 하는 모든 Class의 BaseClass가 되는 Class가 존재합니다. 그냥 다음처럼 새로운 Class를 정의히면 자연스럽게 라는 클래스를 상속받게 되죠. 따라서 객체인 은 항위 class인 Integer 객체를 가리킬 수 있...
Java - Object - toString() Java에는 라고 하는 모든 Class의 BaseClass가 되는 Class가 존재합니다. 그리고 이라고 하는 method가 존재하죠. class를 다음과 같이 정의합니다. 아무것도 정의되어 있지 ...
java에서 Annotation은 프로그램에 대한 정보가 담긴 "Comment"라고 생각해도 일단은 무방합니다. 하지만 그냥 유저만 보는 것을 목적으로 하는 게 아니라, 컴파일러 혹은 IDE, 프레임워크 들에게 정보를 전달하는 측면에서 Comme...
Java - Base Class Method가 오버라이딩 되지않게 하기 BaseClass에서 정의한 method를 실수로라도 오버라이딩하지 않게 하려면 함수 선언부에 을 붙여주면 됩니다.
Java에서 primitive type(, 등)은 모두 해당되는 class를 가지고 있습니다. 이런 클래스들을 모두 wrapper라고 부르죠. 그리고, wrapper는 기본적으로 immutable의 성질을 가지고 있습니다. 우선, primitiv...
Object Interning은 여러 개의 Object가 동일한 값을 가질 때, 하나의 메모리의 값을 공유하도록 함으로써, 메모리를 적게 사용하도록 하는 기법을 말합니다. 아래, 코드를 보면 서로 다른 두 객체인 와 이 같은 메모리 값을 가지고 ...
polymorphism은 다음과 같은 다양한 종류로 나뉩니다. Ad-hoc polymorphism: 엄밀한 의미에서 polymorphism은 아니지만, 이 같고 가 다른 경우에 대해서 작동하는 것을 말하며, method overloading이 여...
java - Simple exception Handling java에서 예외처리 하는 방법을 간단하게 다음과 같이 정리하였습니다. 기정의된 예외(Exception)들은 프로그래밍 과정에서 발생하고 그 예외상황을 처리하는 방식이 보통 다음과 같죠 ...
time.LocalDate java에서 Data를 관리하기 위해서는 클래스를 사용합니다. - 나, 를 사용하여 LocalDate의 값을 초기화합니다. - 를 사용하여, 서로 다른 두 LocalDate가 동일한지 확인할 수 있습니다. - 날짜를 증...
java에서도 for each 문을 사용할 수 있습니다. 별 거 아니잖아? 라고 생각할 수 있지만, 이러한 for each 문은 다음과 같이 iterable한 경우에 좀 더 유용하게 사용할 수 있습니다. 위처럼 하지 않으려면 다음처럼 새로운 변수...