개발기록
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
자바8에서 inferface에 대한 정의가 변경되었다. default메서드가 추가되었다. # default 메서드 인터페이스가 default키워드로 선언되면 메소드가 구현이 가능하다. 이를 구현하는 클래스도 default 메소드를 오버라이딩(재정의)할 수 있다. package basic; public interface Bank { public void save(); public void load(); } package basic; public class KakaoBank implements Bank{ @Override public void save() { System.out.println("카카오뱅크 돈 저장"); } @Override public void load() { System.out.printl..

자바에서 값을 초기화하는 이유에 대해서 생성자를 쓴다. 초기화는 생성자를 통해 변수에 값을 넣어주는게 초기화인가? 자바에서 초기화라는 어떤것인가? 라는 물음에 답이 명확하게 나오지 않아서 포스팅의 주제로 삼았다! 변수 val은 아마 초기화가 되어있지 않다는 에러가 뜨는것을 확인할 수 있다! 이후 val에 int형의 값을 넣어주면 초기화가 되고 정상적으로 값이 출력되는 것을 확인할 수있다! package initailize; public class InitializationTest { int val2; String val3; byte val4; boolean val5; public static void main(String[] args) { //객체 생성 InitializationTest test = ne..
Java에서 문자열을 다루는 클래스로 String, StringBuilder, StringBuffer가 있다. 위에서 말한 어떤 클래스를 사용하더라도 사실 개발 업무시 이슈를 발생시킨 경험은 거의 드물다. 하지만 String 변수의 값이 자주 바뀌게 된다면 ? 그런 연산이 많아지거나 Multi Threads, Race Condition등의 상황이 발생한다면 위의 문자열 클래스들의 특징을 이해하고 그에 맞게 적절한 클래스를 사용해야만 합니다~! 위의 나열된 3가지의 문자열 관리 클래스에 대해 완벽하게 숙지하지 못하기때문에 개발시 스스로에게 리스크가 있다는 점을 알고 이번 포스팅을 통해 확실하게 숙지하고자 합니다! # String vs StringBuffer/StringBuilder String 클래스가 나..
Java에서 Enum은 클래스와 인터페이스와 같은 타입이다. 또한 static과 final이 내장되어 있어, 정의된 이후로는 값을 바꿀수 없다. 1. Enum 변수에 미리 정의된 상수를 제외한 다른 값을 할당할 수 없다. -> 타입에 대한 안정성을 보장 2. Namespace를 보장 3. int형, char형 변수처럼 switch에서 사용이 가능. 4. 리팩토링시 유지보수가 간편해지고 enum클래스가 관리가 용이함. 위의 정도로 enum 클래스에 대해 이해하고 있으나, 이번 포스팅을 통해 basic한 마음으로 enum을 활용한 기초적인 개발을 해보려고 한다~! package enumclass; public enum Car { SORENTO(10000,"RV"), SANTAFE(11000,"RV"), AV..

개발을 하다보면 == 연산자를 당연하게 사용한다. == 연산자에 대한 비교는 primitive(원시)타입의 자료형에만 해당하는 연산자이다. primitive 타입의 자료형은 int, double, char, boolean 등의 자료형이 있다. 하지만 Java에는 위와 같은 자료형만 존재하는 하는것이 아닌 우리가 개발에 흔히 사용하는 Object 객체의 주소값을 가지는 reference 타입의 자료형도 존재한다. reference 타입은 우리가 객체를 새로 생성할때 new 라는 연산자로 생성할 수 있는 오브젝트를 가리킨다. 즉, new 연산자를 통해 클래스의 오브젝트를 생성하여 메모리에 적재되고, 그 참조변수를 반환해주는 것으로 이해할 수 있습니다. primitive 타입은 실제 값을 의미하고, refer..
보호되어 있는 글입니다.

# 팩토리 메서드 패턴 ? 객체를 생성하는 인터페이스는 미리 정의해두고 ! 인스턴스를 만들 클래스의 결정은 서브 클래스 쪽에서 결정하도록 하는 패턴! 즉 인풋의 값에 따라 특정 자식클래스의 인스턴스를 리턴해주는 방식이다! - 자신이 어떤 객체를 생성해야하는지, 현재는 알수없으나 진행 과정에 따라서 다른 클래스 객체를 사용해야할때! - 객체를 인스턴스화 하는 책임을 객체를 사용하는 클라이언트에서 팩토리 클래스로 가져올때! # 예제 팩토리 패턴에 사용되는 슈퍼 클래스는 인터페이스, 추상클래스, 일반 클래스여도 상관없다. 생성된 객체의 내용을 보여주기 위해 toString()을 오버라이딩 하였다! package pattern.factorymethod; public abstract class Person { p..