Programming/Java 26

[Youtube][이팩티브 자바] #2 생성자 매개변수가 너무 많아? 빌더 패턴을 써 봐

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 주제 2: 생성자 매개 변수가 많은 경우에 빌더 패턴 사용을 권장 static 팩토리 메소드와 public 생성자 모두 매개변수가 많이 필요한 경우에 불편해진다. NutritiaonFatc 라는 클래스를 예를 들고있다. 해당 클래스는 몇몇 반드시 필요한 빌드(반드시 셋팅이 되어야하는..)와 부가적인 필드(셋팅이 되지 않아도 되는..)를 가질 수 있는데, 그런 경우에 필수적인 매개변수를 생성자에 부가적인 필드를 하나씩 추가하여 여러 생성자를 만들 수 있다. 해결책 1: 생성자 public class NutritionFacts { private int servingSize; private int..

Programming/Java 2020.05.06

[Youtube][이팩티브 자바] #1 생성자 대신 static 팩토리 메소드를 고려해 볼 것

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 Item 1. 생성자 대신 static 팩토리 메소드를 고려해 볼 것. public 생성자를 사용해서 객체를 생성하는 전통적인 방법 말고, 아래와 같이 public static 팩토리 메소드를 사용해서 해당 클래스의 인스턴스를 만드는 방법도 있다. public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 이런 방법에는 각각 장단점이 있는데 아래 장점 5가지, 단점 2가지로 정리하였다. 장점 1. 이름을 가질 수 있다. 생성자는 만들면 보통 클래스 이름과 동일하게 만들어야 한다. # public 생..

Programming/Java 2020.05.06

[Java] 간단한 junit 테스트 방법 IntelliJ

IntelliJ에서 간단한 junit 테스트 방법을 구현해 봅시다. 1. 기능 구현 클래스 생성 클래스는 Main, AddNumber 두개를 만들어준다. 우선 간단한 덧셈을 구현한 클래스와 메소드를 생성해준다. 1 2 3 4 5 6 7 8 9 10 11 12 public class AddNumber { public int add(int a , int b){ return a+b; } public int add(int a, int b , int c){ return a+b+c; } } 그리고, 그 메소드를 실행시키는 메인 메소드를 구현한다. 1 2 3 4 5 6 7 8 9 10 11 public class Main { public static void main(String[] args) { AddNumber ..

Programming/Java 2020.04.29

[JAVA] Instance Time

개념 시간을 타임스탬프로 다루기 위해서 사용한다. 타임스탬프는 UTC 기준으로 EPOCH TIME(1970-01-01 00:00:00)을 0으로 정하고, 그로부터 경과된 시간을 양수 또는 음수의 나노초 단위로 표현한다. Date형으로변환 가능하다 항상 UTC(+0:00) Timezone을 사용하기 때문에 주의해야 한다. (시간대를 고려해야 할 경우는 OffsetDateTime사용한다) immutable 하면서 thread safe하기 때문에 쓰레드간 경합 상황에서도 사용이 가능하다. 예제 현재 시간의 타임스탬프 값을 구하기 1 2 3 4 5 6 7 8 Instant current = Instant.now(); System.out.println("Current Instant = "+ current); lo..

Programming/Java 2020.04.07

[JAVA] protected 접근 단계

개념 protected 접근 단계는 기본 접근 단계하고 거의 똑같은데, 하위클래스에서 protected로 지정된 것도 상속할수 있다는 점이 다르다. 그 하위클래스가 상위클래스가 속해 있는 패키지와 다른 패키지에 속해 있는 경우도 해당된다. 그 점을 제외하면 똑같다. protected는 하위 클래스가 상위클래스와 다른 패키지에 들어 있어도 메소드나 생성자와 같은 클래스 안에 있는 것을 상속할 수 있는 기능을 제공해 준다. 특징 설계 방법에 따라 protected 접근 단계를 사용하는 경우도 있고 언젠가는 꼭 그 접근 단계가 필요한 경우도 있다. protected의 특징 가운데 (다른 접근 단계와는 달리) protected 접근 단계는 상속에만 적용된다는 점이 있다. 다른 패키지에 들어있는 하위클래스에 상위..

Programming/Java 2020.04.01

[자바] public protected private

자바에는 접근 단계 4개와 접근 변경자 3개가 있다. 기본 접근 단계(아무 변경자도 쓰지 않았을 경우의 접근 단계)도 하나의 접근 단계기 때무에 변경자는 3개 밖에 없다. 접근단계 (제한이 적은것에서 제한이 심한 순서대로) public protected defualt private public public으로 지정된 것(클래스, 변수, 메소드, 생성자 등)은 어디에 있는 어떤 코드에서도 접근할 수 있다. protected protected는 default하고 거의 똑같다.(같은 패캐지에 있는 코드에서 접근할 수 있다. 하지만 다른 패키지에 속하는 하위클래스에서도 상속할 수 있다는 차이점이 있다. default 기본 접근 단계에서는 그 클래스와 같은 패키지에 들어 있는 클래스에서만 접근할 수 있는것을 의미..

Programming/Java 2020.03.31